Connect Cursor to your to-do list
Cursor’s agent sees which parts of the code are unfinished. Add SwitchDesk as an MCP server and it can file those follow-ups in your to-do list, update the to-do it’s working on, and check it off when you’re done. The key stays in your Keychain, not in Cursor’s config.
- Connects over MCP or the CLI
- About 5 minutes
- Set up on your Mac · Pro
Needs Your Approval2
What Cursor can do with your list
Inside Cursor, SwitchDesk is one more MCP server the agent can call between edits. What it gets depends on the access you set:
- Find the right to-do. Search titles and notes, or read a category, Today or This Week, including sub-to-dos.
- Track the work. Mark a to-do in progress, add notes about what changed, check it off.
- Write down what’s left. Add follow-ups to Incoming, or under the project’s category with a due date.
- Ask instead of guess. Send you a yes-or-no question as a card when it isn’t sure where something belongs.
Cursor sees your to-dos and categories. Meeting notes and your Notes window stay on your Mac unless you switch on “Share meetings & notes with your AIs” there.
Why give your editor a to-do list
The agent in Cursor is the one that knows a refactor left a test unwritten or an edge case unhandled. Without a place to put that, it ends up in a chat message you scroll past. With SwitchDesk connected, “add that to my list” takes one sentence, and the follow-up appears in Incoming next to everything else you have to do.
It works the other way too. When the agent picks up a task, it can read that to-do’s notes for the context you wrote down last week, and leave a note of its own when it stops, so the next session starts where this one ended.
Things to ask Cursor
“While you refactor this file, add anything you leave for later to SwitchDesk.”
ChangesAdds each follow-up to Incoming as it goes. No card needed in Assistant.
“Search my to-dos for “onboarding”. Which ones does this change close?”
ReadsSearches titles and notes, compares them with the diff and tells you. Nothing changes.
“Mark “Fernhill settings page” in progress.”
ChangesSets it in progress. In Assistant that’s a card first.
“Add what you changed to the notes on “Lumora export bug”.”
ChangesAppends to the notes without replacing them, after your tap in Assistant.
“What’s due this week in Fernhill?”
ReadsReads the category and due dates, and answers in the chat.
“Put “Review the auth refactor” on Today.”
ChangesAdds it to Today. Adding outside Incoming waits for approval in Assistant.
Set it up
Cursor shares a tile and a Keychain setup with Claude Code. If you’ve done the Claude Code setup, only step 5 is new.
SwitchDesk on your Mac
Click Connect an AI and choose Terminal & coding tools (CLI)
Open Settings → AI Access and click Connect an AI. Choose Terminal & coding tools (CLI) (“Claude Code, Cursor, Codex”).
SwitchDesk on your Mac
Answer “What can it do?”, then Continue
Pick Read only, Assistant or Full control; Fine-tune sets each permission on its own. Click Continue (with Full control the button reads Allow & Continue). Keep Assistant. Already connected Claude Code? Cursor can use that connection: skip to step 5.
Terminal
Install the CLI.
You need Node.js 20 or newer.
npm install -g switchdeskTerminal
Run switchdesk login and paste this key.
Run it in Terminal and paste the key. Nothing shows while you paste. The CLI saves the key in your macOS Keychain, not in a project file and never in Cursor’s chat. The setup page shows the key (it starts with
sda_) once: “Copy the key now. It won’t be shown again.”Terminal
Add it to your coding tool.
For Cursor, add this to
~/.cursor/mcp.json(the same entry works in Claude Desktop’s config). Cursor startsswitchdesk mcp, which reads the key from your Keychain, so the file holds no secret.{ "mcpServers": { "switchdesk": { "command": "switchdesk", "args": ["mcp"] } } }Cursor
Try it in the agent
Click Done in SwitchDesk. Then open Cursor’s agent and ask: “Which SwitchDesk tools can you use? What’s due in Fernhill this week?”
If Cursor can’t find switchdesk, put the full path from which switchdesk in "command". Prefer not to install the CLI? The setup page’s Without the CLI disclosure shows the plain HTTP setup: an MCP server at https://api.switchdesk.org/mcp with the key, read from your Keychain, in the Authorization header.
Choose how much Cursor can do
Start with Assistant. It lets the agent read and capture follow-ups in Incoming without stopping you, and turns everything else into a card. Once you see that it files sensibly, use Fine-tune to set Add anywhere to On, so follow-ups go straight under the project’s category. Keep Delete on Ask: an agent that reads code, issues and web pages can be talked into things. Read only works if you only want Cursor to look things up. Every permission, explained.
Keeping it safe
- No secret in the project. The key stays in your Keychain. If it ever ends up in a file or a commit, click Revoke and create a new one.
- Code comments aren’t orders. SwitchDesk tells every AI to treat to-dos and notes as data, not instructions, and Assistant keeps deletes behind Ask.
- A brake on deletes. Pause stops a connection’s writes; Revoke ends it at once. A burst of deletes pauses it by itself.
- An audit trail. Activity lists every call each connection makes, with Undo for 7 days on anything it changed.
- A fixed ceiling. Cursor can never approve its own cards, change its access, or rename or delete your categories.
If something doesn’t work
- Cursor opens a sign-in page. The config points at the sign-in address. Use the
switchdesk mcpentry above instead. - “Not signed in” or unauthorized. Run
switchdesk loginagain and paste the key, then quit and reopen Cursor. - “Not allowed”. That permission is Off. Change it in Settings → AI Access; the next call uses it.
- “Waiting for approval”. Working as meant. Tap the card in Needs Your Approval on your Mac.
- Writes stopped. The connection is paused. Resume it in Settings → AI Access.
- “SwitchDesk Pro is needed”. AI Access is part of Pro, and the connection resumes with your plan. Pricing.
Published . How AI Access works →