Guides
Set up MCP in Claude Code, Desktop and Cursor
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
- Open tasks and go to Settings → API tokens.
- Choose New token and give it a name, for example
Claude Code laptop. - 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.
- Read tasks (
- Limit the token to some workspaces if the AI should see only those, for example only your company’s workspace.
- 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
| Token | Tools |
|---|---|
| Read tasks | list_workspaces, list_tasks, get_task, list_taxonomy |
| Read and write tasks | also 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.