GetItDoneGetItDone Docs

Connecting AI Assistants (MCP)

Connect Claude, Cursor, or any MCP client to your tasks — the remote GetItDone MCP server's endpoint, auth, and full tool list.

GetItDone runs a remote Model Context Protocol (MCP) server, so AI assistants like Claude can list, create, update, and archive your tasks — with the same rich context the product itself has, including task images and extracted video frames.

Any MCP client that speaks remote servers can connect: no local install, no sidecar process.

Endpoint

URLhttps://app.nowgetitdone.com/api/mcp
TransportStreamable HTTP
AuthAuthorization: Bearer <gid_ API key>

Get an API key

  1. Sign in at app.nowgetitdone.com.
  2. Go to Settings → API Keys (app.nowgetitdone.com/settings/api-keys).
  3. Create a key — keys start with gid_ and are shown once, so store them safely.

The same key authenticates the public /v1 REST API; test keys are prefixed gid_test_.

Connect your client

Claude Code:

claude mcp add --transport http getitdone https://app.nowgetitdone.com/api/mcp \
  --header "Authorization: Bearer gid_YOUR_API_KEY"

Claude Desktop, Cursor, or any remote-MCP client that takes JSON config:

{
    "mcpServers": {
        "getitdone": {
            "url": "https://app.nowgetitdone.com/api/mcp",
            "headers": {
                "Authorization": "Bearer gid_YOUR_API_KEY"
            }
        }
    }
}

Tools

Everything an assistant needs to run a real task workflow — discovery, deep reads, and writes. Each tool names the API scope a key must hold: without it the tool never appears in tools/list and a call is refused.

  • list_workspaces — read · workspaces:read — List the workspaces (organizations) the current user belongs to, with their ids. Pass a returned id as workspaceId on the other tools to target a specific workspace when the user has more than one.
  • list_tasks — read · tasks:read — List tasks for the current user in their organization. Can filter by status and priority. Returns the latest version of each task, including whether each one is currently BLOCKED and how many tasks it blocks, so you can tell what is actually actionable right now.
  • get_task_details — read · tasks:read — Get the FULL content of a single task: its rich-text notes, every attachment (image, video, document) with short-lived URLs the AI can fetch to read the actual content, and its dependency chain — which tasks are blocking it and which tasks it blocks. Use this after list_tasks when you need to see what is inside a task or why it cannot be started. Identify the task by short ID (e.g. 123 for T-123) or task version ID.
  • get_task_video_context — read · tasks:read — Pull visual context from a task's videos: extracts a few evenly-spaced frames from any uploaded video (screen recording etc.) in the task's notes or attachments so you can understand what it shows, and surfaces any YouTube/Vimeo links found in the notes. Use when a task references a video/screen recording. Identify the task by short ID (e.g. 123 for T-123) or task version ID.
  • create_task — write · tasks:write — Create a new task for the current user in their organization. Set a start date when the task cannot be worked on until a given day (defer-until). Set a recurrence to make it a repeating habit or routine ("every weekday", "every other Monday", "the 1st of each month", "every 3 days after I finish it") — each day is completed independently.
  • update_task — write · tasks:write — Update an existing task. You can update the name, status, priority, start date, due date, notes, story points, or its repeat schedule (pass a recurrence to start/replace it, or null to stop it repeating). Identify the task by its short ID (e.g. T-123) or task version ID.
  • complete_task_occurrence — write · tasks:write — Mark one DAY of a repeating task done. This is per-day: completing Monday leaves Tuesday untouched. The day can be in the PAST ("I brushed my teeth yesterday") or a scheduled FUTURE day finished early — neither breaks the chain, and neither is something a task-manager MCP normally lets you say. Identify the task by short ID (e.g. 123 for T-123) and the day as YYYY-MM-DD; omit the day for today.
  • link_task_dependency — write · tasks:write — Record that one task is BLOCKED BY another (finish-to-start), or remove that link. Use it whenever the user says one piece of work is waiting on, depends on, or is held up by another. The blocked task is then reported as blocked until every blocker is completed, so you can answer "what is blocking this?" with the real chain instead of a flat list. Identify both tasks by short ID (e.g. 123 for T-123); pass action "remove" to unlink. Links that would create a loop are rejected.
  • archive_task — write · tasks:write — Archive or unarchive a task. Archived tasks are hidden from the main task list. Identify the task by its short ID (e.g. T-123).
  • search_docs — read · workspaces:read — Search the GetItDone developer documentation — REST API operations, error/problem codes, and guide pages — and return ranked results with their public URLs. Guide and error pages also return a Markdown-twin URL (the page URL plus '.md') the agent can fetch to read the full page as plain text. Use when you need to know how a /v1 endpoint works, what an error code means, or where a capability is documented.

Context other task tools don't give an AI

Most task-management MCP integrations stop at text and metadata. GetItDone treats the AI as a first-class user and hands it the same rich context a teammate would get:

  • Full task contents, attachments included. get_task_details returns a task's rich-text notes plus every attachment — images, videos, documents — each with a short-lived URL the assistant can fetch to read the actual content, not just a filename.
  • Blocked-by chains the assistant can read and write. list_tasks reports whether each task is currently blocked and how many tasks it blocks, get_task_details returns the chain in both directions, and link_task_dependency records or removes a blocker — so "what can I actually start today?" is answered from the real graph, and a link that would create a loop is refused rather than stored.
  • Video-frame extraction, server-side. get_task_video_context samples evenly-spaced frames from screen recordings and other videos attached to a task and returns them as images the AI can see — so "watch the bug repro and fix it" actually works. YouTube and Vimeo links in the notes are surfaced too.

Quotas

The MCP server works on every plan, including Free. MCP calls are metered against the same workspace API-call quota as the REST API — the per-plan numbers are in Rate limits & quotas, and checkout is on the pricing page.

On this page