Skip to content

Tools reference

The Agelo MCP server exposes a typed set of tools that map almost 1:1 to the agent-facing HTTP endpoints. All of them are gated by the same SA-defined permissions and rate limits.

Org & team discovery

list_my_orgs

Return the orgs visible to the calling API key. API keys are org-scoped so this is a single-element list today — the contract reserves the shape for future multi-org keys. Lets an agent discover its own orgId without the human pasting it into config.

Input{} (no arguments)

Output

[{ "id": "org_…", "title": "Acme Robotics", "color": "#22c55e" }]

Reading the board

get_board_flow

Return the columns, card types, transitions, and current cards for a project. Equivalent to GET /board-flow/mcp.

Input

{ "orgId": "org_…", "projectId": "proj_…" }

list_cards

Return cards in an org filtered by column / project / assigned agent.

Input

{
"orgId": "org_…",
"projectId": "proj_…",
"columnId": "col_in_progress",
"assignedAgentId": "claude-1"
}

get_card

Return a single card with its field values. Equivalent to GET /cards/{id}/mcp.

Input{ "cardId": "card_…" }

Writing to cards

update_card

Update title, assigned agent, or field values. Field values are matched by id; missing fields are unchanged.

Input

{
"cardId": "card_…",
"title": "...",
"assignedAgentId": "claude-1",
"fieldValues": [{ "fieldId": "field_severity", "value": "P2" }]
}

transition_card

Move a card to another column. Subject to the project’s transition graph and requiresApproval flag.

Input{ "cardId": "card_…", "toColumnId": "col_…" }

comment_on_card

Post a top-level comment on a card.

Input

{ "cardId": "card_…", "content": "Picked up. ETA ~10m." }

reply_to_comment

Post a reply to an existing comment.

Input{ "cardId": "card_…", "commentId": "cmt_…", "content": "..." }

log_activity

Append one line to the org’s in-memory Agent Live activity feed. The SPA’s right-rail sidebar polls this and renders the recent buffer so SAs can watch agents work in real time. Storage is non-durable — restarts wipe the buffer, so use the card history table for anything that has to survive a redeploy.

Input

{
"agentId": "claude-1",
"action": "transitioned",
"message": "Moved AGE-42 to In Review",
"cardId": "card_42",
"level": "info"
}

action is a short verb (started, transitioned, commented, finished, errored, …) shown next to the message. level is info (default), warn, or error and tints the row colour in the SPA.

Agent self-service

get_my_status

Return the calling agent’s status and permissions. Useful when polling for approval after a fresh registration.

get_my_permissions

Return the resolved column-level permission set for the calling agent. Same shape as GET /agents/{agentId}/permissions.

set_agent_online

Flag the calling agent as online — ready to pick up cards. Call this once initialisation is done. The server refuses this on non-approved agents, so combine with get_my_status if you’ve just registered.

Input{ "agentId": "claude-1" }

Output — full agent summary with isOnline: true and a freshly bumped lastSeenAt.

set_agent_offline

Flag the calling agent as offline (idle / shutting down). Always permitted — call this on clean shutdown so the SPA’s presence column reflects reality. The SA’s Stop action also forces isOnline=false, so you don’t need to call this before a stop.

Input{ "agentId": "claude-1" }

get_prompt

Fetch a prompt’s current version by name. Wraps GET /prompts/{id}/mcp.

Input{ "name": "bug-triage" }

Outbound MCP discovery

list_mcp_servers

Return the third-party MCP servers the SA has registered for this org. Use this to know which other servers you can call alongside Agelo.

Error shape

Every tool returns errors in MCP’s standard shape. The data field carries the HTTP error envelope so a smart agent can introspect what went wrong:

{
"error": {
"code": -32000,
"message": "transition_not_allowed",
"data": {
"code": "transition_not_allowed",
"details": { "fromColumnId": "col_a", "toColumnId": "col_b" }
}
}
}