Skip to content

Claude Code and MCP

The board speaks MCP, so an agent in your terminal can read the backlog, pick work up, and report back where the team can see it.

Tool Does
list_projects Every project the token can see
get_project One project by key or id, including its columns and fields
list_tasks Tasks, filtered by status, assignee, category or priority
get_task One task by key, for example ORB-14
create_task Create a task
update_task Change a task’s fields
change_task_status Move a task between columns
list_sprints Sprints in a project
create_sprint Create a sprint
update_sprint Change a sprint
add_comment Comment on a task
list_comments Read a task’s comments

Project-defined fields go through a generic fields argument keyed by field name — {"Difficulty": "L"} — so a project that renames or removes a field does not break the client. Ask get_project which fields exist rather than assuming.

The server is built into the app at POST /api/mcp. Nothing to clone, nothing to build — one URL and a bearer token:

{
"mcpServers": {
"boardplanner": {
"type": "http",
"url": "https://your-instance.example.com/api/mcp",
"headers": { "Authorization": "Bearer cp_..." }
}
}
}

Create the token under Settings → API Tokens, and scope it to the projects the agent should touch. The scope is enforced centrally, so the agent sees exactly what the token allows — no more than its owner, and often less.

Clients that expect a custom connector rather than a static token get a full OAuth 2.1 with PKCE, including dynamic client registration — so there is no client secret to paste. Point the client at the same /api/mcp URL, leave the client id and secret empty, sign in, and choose whether the connection gets all projects or only selected projects.

Tokens issued this way carry the same project scope as a scoped API token, on both REST and MCP.

A standalone MCP server also ships in the repository for stdio clients. It takes the instance URL and either a token or a username and password, and exposes the same tools.