Skip to main content

scrumdo-mcp

Connect any MCP-compatible AI tool (Claude Code, Cursor, Windsurf, and others) directly to your ScrumDo boards.

Once installed, your AI assistant can read cards, move them, create tasks, post comments, and search across your board — without you copy-pasting anything.


Installation

pip install scrumdo-mcp

Cursor quick-start

1 — Install

# To run the server only:
pip install scrumdo-mcp

# To run tests too:
git clone https://github.com/ScrumDoLLC/scrumdo-mcp.git
cd scrumdo-mcp
pip install -e ".[dev]"
pytest tests/ -v

2 — Get your token

Log in to ScrumDo → your org → Settings → API Tokens → Create Token. Copy it — shown once only.

3 — Add to ~/.cursor/mcp.json

{
  "mcpServers": {
    "scrumdo": {
      "command": "scrumdo-mcp",
      "env": {
        "SCRUMDO_TOKEN": "your-token-here",
        "SCRUMDO_ORG": "your-org-slug",
        "SCRUMDO_PROJECT": "your-default-project-slug"
      }
    }
  }
}

Your org and project slugs are the short names in your board URL: app.scrumdo.com/my-company/engineering

4 — Restart Cursor

Done. In any Cursor chat you can now ask:

  • "What cards are in the current sprint?"
  • "Move ENG-42 to In Review"
  • "Add a comment to ENG-42: PR is up for review"
  • "List all cards assigned to me"

Setup

Step 1 — Get your token

Log in to ScrumDo → your organization → Settings → API Tokens → Create Token.

Copy the token — it is only shown once. This is your personal key; keep it private.

Step 2 — Configure your AI tool

Find your tool's MCP config file and add the scrumdo server entry:

Tool Config file
Claude Code ~/.claude/claude.json
Cursor ~/.cursor/mcp.json
Windsurf ~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "scrumdo": {
      "command": "scrumdo-mcp",
      "env": {
        "SCRUMDO_TOKEN": "your-token-here",
        "SCRUMDO_ORG": "your-org-slug",
        "SCRUMDO_PROJECT": "your-default-project-slug"
      }
    }
  }
}

Your org slug and project slug are the short names in your board URL: app.scrumdo.com/my-company/engineering

Step 3 — Restart your AI tool

Done. Your AI assistant now has direct access to your board.


What you can do

Once connected, just talk to your AI tool naturally:

"What's the status of ENG-42?"
"Move ENG-42 to In Review and add a comment saying the PR is up"
"List all cards assigned to me in the current sprint"
"Create a sub-task on ENG-42: write release notes"
"Search for cards about the login bug"
"What did the team work on this week?"
"Block ENG-42 — waiting on design approval"
"Move ENG-42 to the Sprint 14 iteration"
"Set the due date on ENG-42 to 2026-04-30"
"Assign ENG-42 to Sarah"

Available tools (130 total)

Group Tools
Boards list_boards, get_board, get_board_cells, list_iterations, list_milestones, list_labels, list_epics
Cards list_cards, get_card, card_schema, find_card, create_card, update_card, move_card, move_card_to_iteration, set_card_field, set_card_fields, archive_card, assign_card, add_card_label, remove_card_label
Blockers list_blockers, block_card, unblock_card
Tasks list_tasks, create_task, complete_task, reopen_task, update_task, delete_task
Comments list_comments, add_comment, delete_comment
Attachments add_attachment
Fields list_custom_fields, get_card_field, get_all_card_fields
Members list_members, find_member
Search search_cards, search_by_field_value
Activity log_activity, get_activity_log, get_workspace_activity
Webhooks list_webhooks, create_webhook, delete_webhook
Time list_time_entries, log_time
Spec get_card_spec, set_card_spec, patch_card_spec, get_spec_history, list_card_spec_documents, set_card_spec_document, restore_spec_version — get/set/patch operate on the primary (requirements) doc; the multi-doc trio lists per-doc_type documents, writes a specific one (human-only), and restores an accepted version forward
Spec proposals generate_spec_proposal, list_spec_proposals, accept_spec_proposal, reject_spec_proposal, request_spec_proposal_changes, revise_spec_proposal, get_decision_inbox, preview_spec_decision, attest_spec_understood — all human-only; deciding from an MCP session is gated: get_decision_inboxpreview_spec_decision mints a confirm_token (bound to the proposal's current version, 10-min TTL) → pass it to accept/reject/request_changes
GitHub get_github_repos, list_card_github_links, link_github_pr, link_github_commit, link_github_issue
Cockpit commands cockpit_help (network-free list of every governed command + the MCP tool that runs it — ask "what can I do?"), invoke_cockpit_command (governed dispatcher for ANY catalog command by id — executes loop.status/pause/resume + skill.*, governance-validates the rest), research_card, run_card_tests, tasks_from_spec, get_card_memory, clear_card_memory — every command in get_effective_governance's catalog is reachable
Cockpit get_card_cockpit_context, get_effective_governance, get_mcp_capabilities, send_cockpit_chat, draft_spec_from_card — the Card AI Cockpit bridge: one-call card context, the governed command policy for a card, this bridge's own tool/connection surface, plus human-only cockpit writes (chat a board agent, draft a spec doc). MCP writes are attributed to the cockpit timeline via X-Spryng-Source: mcp
Agents get_agent_identity, list_agent_accounts
Agent runs start_agent_run, get_agent_run, list_agent_runs, approve_agent_plan, accept_proof, request_agent_replan, execute_task, report_agent_progress, cancel_agent_runapprove_agent_plan / accept_proof / request_agent_replan / execute_task are human-only (run as a human principal); execute_task runs a spec-derived task with an agent (Todo→Doing→Reviewing)
Loops & verification start_loop, start_verification_loop, get_loop_status, list_active_loops, pause_loop, resume_loop, cancel_loop, get_loop_state, update_loop_state, get_verification_status, run_verifier, verify_card, log_loop_step, attach_evidence, route_to_agent, list_skills, load_skill
Intelligence get_velocity_forecast, get_spec_complexity, check_spec_drift, verify_behavior_contract

For a governed verification loop, an orchestrator agent calls start_verification_loop (by VerificationProfile slug or inline proof_requirements/verifier_agent), the Maker (Grok/Codex) implements and calls run_verifier against the accepted spec (never self-verifies), and log_loop_step / attach_evidence write the audit trail to the card. When an agent runs inside a loop (SPRYNG_LOOP_ID set), the loop-scoped tools default to that loop, so loop_id is optional.


Environment variables

Variable Default Description
SCRUMDO_TOKEN Required. API token from Settings → API Tokens (or an agent's token, for AI Agent runs)
SCRUMDO_BASE_URL https://app.spryng.io API base URL
SCRUMDO_ORG Your organization slug
SCRUMDO_PROJECT Default project slug
SCRUMDO_AGENT_RUN_ID Optional. AI Agent run id this MCP is driving. When set, every write sends the X-Spryng-Agent-Run header so the run's audit trail attributes the write (change_source='agent_run'). Requires SCRUMDO_TOKEN to be that agent's own token, and the run to belong to it.
SCRUMDO_CLIENT_NAME mcp Optional. The host tool driving this bridge (codex / claude-code / cursor). Sent as X-Spryng-Client alongside X-Spryng-Source: mcp so the Card AI Cockpit timeline can show "via MCP ()". (SPRYNG_CLIENT_NAME accepted as an alias; SCRUMDO_CLIENT_VERSION optionally adds a version.)
SPRYNG_LOOP_ID Optional. The governed loop this MCP is running inside. When set, writes carry the X-Spryng-Loop header (attributed to the loop's timeline) and the loop-scoped tools (log_loop_step, attach_evidence, get_verification_status) default their loop_id to it — so in-loop agents call them without an id. (SCRUMDO_LOOP_ID is accepted as an alias.)

Token scope

Your API token is restricted to your organization's board data only — cards, tasks, comments, members, iterations. It cannot access billing, account settings, or any other organization's data. Revoke it at any time from Settings → API Tokens.


What is MCP?

Model Context Protocol is an open standard for connecting AI tools to external services. Claude Code, Cursor, Windsurf, and other AI editors support it natively. Install the server once; any MCP-compatible tool can use it.


License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scrumdo_mcp-0.4.4.tar.gz (71.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scrumdo_mcp-0.4.4-py3-none-any.whl (73.4 kB view details)

Uploaded Python 3

File details

Details for the file scrumdo_mcp-0.4.4.tar.gz.

File metadata

  • Download URL: scrumdo_mcp-0.4.4.tar.gz
  • Upload date:
  • Size: 71.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scrumdo_mcp-0.4.4.tar.gz
Algorithm Hash digest
SHA256 a759a640e4815ae7958eda31b813ac3a3f39e25347319fcf5e2132aece8169a0
MD5 46a44c7567a75edc20378568670f7060
BLAKE2b-256 6a6b4350f400a86b5a0ba300421a158fe93d14f55e192b4aacc4bb9178c4afdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrumdo_mcp-0.4.4.tar.gz:

Publisher: publish.yml on ScrumDoLLC/scrumdo-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scrumdo_mcp-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: scrumdo_mcp-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 73.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scrumdo_mcp-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 27cdc8dcc5dc2cebdd45504304e0ce17e98c5491ac994957a5f9f566db3af377
MD5 fda7e1e490e0cec497ce32834be69d9c
BLAKE2b-256 c7cd94f4ef20b32f9f3b76c5829d391dbf169d51a1a1c1fabf2c74c01a3f7ce5

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrumdo_mcp-0.4.4-py3-none-any.whl:

Publisher: publish.yml on ScrumDoLLC/scrumdo-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.6.0

1 file

0.5.3

1 file

0.5.2

2 files

0.4.7

2 files

0.4.6

2 files

0.4.5

2 files

This release

0.4.4 This release

2 files

0.4.3

2 files

0.4.1

2 files

0.4.0

2 files

0.3.6

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page