Connect Cursor to iKanban

Cursor's agent can work with your iKanban board without leaving the editor: pull the next task from the sprint, open an issue for the bug in front of you, add a comment with what you changed, and move the task along when you are done. It connects through the iKanban MCP server, a remote Model Context Protocol server at https://mcp.i-kanban.com/sse.

The MCP server is included in every paid plan, from Starter up, with no daily call limit (fair use). See Pricing for the plans.

What you need

1. Add the server to mcp.json

Cursor reads MCP servers from ~/.cursor/mcp.json (every project) or .cursor/mcp.json in a project folder (that project only). Add an ikanban-remote entry:

{
  "mcpServers": {
    "ikanban-remote": {
      "url": "https://mcp.i-kanban.com/sse",
      "headers": {
        "Authorization": "Bearer ${env:IKANBAN_API_KEY}"
      }
    }
  }
}

A remote server is recognised by its url; there is no type field to set. ${env:IKANBAN_API_KEY} reads the key from an environment variable so it never sits in the file — set IKANBAN_API_KEY to your vk_ key in the environment Cursor starts from. If you would rather paste the key, write "Bearer vk_your_key_here" instead, and keep that file out of version control.

Do not commit a project-level .cursor/mcp.json that contains a real key.

2. Try it

Restart Cursor so it loads the new server, then ask the agent, using your own team's identifier:

List the open tasks in the ENG team.

The agent calls list_issues and replies with the tasks. From there it can create and update tasks, assign them, comment, move them between columns, and manage sprints and documents.

What it can and cannot do

The MCP field guide covers each tool group, the parameters that trip people up, and a troubleshooting table.

Troubleshooting

SymptomLikely causeFix
401 or "unauthorized"The environment variable is not set where Cursor runs, or the key was deletedCheck IKANBAN_API_KEY, or paste the key directly to rule it out; create a new key if needed
No iKanban tools appearCursor has not reloaded mcp.jsonRestart Cursor; check the JSON is valid
Refused although the key is validMCP is switched off for your keys, or the client is not on the allowed-client listCheck the MCP access switch and allowed clients on Settings → API Keys; changes can take up to five minutes
A delete request is refusedDeletes are not exposed over MCPDelete in the web app

Using Claude Code? See Connect Claude Code. Other agents: Other MCP clients.