Connecting an AI Assistant (MCP)
Cadeo can be connected to an external AI assistant — Claude, or any client that speaks the Model Context Protocol (MCP). Once connected, you can ask that assistant about your Cadeo workspace and let it work with your tasks directly: "what's on my plate today?", "add a task to chase the invoice on Friday", "mark the API review prep as done".
This is different from Cadeo Chat, which is Cadeo's own AI, inside the app. This page is about letting a tool you already use reach into Cadeo.
Connecting an external assistant is a Pro plan feature, currently in beta. Beta access can also be granted to a workspace individually — get in touch if you'd like it enabled.
Entitlement is checked both when you create a token and on every request an assistant makes. So a workspace without it can't create a token in the first place, and if a plan changes later the connection stops working straight away rather than at the token's expiry.
Tokens are created on web or desktop. There's no equivalent screen in the iPhone app yet, though a token created on web works for an assistant running anywhere.
What an assistant can do
An assistant gets eight tools. Five read, three write.
| Tool | What it does |
|---|---|
get_today | Today's agenda — tasks scheduled for today, overdue tasks, today's events, how many things are sitting in your Inbox, and today's daily note |
list_tasks | Open tasks by view: today, this week, overdue, inbox, or everything. Can be narrowed to a project or area |
get_task | One task in full, including the notes field on that task |
get_calendar | Calendar events between two dates (up to about three months at a time) |
search_cadeo | Keyword search across task titles, note titles and project names |
create_task | Creates a task — title, notes, scheduled day, time, deadline, priority, project, area |
update_task | Changes any of those fields on an existing task, or reopens a completed one |
complete_task | Marks a task done |
"Today" means your today: it's worked out from the timezone on your profile, not the assistant's.
What it can't do
Worth knowing before you connect anything:
- There is no delete tool. An assistant cannot delete a task, note, project or event. Nothing it does is unrecoverable.
- It can't read what's inside your notes. Search matches note titles only — the body of a note is never sent, and there's no tool that opens one. (The notes field on a task is a different thing, and
get_taskdoes return it.) - Recordings, transcripts and meeting summaries are out of reach entirely.
- No admin actions. It can't invite people, change sharing, alter your plan, or touch billing.
- One workspace per token. A token is tied to the workspace you created it in. If you belong to more than one, create a separate token for each.
- Projects shared with you from another workspace are not visible to an assistant, even though you can see them in Cadeo. This is deliberate — a token grants access to one workspace, not to everything that workspace's members have shared with you.
Creating a token
- Open Settings > Integrations.
- Find AI agent access (MCP) and click Create token.
- Give it a name — something that tells you which assistant it belongs to, like "Claude Desktop". You'll only ever see the name, so make it useful.
- Choose the access level: Read-only or Read and write. Read-only is pre-selected.
- Choose when it expires: 30 days, 90 days, 180 days, or 1 year. The default is 90 days.
- Click Create token.
Copy it now — you only get one look
The token appears once, in a dialog, and is never shown again. Cadeo doesn't keep a copy: only a one-way hash of it is stored, which is enough to check a token that's presented but not enough to reproduce one.
Copy it straight into your assistant's configuration before closing the dialog. If you lose it, you can't recover it — revoke that token and create a new one.
Treat it like a password. Anyone holding it has whatever access you granted it, from anywhere.
Read-only or read and write?
Read-only is the safer default, and it's the default for a reason. An assistant with a read-only token can answer any question about your workspace but cannot change a single thing. If the token leaks, or the assistant misunderstands you, or a web page it was reading tries to talk it into something, the worst outcome is that somebody saw your task list.
Choose Read and write when you actually want the assistant to act — capture tasks for you, reschedule things, tick them off. Then bear in mind:
- Its edits are real edits. A task it creates is a task in your Inbox. A field it changes is changed. There's no draft or approval step.
- Completing is reversible — ask it to reopen the task, or untick it yourself.
- Creates and edits are genuine changes to your data. Undo means editing it back, not an undo button.
You can hold both kinds at once: a read-only token for the assistant you use for questions, a read/write one for the assistant you trust to act.
Connecting your assistant
The dialog that shows your token also shows everything else you need — the server address, and a configuration snippet with your token already in it, ready to copy. That's the easiest path: copy the configuration, paste it into your client, done. The rest of this section is for reference, or if you closed the dialog and want to check the shape.
Point your MCP client at:
https://wiurfllxwrgiukgqqoaz.supabase.co/functions/v1/mcp
and have it send your token as a bearer credential:
Authorization: Bearer cadeo_pat_...
Most clients — Claude Code, Cursor, and anything else reading an mcpServers block — take it in this form:
{
"mcpServers": {
"cadeo": {
"type": "http",
"url": "https://wiurfllxwrgiukgqqoaz.supabase.co/functions/v1/mcp",
"headers": {
"Authorization": "Bearer cadeo_pat_..."
}
}
}
}
"type": "http" matters: without it a client assumes the entry describes a program to launch on your own machine, and goes looking for a command that isn't there.
Every client keeps that block somewhere different — check yours for where its MCP configuration lives.
Some clients offer only a URL field and invite you to paste credentials into it. Cadeo refuses any request carrying a token in the query string. A token in a URL ends up in browser history, proxy logs and server logs along the whole path — so this is rejected rather than quietly accepted.
If you use Local-only AI
If you have Local-only AI mode turned on, creating a token asks you to type CONNECT to confirm first, and that confirmation is recorded against the token.
The reason is worth stating plainly: connecting an external assistant sends your workspace content to that assistant's own AI provider. That's the whole point of the connection — the assistant has to see your tasks to answer questions about them.
Local-only AI mode continues to mean exactly what it always did: Cadeo's own AI processing stays on your device. It has never governed tools you connect yourself. The typed confirmation exists so that choosing one can't happen by accident when you've explicitly asked Cadeo to keep its own AI local.
If you'd rather not send anything outward, don't create a token — or create a read-only one, so that at least nothing can be changed.
Revoking a token
Each token in the list shows its name, its prefix, the access level, when it was created, and when it was last used — the quickest way to spot one you've forgotten about.
To revoke: click Revoke next to it and confirm. Access stops immediately. Anything still using that token starts getting refused on its very next request.
Revoke a token whenever you stop using an assistant, whenever you suspect the token has been seen by anyone else, and whenever you can't account for a "last used" date.
Tokens also expire on their own at the date you chose, which is why the default is 90 days rather than a year.
Limits
Limits exist so that a confused or looping assistant can't run away with your workspace. In normal use you will not meet them.
| Reading | About one read a second, sustained. Ample for conversation; not enough to bulk-export your workspace |
| Editing | Several hundred edits a day, across all of your tokens combined |
| Completing tasks | 20 a day. Deliberately low — nobody legitimately completes hundreds of tasks a day through an assistant, and this is the closest thing to a destructive action available |
| Active tokens | 20 at a time. Revoke one to create another |
| Search results | Up to 50 matches per search; the assistant is told when there were more |
When a limit is hit, the assistant is told to wait and how long for — it isn't an error, and it shouldn't retry immediately.
Troubleshooting
"MCP access requires an active Cadeo plan" The workspace isn't entitled — it's on Free or Personal, or beta access hasn't been granted. You'll meet this either when creating a token or when an assistant uses one, because both are checked. If a token that used to work starts being refused, the plan has changed since it was created.
The assistant says it's unauthorized The token is wrong, expired, or revoked. Tokens can't be recovered or repaired — revoke it and create a new one.
The assistant can only read, but I wanted it to act Access level is fixed when a token is created. Create a new read/write token and revoke the old one.
The assistant can't see a project a colleague shared with me Expected. A token reaches one workspace; content shared in from elsewhere isn't included.
The assistant can't find a note by something written inside it Only titles are searched, and there's no tool that opens a note. Note bodies are never sent to an assistant.