DoStack

DoStack for AI assistants

MCP server · beta

DoStack speaks the Model Context Protocol (MCP), so an AI assistant like Claude can work with your tasks. Ask it to capture something in your inbox while you chat, to tell you what's next on your stack, or to tick off what you just finished.

Everything goes through your synced account: what the assistant adds or completes shows up in the app on your iPhone, iPad and Mac at the next sync.

Before you start

  • Sync must be on. Sign in with Apple in the app's Settings, so your tasks live in your DoStack account. Sync is free.
  • Get your personal token. While the MCP server is in beta, write to hello@dostackgtd.com from the email of your Apple ID (or tell us the address you chose to hide it behind). You'll receive a token valid for one year.

Connect your assistant

The server address is:

https://app-f7410c60-9355-4b86-88aa-655d7c4fbd7a.cleverapps.io/mcp/dostack

It uses the Streamable HTTP transport and authenticates with your token in an Authorization: Bearer header.

Claude Code

claude mcp add --transport http dostack https://app-f7410c60-9355-4b86-88aa-655d7c4fbd7a.cleverapps.io/mcp/dostack \
  --header "Authorization: Bearer YOUR_TOKEN"

Then run /mcp in Claude Code to check that dostack is connected.

Clients that support remote servers with headers

Cursor, Windsurf, VS Code and most recent clients accept a URL and headers in their MCP configuration:

{
  "mcpServers": {
    "dostack": {
      "url": "https://app-f7410c60-9355-4b86-88aa-655d7c4fbd7a.cleverapps.io/mcp/dostack",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Claude Desktop and other local-only clients

Go through the mcp-remote bridge (it needs Node.js). In Claude Desktop, open Settings → Developer → Edit Config and add:

{
  "mcpServers": {
    "dostack": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://app-f7410c60-9355-4b86-88aa-655d7c4fbd7a.cleverapps.io/mcp/dostack",
        "--header",
        "Authorization: Bearer YOUR_TOKEN"
      ]
    }
  }
}

Restart the app after saving.

Tools

add_to_inbox

Captures a task in your inbox, to clarify later in the app: the same as the “Add to Inbox” shortcut on your iPhone.

  • title (required): a short title, up to 255 characters.
  • description (optional): details, in Markdown.
{ "title": "Call the plumber", "description": "Leak under the kitchen sink" }

get_stack

Your current stack, most important first, in the same order as the app: weight, plus deadline pressure, plus a little for age. Done tasks, inbox items and tasks snoozed to a later day are left out.

  • project (optional): only the tasks of this project, by name (case-insensitive) or id.

Each task comes with its id, which complete_task needs:

[
  {
    "id": "3f2b8c1e-5a4d-4f6b-9c2e-7d1a0b9e8f42",
    "title": "Send the quote to Martin",
    "description": null,
    "project": "Work",
    "profile": "Default",
    "weight": 75,
    "deadline": "2026-10-09T00:00:00Z"
  }
]

complete_task

Marks a task as done. Completing a task that's already done does nothing.

  • task_id (required): the id returned by get_stack.

Things to try

  • “Add ‘renew my passport’ to my DoStack inbox.”
  • “Go through these meeting notes and put every action item in my inbox.”
  • “What's at the top of my stack for the Work project?”
  • “I sent the quote to Martin, mark it done.”

Good to know

  • New inbox items go to your first profile (“Default” unless you renamed it). Move them while processing your inbox in the app.
  • The app syncs each time it comes to the foreground and a moment after you edit. To see a change right away, use Settings → Sync → Sync Now.
  • Days are counted in UTC on the server, so the order may differ slightly from the app around midnight.
  • The assistant can read your stack, add to your inbox and complete tasks. It can't delete or edit them.

Security

Your token gives access to your tasks: keep it private, like a password, and only paste it in assistants you trust. If it leaks, or to stop using the server, write to hello@dostackgtd.com and we'll revoke it. Deleting your account also revokes it. See the privacy policy for how your data is handled.

For developers

The server implements MCP over plain JSON-RPC 2.0: each POST carries one message and gets a JSON response (no server-sent events, no session id). Protocol versions 2025-06-18, 2025-03-26 and 2024-11-05 are supported. A tool call from the command line:

curl https://app-f7410c60-9355-4b86-88aa-655d7c4fbd7a.cleverapps.io/mcp/dostack \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"add_to_inbox","arguments":{"title":"Buy milk"}}}'

A missing or invalid token gets a 401. Tool failures (unknown project, unknown task, empty title) come back as a tool result with isError: true and an explanation.