Connect AI agents to Any.do
Any.do's official MCP server lets Claude, ChatGPT, Codex and other MCP clients read and update a user's tasks, lists, reminders, calendar events and team boards, after the user signs in.
At a glance
- Server URL
https://mcp.any.do/mcp- Transport
- Streamable HTTP. Legacy SSE is also available at https://mcp.any.do/sse
- Authentication
- OAuth 2.0: the user signs in with their Any.do account. No API keys
- Price
- Free on every Any.do plan, including Free
- Status
- Beta
Connect your AI client
Add the server URL in your client, then sign in to Any.do and approve access.
Claude
- In claude.ai or the Claude desktop app, open Settings → Connectors.
- Click + or “Add custom connector” and enter the server URL.
- Sign in to Any.do and approve access.
- In a new chat, turn on the Any.do connector from the + menu.
Claude Code
Add the server, then run /mcp in Claude Code and choose anydo to sign in:
claude mcp add --transport http anydo https://mcp.any.do/mcp
ChatGPT (web)
- Open Settings → Plugins → Browse Plugins.
- Click + to add an MCP server, name it “Any.do”, enter the server URL and click Create.
- Authorize your Any.do account. You can manage it later under Settings → Apps.
- In a chat, tag it: “@Any.do what are my overdue tasks?”
ChatGPT (desktop)
- Open Settings → Plugins → Add MCP Server.
- Choose Streamable HTTP, name the server “Any.do”, enter the server URL and save.
- In the MCP section, click Authenticate next to Any.do and sign in with your Any.do account.
- No tagging needed: mention Any.do in your prompt.
Codex (desktop)
- Open Settings → MCP servers → Add server.
- Name it “Any.do”, choose Streamable HTTP, enter the server URL, save and restart Codex.
- Click Authenticate and sign in to Any.do.
- Type /mcp to confirm the connection.
Codex CLI
Add the server, sign in, and check the connection:
codex mcp add anydo --url https://mcp.any.do/mcp codex mcp login anydo codex mcp list
Antigravity
- Open Settings → Customizations → Installed MCP Servers → Open MCP Config.
- Add an “anydo” entry with the server URL inside the existing mcpServers object, keeping your other servers. A workspace config at .agents/mcp_config.json also works.
- Save, refresh the server list and click Authenticate.
- Sign in to Any.do in your browser. If prompted, paste the authorization code back into Antigravity.
Other MCP clients
Any client that supports remote MCP servers with OAuth can connect. The config format varies by client; a typical entry looks like this:
{
"mcpServers": {
"anydo": { "url": "https://mcp.any.do/mcp" }
}
}Tools
The server exposes these tools. Every tool declares MCP read-only and destructive hints, so clients can ask before running write actions.
Tasks and lists
| Tool | What it does |
|---|---|
| get_tasks | Personal and team tasks, filtered by date range, owner, list, workspace, board, section or search text. Paged. |
| get_task | One task by ID. |
| get_completed_tasks_for_date_range | Completed team tasks in a date range. Paged. |
| create_personal_tasks | Create tasks in the user's personal lists. |
| update_task_preview | Preview edits to one or more tasks; saved when the user confirms. |
| get_subtasks | Subtasks of a task. |
| create_subtasks | Add subtasks to a task. |
| update_subtask | Change a subtask's title, status or owners. |
| get_lists | The user's personal lists. |
| create_lists | Create personal lists. |
Reminders
| Tool | What it does |
|---|---|
| set_reminder | Set a one-time reminder on a task. |
| set_recurring_reminder | Set a daily, weekly, monthly or yearly reminder on a personal task. |
Team workspaces and boards
| Tool | What it does |
|---|---|
| get_active_spaces | The workspaces the user belongs to. |
| get_workspace_boards | Boards in a workspace. |
| get_board_sections | Sections of a board. |
| get_workspace_members | Members of a workspace. |
| create_workspace_tasks | Create tasks on a team board, with owners and sections. |
| create_board | Create a board with sections and members. |
Calendar
| Tool | What it does |
|---|---|
| get_connected_calendars | The calendars the user has connected. |
| get_events_for_date_range | Events in a date range. |
| get_calendar_event | One event by ID. |
| create_calendar_events | Create events, with location and attendees. |
| update_calendar_events_preview | Preview edits to events; saved when the user confirms. |
| delete_calendar_events_preview | Preview deleting events; deleted when the user confirms. |
Account
| Tool | What it does |
|---|---|
| get_user_info | The signed-in user's name, email and timezone. |
How it behaves
Acts as the signed-in user
The agent sees and changes only what that user can see in Any.do. Access is granted through OAuth and can be revoked at any time.
Edits wait for a human
Changes to existing tasks and events, and deleting events, open a preview. Nothing is saved until the user clicks “Execute all”. Creating tasks, subtasks, lists, boards, events and reminders happens directly.
Keep secrets out of chat
Sign-in happens on Any.do's own page. Never paste passwords or access tokens into a chat with your AI assistant.
No task deletion
Tasks can be completed or reopened, but not deleted or archived, from an agent.
Paging
get_tasks and get_completed_tasks_for_date_range return items plus next_cursor. Default page size is 20, maximum 100. Pass next_cursor back as cursor until it is null.
Rate limit
60 tool calls per minute per user. Over the limit, the result message starts with RATE_LIMIT_EXCEEDED and says how many seconds to wait.
Dates and responses
Dates are ISO 8601; times without an offset are in the user's timezone. Every tool returns { message, data }, where message is “OK” or the reason for a failure.
Authentication
The server is an OAuth 2.0 protected resource. An unauthenticated request returns 401 with a WWW-Authenticate header that points to the protected-resource metadata, so MCP clients can discover the sign-in flow on their own. The scopes are access_anydo_data and update_anydo_data. Dynamic client registration is supported; the registration endpoint is listed in the authorization-server metadata.
GET https://mcp.any.do/.well-known/oauth-protected-resource/mcp GET https://mcp.any.do/.well-known/oauth-authorization-server
Requirements
- The MCP server is free for every Any.do user. Using custom connectors may require a paid plan with your AI provider; for example, custom apps in ChatGPT need an eligible plan.
- Set it up in a desktop browser or desktop app. Using it on mobile depends on whether your AI app supports custom connectors there.
- Language support depends on the AI assistant you use.
Troubleshooting
Check the connection
In Codex, type /mcp. In other clients, confirm that Any.do shows as connected.
Check the URL
The saved server URL must be exactly https://mcp.any.do/mcp.
Check access
Ask your assistant: “Which Any.do account am I connected to? List my workspaces.” A correct answer means the connection works.
Restart
Restart Codex after adding the server.
Authorization code
In Antigravity, if the sign-in page shows a code, paste it back into Antigravity to finish connecting.
Try asking
Questions
Does Any.do have an MCP server?
Yes. Any.do's official MCP server is at https://mcp.any.do/mcp (beta). It connects Claude, ChatGPT, Codex, Antigravity and other MCP clients to a user's tasks, lists, reminders, calendar and team boards.
Do I need an API key?
No. The server uses OAuth 2.0: the AI client opens an Any.do sign-in, the user approves access, and the client receives a token. There are no API keys to create or store.
Is it free?
Yes. The MCP server is included on every Any.do plan, including Free. Your AI client may need its own plan to use custom connectors.
Can teammates use different AI assistants on the same board?
Yes. Each teammate connects the AI they use and signs in with their own Any.do account. Every change lands on the same shared board.
Does Any.do have a public REST API?
Not today. The MCP server is the supported way to connect agents and code to Any.do. For no-code automations, Any.do also works with Zapier.
