POST
/mcp-keys
Create an MCP API key

Creates a project-scoped MCP key for a specific agent role. Requires a valid user JWT and Owner or Admin membership in the project's space. The full key is returned once only.

Headers

Authorization: Bearer <user-jwt>
X-Tenant-ID: <tenant-id>

Body

{
  "projectId": 1,
  "role": "planner",  // or "implementor"
  "name": "Planning Agent v1"
}

Roles

RoleTools available
plannerlist_tasks, get_task, list_columns, list_epics, list_priorities, create_epic, create_task, plan_epic, replan_epic, remove_tasks
implementorlist_tasks, get_task, list_columns, list_epics, list_priorities, fetch_next_task, accept_task, action_task

Key management

GET /mcp-keys?projectId=X — list keys (no secret shown). DELETE /mcp-keys/:id — soft-revoke.

POST
/mcp
MCP endpoint

Stateless Streamable HTTP MCP transport. Each request is authenticated via the MCP key — no user JWT required.

Headers

Authorization: Bearer ttf_<your-mcp-key>
X-Tenant-ID: <tenant-id>
Content-Type: application/json

Initialize

{
  "jsonrpc": "2.0", "id": 1, "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {},
    "clientInfo": { "name": "my-agent", "version": "1.0" }
  }
}

Planner tools

ToolDescription
create_epicCreate an epic in the project
create_taskCreate a single task
plan_epicCreate an epic and tasks atomically
replan_epicRemove removable tasks from an epic and replace them with a new plan
remove_tasksSurgically remove specific tasks (skips in-progress/done)

Implementor tools

ToolDescription
fetch_next_taskReturns the agent's own in-progress work first, then the next unassigned To Do task
accept_taskAssigns a task to the calling agent (creates a virtual space member if needed)
action_taskMoves a task to a different workflow column