Guides

Set up MCP in Claude Code, Desktop and Cursor

Updated

tasks has its own MCP server at https://app.tasks.squibble.ch/mcp. Claude Code, Claude Desktop, Cursor and other MCP clients use it to read your tasks and add new ones in the middle of a conversation. All you need is an API token and about five minutes.

1. Create a token

  1. Open tasks and go to Settings → API tokens.
  2. Choose New token and give it a name, for example Claude Code laptop.
  3. Pick the scopes:
    • Read tasks (tasks:read): the AI sees workspaces and tasks.
    • Write tasks (tasks:write): the AI may also create, change, complete and comment on tasks.
  4. Limit the token to some workspaces if the AI should see only those, for example only your company’s workspace.
  5. Choose Create token and copy it. It starts with tsk_ and is shown only now.

A token expires after 90 days unless you choose otherwise, and after one year at the latest. You can revoke it on the same page at any time, and that takes effect at once.

2. Claude Code

Replace tsk_… with your token and run this in a terminal:

claude mcp add --transport http tasks https://app.tasks.squibble.ch/mcp --header "Authorization: Bearer tsk_…"

With -s project the entry goes into the project’s .mcp.json instead of your personal configuration. Do not commit that file with the token in it. claude mcp list shows whether the server is connected. A project server has to be approved once the next time you start claude.

3. Claude Desktop

Claude Desktop reaches servers that need a token in a header through a small program called mcp-remote, which needs Node.js. In Claude Desktop, open Settings → Developer → Edit Config and add this to claude_desktop_config.json:

{
  "mcpServers": {
    "tasks": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://app.tasks.squibble.ch/mcp", "--header", "Authorization:${TASKS_AUTH}"],
      "env": { "TASKS_AUTH": "Bearer tsk_…" }
    }
  }
}

The token sits in the environment variable because Windows drops spaces inside the arguments. Restart Claude Desktop afterwards. The tools of tasks appear under the tools icon in the input field.

4. Cursor

Add this entry to ~/.cursor/mcp.json (for all projects) or .cursor/mcp.json (for one project):

{
  "mcpServers": {
    "tasks": {
      "url": "https://app.tasks.squibble.ch/mcp",
      "headers": { "Authorization": "Bearer tsk_…" }
    }
  }
}

tasks then shows up with its tools under Cursor Settings → MCP.

5. Try it

Ask, for example:

  • “What is due today?”
  • “Show me my inbox.”
  • “Add a task: follow up on the quote on Friday at 14:00.”

Every answer names the task number, such as #8, and links the task. quick_add understands the same quick add syntax as the web app, and with parent_id it adds a subtask. set_parent makes a task a subtask or a top-level task again within its workspace.

What the AI may do

TokenTools
Read taskslist_workspaces, list_tasks, get_task, list_taxonomy
Read and write tasksalso quick_add, create_task, update_task, set_status, set_parent, add_comment, create_tag, create_category

Without the write scope the server does not even list the write tools. There is no tool that deletes anything.

If it does not work

  • 401 or “Unauthorized”: the token was copied wrongly, has expired or was revoked. Create a new one and replace it in the configuration.
  • The AI cannot create anything: the token lacks “Write tasks”.
  • A workspace is missing: the token is limited to other workspaces.

Frequently asked questions

Which AI assistants work with tasks?

Claude Code, Claude Desktop, Cursor and any other client that speaks the Model Context Protocol (MCP). tasks is an MCP server itself: the assistant lists workspaces and tasks, reads single tasks, adds new ones through quick add, updates them and sets their status. You connect it with an access token or through sign-in (OAuth).

A read-only token hides the write tools. There is no delete tool, and every token can be restricted to single workspaces.

Are corporate credentials stored on the server?

No, neither for Jira nor for GitLab. tsk sync jira and tsk sync gitlab fetch issues on your own computer, with jira-cli’s stored login and your logged-in glab, and send only the list of issues to tasks. The corporate token goes only to your company’s Jira or GitLab server, never to ours, and our server never calls Jira or GitLab. So no admin has to approve a third-party app, and it works behind a VPN too.

For a timer, tsk login --scope sync creates a separate token that can do nothing but sync. tsk never sends descriptions, comments or attachments of external issues. If needed, a workspace shows only the issue keys instead of the titles; the titles then never leave your laptop.

Try it now