KyroTask
Help center
Automation & API

Connect an AI agent with MCP

Let an assistant list, create, change, move and comment on tasks using the same key and the same scopes.

Model Context Protocol is how an AI assistant connects to outside tools. KyroTask runs an MCP server inside the application, so there is nothing extra to deploy.

Address and key

The MCP server is a single HTTP endpoint at https://kyrotask.com/api/v1/mcp. It authenticates with the same kt_live_ API key you would use for the REST API, sent in the X-Api-Key header. The scopes on that key are the agent’s limits: give it a read-only key and it cannot change anything, no matter what it is asked to do.

Claude Code

One command adds it — put your own key in place of kt_live_…:

claude mcp add --transport http kyrotask https://kyrotask.com/api/v1/mcp --header "X-Api-Key: kt_live_…"

Then claude mcp list should show the server as Connected. This is the client we have checked against the real server. The Connection guide in settings prints the same command with your workspace’s address, and the new-key window prints it with the key already in it.

If the list says Failed to connect and mentions OAuth or “Dynamic Client Registration”, the key is the problem: KyroTask does not use OAuth, and a refused key sends the client looking for it. Check the key with Test connection in settings, or with a request to /api/v1/me.

Other clients

In a client that can add a remote (HTTP) MCP server, enter the address above and send the key in an X-Api-Key header. We only describe the settings of a client we have actually connected.

The tools it exposes

  • list_projects — list the projects in the organization, one page at a time (optionally limit, cursor). Needs read:projects.
  • get_project — one project with its board columns; a column’s isDone says whether tasks in it count as finished (projectId). Needs read:projects.
  • list_members — who can be assigned tasks in a project: id and name, no e-mail addresses (projectId). Needs read:projects.
  • list_tasks — list the tasks in a project, one page at a time (projectId; optionally limit, cursor). Needs read:tasks. A list tool answers { items, nextCursor }, and the agent asks for the next page by sending nextCursor back as cursor.
  • get_task — one task as it is now, with its version (taskId). Needs read:tasks.
  • create_task — create a task in a project (projectId, title; optionally description, priority, dueDate, assigneeId and boardColumnId — without a column it lands in the first one). Needs write:tasks.
  • update_task — change a task’s title, description, priority, due date or assignee; only what is sent changes (taskId; with the optional version, nothing is written if somebody changed the task since). Needs write:tasks.
  • move_task — move a task to another column (taskId, columnId; optionally position). Needs write:tasks.
  • add_comment — add a comment to a task (taskId, content). Needs write:tasks.

There is no tool that completes a task: the agent moves it with move_task into a column whose isDone is true. The tool descriptions tell the agent so.

A key belongs to the organization, not to the person who created it. If they leave, what the key can do does not change — revoke it in settings when you want it gone.

More in this section

Try it in your own workspace

No credit card. 14 days of full Pro, then it drops to the free plan.