Setup by agent

A shared task list for Cursor

Cursor's agent is good at the task in front of it. What it doesn't have is a backlog that you control from outside the editor and that survives the end of a chat.

Taskhold gives it one. You add tasks in the web app; Cursor reads and updates the same list through MCP tools. You see what it started, where it got stuck and what it finished, each change marked as yours or the agent's.

Setup

  • Start the 7-day trial and open Settings. Click to make a setup URL. It looks like https://taskhold.com/setup/<token>.md and expires after 3 days.
  • Paste it into your agent with the words "set this up". The agent fetches the markdown, which contains a fresh API key, the config for its own client and the task workflow snippet.
  • The agent adds the server, then calls taskhold_list to check it works. Settings shows "Connected" when the first call arrives.

To add it by hand, put this in ~/.cursor/mcp.json for every project, or .cursor/mcp.json in one project:

{
  "mcpServers": {
    "taskhold": {
      "url": "https://taskhold.com/api/mcp",
      "headers": { "Authorization": "Bearer <your atd_sk_ key>" }
    }
  }
}
Cursor reads url and headers for remote servers and also accepts ${env:NAME} in headers. Docs: cursor.com/docs/context/mcp

To keep the key out of the file, use "Authorization": "Bearer ${env:TASKHOLD_API_KEY}" and set that variable in your shell. Cursor may need a restart, or a toggle of the server in its MCP settings, to pick it up.

Tell the agent how to use the list

Put the workflow in a rule (for example .cursor/rules/tasks.mdc) or in AGENTS.md:

## Tasks (Taskhold)

The human and I share a task list through the taskhold MCP tools.
- Session start: taskhold_get_current; if nothing is in progress, taskhold_list status:todo and take the highest priority.
- taskhold_start before working on a task; taskhold_add_note as you go.
- Can't continue? taskhold_block with the reason. Done? taskhold_complete with a short summary.
- Found a TODO or a bug you aren't fixing now? taskhold_create (or taskhold_create_from_todo with file and line).

What the agent can do

  • taskhold_get_current: what is already in progress, so a new session picks up where the last one stopped.
  • taskhold_list and taskhold_start: take the highest-priority todo and mark it in progress, so a second agent skips it.
  • taskhold_add_note: leave notes on the task as work goes, visible in the web app.
  • taskhold_block: stop with a reason. The task shows as blocked on you in Agent Activity.
  • taskhold_complete: finish with a short summary of what changed.
  • taskhold_create and taskhold_create_from_todo: file new tasks, including a TODO with its file path and line number.

Cursor plus another agent

Many people run Cursor next to Claude Code or Codex. All of them can connect to the same Taskhold list, each with its own key. A task one agent has started shows as in progress, so the others take the next one.

Give your agents a list you can both see.

$12 a month or $120 a year per person, every agent included. 7-day trial with a card; cancel before it ends and nothing is charged.

Start your 7-day trial

Questions

Does it work in Cursor's background agents?
Anything in Cursor that loads your MCP servers can use it. It is a plain remote MCP server with a bearer header, nothing Cursor-specific.
Is my code sent anywhere?
Only what the agent puts in a task: text, notes, and file paths with line numbers if it files a TODO. Taskhold doesn't read repositories.
Can I use one key for Cursor and Claude Code?
You can, but making one setup URL per client is cleaner: each gets its own key that you can revoke separately in Settings.
What does it cost?
$12 a month or $120 a year per person, with a 7-day trial that starts with a card.

Related

Updated 2026-10-08