Connect Claude or ChatGPT to your to-do list with MCP
TaskPocket hosts an MCP server. You add one URL in Claude, ChatGPT or any client that speaks the Model Context Protocol, approve access on a consent screen, and your own assistant can read your tasks, add new ones, move them and plan your day. There is no assistant inside the product; you bring yours, and disconnect it at any time.
By Bohdan StefaniukLast updated
What this is, in one paragraph
The Model Context Protocol is the open standard that lets an AI assistant call tools on a server you choose. TaskPocket runs such a server next to your data. It exposes 22 tools over your tasks, projects and areas, the same operations the web app and the iPhone app use, with the same plan rules. Claude and ChatGPT connect to it with the OAuth flow the protocol specifies: the client discovers the server, sends you to a TaskPocket page that names the app and the access it wants, and you approve. Nothing is installed, nothing runs on your machine, and no key is pasted. Clients that configure servers by hand, Claude Code and Cursor among them, can use a personal token instead.
MCP server URL
https://api.taskpocket.io/api/public/v1/mcpThis is not a novel idea and is not sold as one. TickTick and Todoist run MCP servers too. What is different here is what stays out of the product: there is no assistant of ours reading your list. The AI is the one you chose, with the access you approved, and it is off until you connect it. That position is laid out on the no-AI page.
Connect Claude
Claude calls this a custom connector. Once added it works in claude.ai and in the Claude apps that share your connectors; Anthropic's article lists which plans include custom connectors.
Open the connector settings
In Claude, open Settings, then Connectors, and choose Add custom connector.
Paste the server URL
Name it TaskPocket and paste
https://api.taskpocket.io/api/public/v1/mcp. Leave the advanced OAuth fields empty: the server registers the client itself.Approve access
Click Connect. A TaskPocket page opens in your browser and shows the app's name, the address the access will be sent to, and the scopes it asks for. Sign in if you are not, then Approve. You land back in Claude, connected.
Ask something
Enable the connector in a chat and try “What is on my plate today?” Claude calls
get_contextandlist_tasksand answers from your real list.
Connect ChatGPT
ChatGPT speaks the same protocol and runs the same approval flow. The menu lives behind developer mode, and OpenAI's documentation says which plans can add custom connectors.
Turn on developer mode
In ChatGPT, open Settings, then Apps & Connectors, then Advanced, and switch on Developer mode.
Create the connector
Choose Create. Name it TaskPocket, paste
https://api.taskpocket.io/api/public/v1/mcpas the server URL, and pick OAuth as the authentication.Approve the connection in ChatGPT
ChatGPT sends you to the same TaskPocket consent page. Approve, and the connector's tools register on their own. Enable it in a chat and ask away.
Claude Code, Cursor and clients you configure yourself
Clients that take a server configuration connect with a personal token. Create one in TaskPocket under Settings → API, choose the scopes it should have, and send it as a bearer header. Claude Code can also run the OAuth flow itself: add the server without a header and run /mcp to sign in.
Claude Code
claude mcp add --transport http taskpocket https://api.taskpocket.io/api/public/v1/mcp \
--header "Authorization: Bearer tp_pat_your_token"Cursor, in mcp.json
{
"mcpServers": {
"taskpocket": {
"url": "https://api.taskpocket.io/api/public/v1/mcp",
"headers": { "Authorization": "Bearer tp_pat_your_token" }
}
}
}A token with the read scope alone makes the assistant a reader: the write tools are not even listed to it. Revoke the token in Settings and access ends on the next request.
What a conversation looks like
Two threads, recorded against the real server. The chips are the tools the assistant called. Hover to pause; the tabs switch threads.
Your assistant, connected to TaskPocket
What is on my plate today, and what can wait?
- get_context
- list_tasks
Three things are dated today: • Call the dentist (reminder at 09:30) • Send the Q3 invoice, in the Freelance project • Draft the launch post, in Spring launch, with a 10 Oct deadline Two more are overdue from last week: Renew passport and Book the van. Nothing else is dated, so the rest can wait.
Move the dentist call to Thursday and park the van booking in Someday.
- update_task
- move_task
Done. Call the dentist is now on Thursday 2 Oct, reminder kept at 09:30. Book the van is in Someday with no date.
The assistant names what it did and asks before it guesses. When it hits a plan rule, a deadline on a free account for example, it says so instead of pretending.
Scenario: The weekly review
How did last week go?
- get_context
- list_tasks
- list_projects
You completed 14 tasks and cancelled 2. Nine of the fourteen were in Freelance, so that is where the week went. Two projects had nothing completed: Garage and Spanish. Four tasks are overdue, all dated last Thursday or earlier. Want me to move the overdue ones to today, or to Someday?
Today for the Freelance ones, Someday for the rest.
- update_task
- update_task
- move_task
- move_task
Done. Two Freelance tasks are dated today; Fix the gate latch and Find a tutor are in Someday.
Scenario: Clearing the inbox
My inbox has piled up. Sort it out, but ask before you move anything.
- list_tasks
- list_projects
Eleven tasks in the inbox. Here is where I would put them: • Freelance: Chase the Acme invoice, Update the portfolio, Reply to Sam about rates • Home: Replace the smoke alarm battery, Return the library books • Someday: Learn to make sourdough, Look into e-bikes, Plan the Lisbon trip Three I cannot place: "Thing from Tuesday", "Ask M", and "the form". Shall I move the eight and leave those three?
Yes, and trash "Thing from Tuesday", I have no idea what that was.
- move_task
- move_task
- move_task
- move_task
- move_task
- move_task
- move_task
- move_task
- trash_task
Moved eight tasks and trashed Thing from Tuesday. It stays in the trash, so you can restore it if it comes back to you. "Ask M" and "the form" are still in the inbox.
Scenario: A read-only check
Anything due before the end of the month that I have not started?
- get_context
- list_tasks
Two tasks have a deadline before 31 October and no start date yet: Submit the tax return (deadline 28 Oct) and Renew the car insurance (deadline 30 Oct). Both are in the Admin project.
Set the tax return to start on the 20th.
I cannot change that from here. This connection has the read scope only, so I can look things up but not edit. If you want edits, reconnect with the write scope from Settings in TaskPocket.
What the assistant can do
Every tool runs through the same service layer as the app, so the assistant cannot reach anything you could not reach yourself, and every change shows up on your phone through the normal sync. The scope column is the one on the token or the consent screen.
| Tool | Scope | What it does |
|---|---|---|
| get_context | any | Account timezone, today’s date there, plan, the scopes this connection has, and the plan limits. |
| list_tasks | read | Tasks from one view (inbox, today, upcoming, anytime, someday, logbook, trash, all), filtered by project, area or status, paged by cursor. |
| get_task | read | One task with its checklist, repeat rule and Markdown notes. |
| list_projects | read | Projects with their sections, by area or status. |
| get_project | read | One project with its sections. |
| list_areas | read | The areas that group projects. |
| create_task | write | A new task in the inbox, in Someday, or in a project, with a start date, a reminder, a repeat rule and a checklist. |
| update_task | write | Change a task’s title, notes, dates, reminder, repeat rule or checklist, or clear any of them. |
| move_task | write | Move a task between the inbox, Someday and a project or section. |
| complete_task, reopen_task, cancel_task | write | Status changes. Completing a repeating task rolls it to the next occurrence. |
| trash_task, restore_task | write | To the trash and back. |
| create_project, update_project | write | Projects, with notes, an area and (on Premium) a deadline. |
| complete_project, reopen_project | write | Completing a project cancels its open tasks unless told to complete them. |
| delete_project | write | Moves the project and its open tasks to the Trash. You restore it from the app. |
| create_area, update_area, delete_area | write | Areas. Deleting one leaves its projects ungrouped. |
The same operations are available over REST. The API page documents them, and the interactive reference lists every field.
What it will not do
- It will not think for you. The server has no model and no prompts of its own. Whatever the assistant decides comes from the assistant you connected, with your data as input.
- It will not lift a plan limit. A free account has five projects and two areas, no deadlines, and fourteen days of logbook history, through MCP exactly as in the app. The assistant is told the limits by
get_contextand gets a plain error if it hits one. - It will not erase finished work. Deleting a project moves it and its open tasks to the Trash, where you can restore it. Completed tasks stay in the logbook. Trashing a task is reversible; the assistant can restore it.
- It will not share your list with anyone else. Each connection is to one account, and a task id from another account is simply not found.
- It will not run while you are not looking. There are no scheduled jobs, no background agents and no webhooks. The assistant only acts inside a conversation you are having.
Privacy and control
The consent screen shows two things worth reading: the app's name, which the app chose, and the address the access will be sent to, which the app cannot fake. Access tokens live for an hour and renew themselves; a grant lives at most a year before it asks you again. Settings → API → Connected apps lists every grant, and Disconnect ends one at once. A read-only grant cannot be talked into editing: the write tools are hidden from it and refused if called by name. If an account is suspended, every connection becomes read-only, the same as the app.
What the assistant does with what it reads is between you and its vendor. TaskPocket sends your data to the client you connected and to nobody else.
Questions people ask
Which AI assistants work with it?
Any client that supports remote MCP servers over Streamable HTTP. Claude (claude.ai and the Claude apps, through custom connectors) and ChatGPT (through developer-mode connectors) use the OAuth flow. Claude Code, Cursor and similar tools can use either OAuth or a personal token in a header.
Do I need to pay for this?
No. The MCP server and the API are on the free plan. The plan limits you already have apply through them: five projects, two areas, no deadlines and a 14-day logbook window on free. Your assistant vendor may charge for custom connectors; check their plan.
Is my task data sent to an AI company?
Only to the assistant you connect, when it calls a tool in a conversation. TaskPocket has no model of its own and sends nothing anywhere on its own. Disconnect the app in Settings and it stops at once.
Can the assistant delete everything?
With the write scope it can trash tasks (reversible from the trash), delete areas (projects survive, ungrouped) and delete projects (they go to the Trash with their open tasks; finished tasks stay in the logbook). It cannot delete your account or your data wholesale, and a read-only grant cannot change anything.
How do I disconnect an assistant?
In TaskPocket, open Settings → API → Connected apps and click Disconnect. Every token of that grant stops working immediately. For a client you configured with a personal token, revoke the token in the same screen.
Is this an AI feature of TaskPocket?
No. There is no assistant, summariser or model in the product, and the date parser is a deterministic grammar. MCP is a door you can open to your own assistant; it is closed until you do.
Sources
- Model Context Protocol, connecting to remote MCP servers (the specification site)checked 2026-09-30
- Anthropic, get started with custom connectors using remote MCPchecked 2026-09-30
- Anthropic, add a connector that is not in the directorychecked 2026-09-30
- RFC 9728, OAuth 2.0 Protected Resource Metadata (how a client finds the authorization server)checked 2026-09-30
- TickTick, TickTick MCP (their first-party server)checked 2026-08-26
Connect your own assistant, or none. The free plan has unlimited tasks and needs no card.
Start my list — free