scrumdo-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCRUMDO_ORG | No | Your organization slug. | |
| SCRUMDO_TOKEN | Yes | Required. API token from Settings → API Tokens. | |
| SCRUMDO_PROJECT | No | Default project slug. | |
| SCRUMDO_BASE_URL | No | API base URL. Default: https://app.spryng.io |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_boardsA | List all boards (projects) in the organisation. Returns each board's slug, name, description, and member count. Use get_board() for full detail on a specific board. |
| get_boardA | Get a board (project) with its cells (columns), custom field definitions, and key statistics. Args: project_slug: Board slug to fetch. Defaults to the configured project. |
| get_board_cellsA | List the columns (cells) of a board. Each cell has an id, name, and position. Use the id when moving cards. Args: project_slug: Board slug. Defaults to the configured project. |
| list_iterationsB | List all iterations (sprints / milestones) in the project. Args: project_slug: Board slug. Defaults to the configured project. |
| list_labelsA | List all labels defined in the project. Args: project_slug: Board slug. Defaults to the configured project. |
| list_epicsB | List all epics in the project. Args: project_slug: Board slug. Defaults to the configured project. |
| list_blockersA | List all active (unresolved) blockers on a card. Each blocker includes id, reason, blocked_date, blocker (user), is_show_stopper, and external flags. Args: card_ref: Card reference, e.g. 'ON-914'. |
| block_cardA | Mark a card as blocked with a reason. Creates a blocker record on the card. Multiple blockers can exist simultaneously; the card remains blocked until all are resolved. Args: card_ref: Card reference, e.g. 'ON-914'. reason: Human-readable explanation of what is blocking the card. is_show_stopper: Flag this as a show-stopper blocker (default False). external: Flag as an external dependency (default False). Returns the created blocker object including its id (needed to unblock). |
| unblock_cardA | Resolve (unblock) a specific blocker on a card. If this was the last active blocker, the card's blocked flag is cleared. Use list_blockers() to find the blocker_id. Args: card_ref: Card reference, e.g. 'ON-914'. blocker_id: Numeric blocker id from list_blockers(). resolution: Optional description of how the block was resolved. Returns the resolved blocker object. |
| list_cardsA | List cards on the board with optional filters. Args: cell_id: Filter by board column (cell) id. iteration_id: Filter by iteration/sprint id. assignee: Filter by assignee username or email. label: Filter by label name. status: Filter by status string. page: Page number (default 1). limit: Results per page (default 25, max 100). Returns a dict with count, next/previous page URLs, and items list. Each item includes id, local_id, summary, points, cell, assignees, labels, extra_fields (custom fields), and created/updated timestamps. |
| get_cardA | Get a card's full detail including all custom fields, task list, comment count, labels, assignees, and linked cards. Args: card_ref: The card reference, e.g. 'ON-914' or 'Q1-42'. |
| find_cardA | Find a card by its reference ID (e.g. 'ON-914'). Alias for get_card — useful when you only know the ID string. Args: card_ref: Card reference like 'ON-914'. |
| create_cardB | Create a new card on the board. Args: summary: Card title / summary (required). description: Rich text description (markdown supported). points: Story points / estimate. due_date: Due date in YYYY-MM-DD format. cell_id: Board column to place the card in. iteration_id: Iteration/sprint to assign the card to. assignee_ids: List of user IDs to assign. Use list_members() to find ids. label_ids: List of label IDs to attach. extra_fields: Custom field values as {field_id: value} dict. Returns the full created card object including its assigned reference (e.g. 'ON-915'). |
| update_cardA | Update one or more fields on an existing card. Only the fields you provide will be changed — omitted fields are untouched. Args: card_ref: Card reference, e.g. 'ON-914'. summary: New title. description: New description (markdown). points: New story points. due_date: Due date in YYYY-MM-DD format. Pass empty string to clear. iteration_id: Move card to this iteration/sprint id. Use list_iterations() to find ids. assignee_ids: Replace assignee list. Use list_members() to find ids. label_ids: Replace label list. extra_fields: Merge into existing custom fields. Existing keys not mentioned here will be preserved. Returns the full updated card object. |
| move_cardA | Move a card to a different column (cell) on the board. Args: card_ref: Card reference, e.g. 'ON-914'. cell_id: Target cell id. Use get_board_cells() to find cell ids. Returns the updated card. |
| move_card_to_iterationA | Move a card into an iteration (sprint). Args: card_ref: Card reference, e.g. 'ON-914'. iteration_id: Target iteration id. Use list_iterations() to find ids. Returns the updated card. |
| set_card_fieldA | Set a single custom field on a card without touching other fields. Args: card_ref: Card reference, e.g. 'ON-914'. field_id: Numeric custom field id. Use list_custom_fields() to look up ids. value: New field value (always a string). Returns the updated card. |
| archive_cardB | Archive a card by moving it to the project's Archive iteration. The card is hidden from the board but recoverable via the archive view. Args: card_ref: Card reference, e.g. 'ON-914'. |
| assign_cardA | Set the assignees on a card, replacing any current assignees. Args: card_ref: Card reference, e.g. 'ON-914'. assignee_ids: List of user IDs. Pass an empty list to unassign all. |
| add_card_labelA | Add a single label to a card, preserving existing labels. Args: card_ref: Card reference, e.g. 'ON-914'. label_id: Label id to add. Use list_labels() to find ids. |
| remove_card_labelA | Remove a single label from a card. Args: card_ref: Card reference, e.g. 'ON-914'. label_id: Label id to remove. |
| list_tasksA | List all tasks (checklist items) on a card. Args: card_ref: Card reference, e.g. 'ON-914'. Returns a list of tasks, each with id, description, complete flag, assignee, and position. |
| create_taskA | Create a new task on a card. Args: card_ref: Card reference, e.g. 'ON-914'. description: Task description (plain text or markdown). assignee_id: Optional user ID to assign the task to. Returns the created task object. |
| complete_taskB | Mark a task as complete. Args: card_ref: Card reference, e.g. 'ON-914'. task_id: Task id (from list_tasks). |
| reopen_taskA | Reopen (un-complete) a task. Args: card_ref: Card reference, e.g. 'ON-914'. task_id: Task id (from list_tasks). |
| update_taskB | Update a task's description, completion state, or assignee. Args: card_ref: Card reference, e.g. 'ON-914'. task_id: Task id (from list_tasks). description: New description (leave None to keep current). complete: True to complete, False to reopen. assignee_id: New assignee user id. |
| delete_taskA | Delete a task from a card. Args: card_ref: Card reference, e.g. 'ON-914'. task_id: Task id (from list_tasks). |
| list_commentsA | List all comments on a card, newest first. Args: card_ref: Card reference, e.g. 'ON-914'. The card's numeric id is resolved automatically. Returns a list of comments with id, author, body (markdown), and created timestamp. |
| add_commentA | Post a comment on a card. Markdown is supported. Args: card_ref: Card reference, e.g. 'ON-914'. body: Comment text (markdown). Code blocks, lists, and headers all render in the ScrumDo UI. Returns the created comment object with id and timestamp. |
| delete_commentA | Delete a comment from a card. Args: card_ref: Card reference, e.g. 'ON-914'. comment_id: Numeric comment id from list_comments(). |
| list_custom_fieldsA | List all custom field definitions for the board. Each field has an id, name, field_type, and optional choices. Use the id when calling set_card_field() or update_card(extra_fields=…). Args: project_slug: Board slug. Defaults to the configured project. |
| get_card_fieldA | Get the current value of a single custom field on a card. Args: card_ref: Card reference, e.g. 'ON-914'. field_id: Numeric custom field id from list_custom_fields(). Returns {'field_id': …, 'name': …, 'value': …} or {'field_id': …, 'value': null} if the field is not set. |
| get_all_card_fieldsA | Get all custom field values currently set on a card. Returns the full list of custom fields with their names and current values. Args: card_ref: Card reference, e.g. 'ON-914'. |
| list_membersA | List members of the organisation or a specific project. Each member has an id, username, email, display_name, and role. Args: project_slug: If provided, returns project-level members only. If omitted, returns all org members. |
| find_memberA | Find a member by name, username, or email. Args: query: Name, username, or email fragment to search. Returns matching members from the org member list. |
| search_cardsA | Full-text search across all cards in the organisation. Searches card summaries, descriptions, and comments. Args: query: Search string. Supports partial matches. Returns a ranked list of matching cards with summary, reference, board name, and a short excerpt. |
| search_by_field_valueA | Find all cards where a custom field contains a given value. Useful for finding cards tagged with a specific branch, PR URL, feature flag, or any other custom field content. Args: field_id: Numeric custom field id from list_custom_fields(). value: Value to match (substring match, case-insensitive). limit: Maximum cards to scan (default 50). Returns matching card objects. |
| log_activityA | Write a structured activity log entry to a card. Entries are stored as machine-parseable comments and rendered in the ScrumDo UI as human-readable updates. They are filterable via get_activity_log(). Args: card_ref: Card reference, e.g. 'ON-914'. action: Short action label, e.g. 'started', 'deployed', 'reviewed', 'snapshot', 'seeded', 'PR opened'. detail: Longer description or context (markdown). agent: Agent/bot name writing the log (e.g. 'claude-code', 'codex', 'github-actions'). user: Human user involved (username or email). environment: Environment name (stage, integration, branch). milestone: Milestone or release tag, if applicable. task_ref: Related task or sub-item reference. extra: Any additional structured data to attach. Returns the created comment object. |
| get_activity_logA | Get the structured activity log for a card, with optional filters. Returns only entries written via log_activity() — plain comments are excluded. Results are newest-first. Args: card_ref: Card reference, e.g. 'ON-914'. agent: Filter by agent name (substring, case-insensitive). user: Filter by user (substring, case-insensitive). action: Filter by action label (substring, case-insensitive). environment: Filter by environment name (exact). milestone: Filter by milestone tag (exact). limit: Maximum entries to return (default 50). |
| get_workspace_activityA | Get the activity log across ALL cards in the workspace. Aggregates log_activity() entries from every card, sorted newest-first. Filterable by agent, user, action type, environment, and milestone. This is the workspace-level view requested for board observability — answers questions like: • "What did claude-code do today?" • "What was deployed to stage this week?" • "Show me all activity on the book-kit milestone" Args: action: Filter by action label (substring). agent: Filter by agent name (substring). user: Filter by user (substring). environment: Filter by environment (exact). milestone: Filter by milestone tag (exact). limit: Max entries across all cards (default 100). NOTE: This scans recent cards; for large boards use per-card get_activity_log() for targeted queries. |
| list_webhooksA | List all webhooks configured on the project. Returns each webhook's id, url, events, and active state. |
| create_webhookA | Create a new webhook on the project. Args: url: HTTPS endpoint that will receive webhook POST requests. events: List of event names to subscribe to, e.g. ['story.created', 'story.updated', 'story.moved', 'task.completed', 'comment.created']. secret: Optional HMAC secret for payload signature verification. Returns the created webhook object with its id. |
| delete_webhookA | Delete a webhook by id. Args: webhook_id: Webhook id from list_webhooks(). |
| list_time_entriesA | List time entries, optionally filtered to a specific card. Args: card_ref: Card reference, e.g. 'ON-914'. If omitted, returns all project time entries. |
| log_timeA | Log time spent on a card. Args: card_ref: Card reference, e.g. 'ON-914'. minutes: Time spent in minutes. description: What was done during this time. date: ISO date string (YYYY-MM-DD). Defaults to today. user_id: User to log time for. Defaults to the token owner. Returns the created time entry. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ScrumDoLLC/scrumdo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server