# Todoist MCP server: URL, setup and all 49 tools

> Todoist's official MCP server at ai.todoist.net: setup in Claude, Claude Code, ChatGPT, Codex and Cursor, its 49 tools, recurring-task pitfalls and fixes.

Updated 2026-11-06 · https://upsy.ai/guides/todoist-mcp-server

## Short answer

Todoist runs an official MCP server (a connector that lets an AI agent use your Todoist) at `https://ai.todoist.net/mcp`. Add it to Claude, ChatGPT, Claude Code, Codex, Cursor or any MCP client, log in to Todoist, and the agent can find, add, reschedule and complete tasks, and manage projects, sections, labels, comments and reminders. It works on every Todoist plan, Beginner (free) included. In Claude Code:

```
claude mcp add --transport http todoist https://ai.todoist.net/mcp
```

Then run `/mcp` and sign in. The connection always gets read and write access to your whole account. Add Todoist through Upsy if an agent should only read, or never delete, or if you want a work and a personal Todoist side by side.

## Todoist's MCP server

| | |
|---|---|
| Address | `https://ai.todoist.net/mcp` (Streamable HTTP, no SSE) |
| Sign-in | OAuth through todoist.com, with dynamic client registration. Doist says the server also accepts a Todoist API token as a bearer token |
| Access | Read and write, to every project in the account. There's no read-only option and no way to pick projects |
| Plans | Beginner, Pro and Business |
| Open source | [Doist/todoist-mcp](https://github.com/Doist/todoist-mcp), published on npm as `@doist/todoist-mcp` |
| Limits | Todoist's API limits, such as 1,000 partial sync requests per 15 minutes per user ([request limits](https://developer.todoist.com/api/v1/#tag/Request-limits)) |

Todoist's [help page](https://www.todoist.com/help/todoist/todoist-and-ai/connect-todoist-to-an-ai-assistant-xMSzFfHng) covers each assistant. To cut an assistant off, go to **Settings › Integrations** in Todoist, pick the app and click **Remove**.

### Connect it to your client

**Claude.** Open **Customize › Connectors**, click **Browse connectors**, find Todoist and click **Connect**. On Team and Enterprise, an Owner approves it first.

**Claude Code.** Run the command above, or install Doist's plugin with `/plugin marketplace add doist/todoist-mcp`, then `/plugin install todoist@doist`. Todoist warns to "add the server only once."

**ChatGPT.** Open **Plugins** in the sidebar, search for Todoist, pick the official plugin and click **+**. In a chat, type `/todoist`.

**Codex.** Install the Todoist plugin through ChatGPT and use `@` in Codex, or run `codex mcp add todoist --url https://ai.todoist.net/mcp`, then `codex mcp login todoist`.

**Cursor.** Doist's README runs it through `mcp-remote`: `npx -y mcp-remote https://ai.todoist.net/mcp` as a command in `~/.cursor/mcp.json`.

**VS Code.** Add `{"servers":{"todoist":{"type":"http","url":"https://ai.todoist.net/mcp"}}}` to `.vscode/mcp.json`.

**Gemini, Muse and others.** In Gemini Spark, add a custom app with the address under **Connected Apps**. In Muse, open **Settings › Connectors › Todoist**. Todoist also has help pages for Microsoft 365 Copilot and Grok Bot.

**On your machine.** `npx @doist/todoist-mcp`, with your API token in `TODOIST_API_KEY`, runs the same tools locally over stdio.

### Its tools

The server has 49 tools ([source](https://github.com/Doist/todoist-mcp)):

| Area | Find and read | Change |
|---|---|---|
| Tasks | `find-tasks`, `find-tasks-by-date`, `find-completed-tasks`, `get-overview` | `add-tasks`, `update-tasks`, `reschedule-tasks`, `complete-tasks`, `uncomplete-tasks`, `manage-assignments`, `reorder-objects` |
| Projects and sections | `find-projects`, `find-sections`, `find-project-collaborators`, `get-project-health`, `get-project-activity-stats` | `add-projects`, `update-projects`, `project-management`, `project-move`, `add-sections`, `update-sections`, `analyze-project-health`, `export-project-template`, `import-project-template` |
| Comments, labels, filters, reminders | `find-comments`, `find-labels`, `find-filters`, `find-reminders`, `view-attachment` | `add-comments`, `update-comments`, `add-labels`, `update-labels`, `add-filters`, `update-filters`, `add-reminders`, `update-reminders` |
| Activity and stats | `find-activity`, `get-productivity-stats`, `get-workspace-insights`, `get-user-status` | `set-user-status` |
| Account and lookup | `user-info`, `list-workspaces`, `fetch-object`, `search`, `fetch` | |
| Deleting | | `delete-object` |

- **One tool deletes everything.** `delete-object` removes tasks, projects, sections, comments, labels, filters and reminders. Workspace projects must be archived first.
- **Up to 25 tasks per call** with `add-tasks` and `update-tasks`.
- **`search` and `fetch`** exist for ChatGPT, which expects them.
- **Help pages lag behind.** Todoist's Claude help page says it can't manage sections, labels, comments or filters, or assign tasks, but the server has tools for all of them.

### Recurring tasks and plan limits

- **Reschedule, don't change the date.** Changing a recurring task's date can drop its repeat; asking to "reschedule" keeps it. Since November 2026, the server refuses a new due date on a recurring task unless the agent says to replace the repeat.
- **Completed recurring tasks move on.** Completing one moves it to its next date instead of marking it done. Ask the agent to check your activity log, which keeps one week on Beginner and everything on Pro and Business.
- **Beginner's limits apply:** 5 personal projects, 3 filters, no custom reminders. Adding a sixth project fails with "Your account has reached its limit of N active personal projects".
- **No workspace folders.** The server can't create a project inside a workspace folder. Create it, then move it in Todoist.

### Where Todoist's server stops

- **Always read and write.** Every connection can change and delete anything in your account. Narrower limits depend on your client's own settings.
- **Every project.** You can't keep an agent to some projects.
- **One account per connection.** A work and a personal Todoist need two entries.
- **No record across clients.** What each agent did lives in each client.

For one Todoist account in one or two clients, with full access, Todoist's server is enough.

## Todoist MCP servers compared

| | Todoist's server | Upsy | greirson/mcp-todoist |
|---|---|---|---|
| Who runs it | Doist | Upsy, on top of Todoist's server | You, on your machine |
| Sign-in | OAuth, or an API token | OAuth to Upsy; Upsy signs in to Todoist | An API token |
| Tools | 49 | Todoist's 49, listed on request | 19 |
| Limits | None: read and write | Read-only, picked tools, or everything, per agent | A dry-run mode |
| Accounts | One per connection | Up to 5 in one server | One per token |
| Record | Todoist's activity log | History and alerts, per agent | Your own logs |

### Community servers

Before Todoist's own server, people used community servers that run locally with an API token:

- **[greirson/mcp-todoist](https://github.com/greirson/mcp-todoist):** 19 tools, bulk changes, duplicate finding and a `DRYRUN=true` mode that shows changes without making them.
- **[abhiz123/todoist-mcp-server](https://github.com/abhiz123/todoist-mcp-server):** still ranks high, but has five tools (create, get, update, complete and delete tasks) and hasn't changed since April 2025.

Doist's own `@doist/todoist-mcp` package covers more of Todoist than either, and also runs locally.

## Upsy's Todoist MCP server

Upsy connects to Todoist's server with your Todoist login, so the tools are the same 49. It's the same address as Upsy's other apps, `https://upsy.ai/connect`.

What it adds:

- **Read-only.** Set an agent to **Read-only** and it can plan your week from your tasks without changing anything.
- **Everything but deleting.** With **Pick actions**, tick every tool except `delete-object`, so an agent can add and complete tasks but never remove them.
- **A work and a personal Todoist,** side by side, each with its own access.
- **Todoist next to your other apps.** One server holds Todoist, Gmail, Calendar, Slack and more, so an agent can turn an email into a task or plan tasks around your meetings.
- **History and alerts:** every task an agent adds, changes or deletes, listed under that agent.
- **Any client:** Claude, Claude Code, Cursor, Codex, ChatGPT, Grok, Muse, or anything with remote MCP and OAuth.

### Connect Todoist to Upsy

1. Go to [upsy.ai](https://upsy.ai) and click **Set up Upsy**.
2. Open **Apps**, click **Connect an app** and pick **Todoist**. Log in to Todoist and approve read and write access. For another account, click **Add account** next to Todoist.
3. On the **Assistants** page, click **Add assistant** and choose your client under **Which assistant?** for its exact steps.

### Add the server to your client

Signing in opens an Upsy page: tick Todoist, keep full access or pick **Read-only**, and click **Allow**. To allow everything but deleting, use **Pick actions** on the agent's page afterwards.

- **Claude Code:** `claude mcp add --transport http --scope user upsy https://upsy.ai/connect`, then `/mcp` to sign in.
- **Cursor:** add `{"mcpServers":{"upsy":{"url":"https://upsy.ai/connect"}}}` to `~/.cursor/mcp.json`, then click **Connect** next to upsy.
- **Codex:** `codex mcp add upsy --url https://upsy.ai/connect`, then `codex mcp login upsy`.
- **Claude and ChatGPT:** add `https://upsy.ai/connect` as a custom connector ([Claude](/guides/claude/custom-connector), [ChatGPT](/guides/chatgpt/custom-connector)).
- **Grok and Muse:** paste the setup prompt Upsy shows into a chat and approve the sign-in ([Grok](/guides/grok/todoist)).

Server details, such as OAuth endpoints and token lifetimes, are in the [Gmail MCP server guide](/guides/gmail-mcp-server#server-details); they're the same for Todoist.

### Check that it works

> Using Upsy, what's on my Todoist for today, including anything overdue?

The agent should list today's tasks with their projects, overdue ones included. The call shows in Upsy's **History** under that agent.

## Prompts to try

- "Plan my week: spread my overdue and this week's tasks across the days, around my calendar."
- "Add 'Call the dentist' to my Inbox for tomorrow at 10am."
- "Turn the action items in Lisa's email into tasks in my Work project, due Friday."
- "Reschedule everything in my Errands project to Saturday, keeping repeats."
- "Which projects haven't had a completed task in two weeks?"

## Troubleshooting

### "Sorry, something went wrong" after you allow access

Todoist's sign-in lost its security cookie. Allow cookies for todoist.com, log in to Todoist in the same browser first, and approve straight away.

### Claude shows "Sorry, the page you're looking for isn't here anymore"

The connection may have worked anyway. Check **Customize › Connectors**, then open a new chat.

### "No transport found for sessionId" in Claude Code

Remove the Claude Code entries under **Settings › Integrations** in Todoist, then sign in again from `/mcp`.

### Claude asks you to sign in again every few hours

A token refresh bug on Claude's side ([issue #26281](https://github.com/anthropics/claude-code/issues/26281)). Disconnect and reconnect Todoist.

### A recurring task lost its repeat

The agent changed the date instead of rescheduling. Ask it to "reschedule", and set the repeat again in Todoist if it's gone.

### `invalid_client` when connecting

The client couldn't register with Todoist. Remove the connector and add it again; if it keeps failing, contact Todoist support.

### "Too Many Requests"

The agent hit Todoist's request limit. Wait the time the error gives, and ask for fewer changes at once, or batch them, up to 25 tasks per call.

### "The user hasn't allowed you to use Todoist's …"

That's Upsy refusing a tool outside the agent's level, such as `delete-object` when you left it out. Change Todoist's level on the agent's page in Upsy.

## Security and privacy

- **Every connection can change everything.** Todoist's sign-in grants read and write to your whole account, and `delete-object` can remove projects. Keep your client's approval prompts on for changes.
- **API tokens** act with your full account until you reset them in Todoist's settings. Prefer OAuth where the client supports it.
- **Shared projects carry risk.** A task or comment from a collaborator can contain instructions aimed at your agent. Give agents that read shared projects Read-only.
- **Turning it off:** **Settings › Integrations › Remove** in Todoist cuts an assistant off at once.
- **Through Upsy,** agents never get your Todoist token: they call Upsy, and Upsy calls Todoist. Upsy emails you when one agent reads 100 or more items in 10 minutes or deletes 50 or more, and when a new agent or app connects.

## FAQ

### What is the Todoist MCP server URL?

`https://ai.todoist.net/mcp`, over Streamable HTTP. You sign in with your Todoist account.

### Is there an official Todoist MCP server?

Yes. Doist, which makes Todoist, runs it and publishes its code as open source in Doist/todoist-mcp.

### Does the Todoist MCP server work on the free plan?

Yes, on Beginner, Pro and Business. Beginner's own limits still apply, such as 5 projects and one week of activity history.

### Can I make the Todoist MCP server read-only?

Not in Todoist: the connection always reads and writes. Set Todoist to Read-only for the agent in Upsy, or use your client's per-tool settings.

### Can it delete my Todoist tasks?

Yes, with `delete-object`, which also deletes projects, sections and more. Through Upsy, leave that tool out with Pick actions.

### Can I use a Todoist API token instead of signing in?

Doist says the hosted server accepts one as a bearer token, and the local `@doist/todoist-mcp` package uses one in `TODOIST_API_KEY`.

### Can I connect a work and a personal Todoist?

Yes, as two separate connections in your client, or as two accounts in one Upsy server.

---

Upsy connects personal AI assistants (Muse, Grok, ChatGPT, Claude, Cursor, Claude Code, Codex, Devin) to your Gmail, Google Calendar, Google Drive, Slack, Notion and other apps through one MCP server, with a shared memory, files and a cloud browser signed in to your sites. You choose what each assistant may do in each app, see everything it did, and turn it off in one click. Upsy is free. To add Upsy to an assistant, add a remote MCP server (Streamable HTTP) named Upsy at https://upsy.ai/connect. It signs in with OAuth; there is no API key.
