Skip to content
dododonedone

Connect your AI (MCP)

dododonedone has a full MCP server, so an AI assistant can read and change your tasks with the same operations the app uses. You connect it once with a normal sign-in; no API keys to copy.

The server

Server address

https://mcp.dododonedone.com/mcp

  • Transport: streamable HTTP
  • Sign-in: OAuth 2.1 with PKCE. Clients register themselves, so there is nothing to set up first.
  • Each connection is for one workspace, chosen when you approve it. Connect again to add another workspace.

Set up your client

claude.ai

  1. Open Settings, then Connectors.
  2. Choose Add custom connector and paste the server address.
  3. Sign in to dododonedone, pick the workspace and approve.

Custom connectors are available on Claude's paid plans; your organization's admin may need to allow them.

Claude Code

  1. Run this in your terminal:
    claude mcp add --transport http dododonedone https://mcp.dododonedone.com/mcp
  2. In Claude Code, run /mcp and choose dododonedone to sign in.
  3. Approve the workspace in the browser window that opens.

ChatGPT

  1. In ChatGPT's settings, add a custom MCP server (OpenAI calls these plugins or connectors, depending on your plan).
  2. Name it dododonedone, paste the server address and choose OAuth as the authentication.
  3. Sign in to dododonedone, pick the workspace and approve.

Which ChatGPT plans can add custom MCP servers is up to OpenAI and changes; see their help article.

OpenAI's help article on MCP servers

Cursor

  1. Add the server to ~/.cursor/mcp.json for every project, or .cursor/mcp.json in one project:
    {
      "mcpServers": {
        "dododonedone": {
          "url": "https://mcp.dododonedone.com/mcp"
        }
      }
    }
  2. Open Cursor's MCP settings, find dododonedone and sign in.
  3. Approve the workspace in the browser window that opens.

What your AI can do

The tool names follow Todoist's MCP where they overlap, so agents that know one know the other. Batch tools take lists and report failures per item. Every date argument accepts natural language.

MeaningTools
Today, overdue and upcoming at a glanceget_overview
Find, add, update, complete, reopen, reschedule and move tasksfind_tasksfind_tasks_by_dateadd_tasksupdate_taskscomplete_tasksuncomplete_tasksreschedule_tasksmove_tasks
Find, add and update projects and sectionsfind_projectsadd_projectsupdate_projectsfind_sectionsadd_sections
Find and add labelsfind_labelsadd_labels
Read and add commentsfind_commentsadd_comments
Find, add and run saved filters in the filter languagefind_filtersadd_filtersrun_filter
Find and add remindersfind_remindersadd_reminders
Read the activity log and completed tasksfind_activityfind_completed
Delete a task, project, section, comment, label, filter or reminderdelete_object
Who you are and which workspace this isuser_info

Two prompts come with it, a daily review and weekly planning, and your projects and saved filters are readable as resources.

Permissions

The consent screen shows what the client asks for. A client that asks for nothing in particular gets every scope except workspace:write.

ScopeMeaning
tasks:readRead tasks, comments, labels, filters, reminders, activity and completed tasks
tasks:writeAdd and change tasks, comments, labels, filters and reminders
workspace:readRead projects and sections
workspace:writeAdd and change projects and sections

Disconnecting

Settings, Connected apps lists every client you have approved. Revoke one there and it stops working.

If it does not work

  • The client keeps asking you to sign in: remove the connection in the client and add it again.
  • Writes fail with SUBSCRIPTION_INACTIVE: the workspace's trial or subscription has ended. Reading still works.
  • You see the wrong tasks: the connection is for another workspace. Check Settings, Connected apps.
  • Calls answer 429 now and then: each connection may make 120 calls a minute. The client waits and tries again.