backlog-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BACKLOG_ROOT | No | Override the path to the requirements directory | requirements |
| BACKLOG_HTTP_ADDR | No | Listen address for HTTP mode | 0.0.0.0:8080 |
| BACKLOG_TRANSPORT | No | Set to 'http' for HTTP/SSE mode | stdio |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_story_noteA | Append a timestamped note to a story file. Use to record progress, decisions made, or blockers encountered. Notes are appended under a '## Notes' section with an ISO 8601 timestamp. Returns {story_id, appended_at, path}. |
| check_acceptance_criterionA | Mark a single acceptance criterion as checked (- [ ] → - [x]) in a story file. Identify the target by criterion_index (0-based) or criterion_text (case-insensitive exact match). Exactly one must be provided. Returns {story_id, criterion, checked, path}. Errors if the story is not found, the criterion is not found, or it is already checked. |
| complete_storyA | Mark a story done and append a mandatory completion summary note in one atomic call. Validates acceptance criteria before completing: if the AC section has not been set (contains only the placeholder), completion is blocked — call set_acceptance_criteria first. IMPORTANT: if a criterion is actually done, mark it [x] in the story file via set_acceptance_criteria BEFORE calling this tool — do not leave it unchecked. If criteria remain unchecked (genuinely not done), incomplete_items is required with one explanation per unchecked item explaining WHY it was not completed (e.g. deferred, out of scope). incomplete_items is for unfinished work only — never use it to confirm completed work. On success, removes the story from backlog.md and returns {story_id, completed_at, backlog_removed}. |
| create_epicA | Create a new epic. Assigns the next EPIC-NNN ID, creates the epic directory and epic.md file, and registers it in requirements-index.md with status draft. Returns {epic_id, path}. |
| create_storyA | Create a new story under an existing epic. Assigns the next STORY-NNN ID, writes the story file, and registers it in requirements-index.md and backlog.md with status draft. The story is appended to the end of the backlog. Returns {story_id, path}. |
| get_index_summaryA | Get a high-level summary of all epics and their story counts broken down by status. Useful for situational awareness at the start of a session, without reading every file. Returns an array of {epic_id, title, status, counts: {status: n}, stories: [{story_id, status}]}. |
| get_storyA | Get the full markdown content and metadata for a single story. Returns {story_id, title, status, epic_id, path, content} where content is the raw markdown of the story file. |
| groom_epicA | Reconcile the ## Stories section in an epic.md file with the story files on disk and the requirements index. Adds missing entries, removes entries for story files that no longer exist, and refreshes titles and done/undone markers. Returns {epic_id, added, removed, updated, unchanged}. |
| list_storiesA | List stories from the project index, optionally filtered by epic, status, or type. Returns an array of {story_id, title, status, epic_id, story_type} objects. With no filters, returns all stories across all epics. |
| set_acceptance_criteriaA | Replace the acceptance criteria section of a story file. Each string in the criteria array becomes a |
| set_epic_statusA | Update the lifecycle status of an epic. Use this tool to manage the epic's own status — not the status of individual stories within it (use set_story_status for that). Typical progression: draft → in-progress (when the first story starts) → done (when all stories are complete) or deferred (if the epic is postponed). Status meanings: 'draft' = epic created but no work started; 'in-progress' = actively being worked on; 'done' = all stories complete and the epic is closed; 'blocked' = progress prevented by an external dependency; 'deferred' = postponed indefinitely. Returns {epic_id, old_status, new_status}. |
| set_story_statusA | Update the status of a story to draft, in-progress, blocked, or deferred. To mark a story done, use complete_story instead — it enforces acceptance criteria, appends a summary note, and removes the story from the backlog. Returns {story_id, old_status, new_status, backlog_updated}. |
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
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/corbym/backlog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server