Skip to main content
Glama
SKILL.md7.75 kB
--- name: backlog description: Persistent backlog item and todo management via MCP server license: MIT --- # Backlog Skill Manage persistent backlog items and todos across sessions using the MCP backlog server. This skill enables agents to track work, manage dependencies, and collaborate on project tasks. ## Backlog Item Lifecycle Backlog items follow a defined workflow through these states: - **new** → Initial state when created, awaiting submission - **ready** → Item has been submitted and reviewed, ready for work - **review** → Work is in progress or complete, pending final review - **done** → Item successfully completed - **reopen** → Item returned for revisions with feedback - **wontfix** → Item marked as intentionally not addressed ## Available MCP Tools ### backlog-read Read-only access to backlog items. Fetch single items with full content or list filtered items. **Parameters:** - `topic` (string, optional): Topic name to fetch single backlog item with full details - `status` (string, enum: new|ready|review|done|reopen|wontfix): Filter by status - `priority` (string, enum: high|medium|low): Filter by priority - `showAge` (boolean): Include age information (default: true) ### backlog-write Create and manage backlog items with full lifecycle control. **Actions:** - `create`: Create new backlog item (requires `topic`, `description`, optional `priority`) - `list`: List backlog items (supports status/priority filters) - `amend`: Update existing item (requires `topic`, optional `description`, `status`, `priority`) - `submit`: Transition item from 'new' to 'ready' (requires `topic`) - `approve`: Transition item from 'review' to 'done' (requires `topic`) - `reopen`: Revert 'review' or 'done' to 'reopen' with notes (requires `topic`, `description`) - `wontfix`: Mark item as intentionally not addressed (requires `topic`, optional `description`) ### backlog-done Mark backlog items as complete with optional summary documentation. **Parameters:** - `topic` (string): Topic name to complete - `summary` (string, optional): Completion summary with accomplishments and lessons learned ### backlog-todo-read Read-only access to todos for a backlog item. **Parameters:** - `topic` (string, required): Topic name - `status` (enum: pending|in_progress|completed|cancelled): Filter by status - `batch` (string): Filter by batch identifier ### backlog-todo-write Create and update todos with dependency tracking for backlog items. **Actions:** - `create`: Create new todo (requires `content`, optional `status`, `batch`, `dependencies`) - `update`: Update existing todo (requires `todoId`, optional `content`, `status`, `batch`, `dependencies`) - `list`: List todos with optional filtering ### backlog-todo-done Mark todos as complete with automatic dependency validation. **Parameters:** - `todoId` (string, required for done action): Todo ID to complete - `topic` (string, required): Backlog item topic - `status` (enum: pending|in_progress|completed|cancelled): Filter by status for list action - `batch` (string): Filter by batch for list action ## Usage Examples ### Create a Backlog Item ```javascript const response = await mcp.call('backlog-write', { action: 'create', topic: 'Implement user authentication', description: 'Add OAuth2 integration for user login', priority: 'high' }); // Returns: Created backlog item: /path/to/item.md ``` ### Create Todos for an Item ```javascript // Create first todo const todo1 = await mcp.call('backlog-todo-write', { action: 'create', topic: 'Implement user authentication', content: 'Set up OAuth2 provider', batch: 'auth-setup' }); // Create dependent todo const todo2 = await mcp.call('backlog-todo-write', { action: 'create', topic: 'Implement user authentication', content: 'Add login UI component', batch: 'auth-setup', dependencies: [todo1.id] }); ``` ### Complete a Todo with Dependencies ```javascript // Mark todo as complete (will validate dependencies) await mcp.call('backlog-todo-done', { action: 'done', topic: 'Implement user authentication', todoId: 'todo-123' }); // Returns: Marked todo as done: todo-123 ``` ### Transition Item Status ```javascript // Submit item from 'new' to 'ready' await mcp.call('backlog-write', { action: 'submit', topic: 'Implement user authentication' }); // Approve item from 'review' to 'done' await mcp.call('backlog-write', { action: 'approve', topic: 'Implement user authentication' }); ``` ### Complete an Item with Summary ```javascript await mcp.call('backlog-done', { topic: 'Implement user authentication', summary: 'Successfully implemented OAuth2 integration with Google and GitHub providers. Added comprehensive test coverage and documented setup process.' }); ``` ## Best Practices for Sub-Agent Delegation ### 1. Break Down Work into Todos Always create todos within a backlog item for tracking sub-tasks: ```javascript // Good: Create todos for sub-agent work await mcp.call('backlog-todo-write', { action: 'create', topic: 'Feature: Search functionality', content: 'Implement search algorithm', batch: 'search-impl' }); ``` ### 2. Use Batch Identifiers for Grouping Organize todos by batch for sub-agents to filter and focus on related work: ```javascript // Organize work by agent task const batchId = `agent-${agentType}-${taskId}`; await mcp.call('backlog-todo-write', { action: 'create', topic: 'Feature: Search functionality', content: 'Write unit tests', batch: batchId }); ``` ### 3. Define Dependencies for Sequential Work Use todo dependencies when work must be completed in order: ```javascript // Backend must complete before frontend const backend = await createTodo(..., { batch: 'search-backend' }); const frontend = await createTodo(..., { batch: 'search-frontend', dependencies: [backend.id] }); ``` ### 4. Validate Completion Before Marking Done Always check dependencies before marking todos complete: ```javascript // The system automatically validates dependencies // This will fail if dependencies are not completed await mcp.call('backlog-todo-done', { action: 'done', topic: 'Feature: Search functionality', todoId: frontendTodoId // Will error if dependencies incomplete }); ``` ### 5. Reference Completed Items for Context Use backlog-read to fetch completed items for context on similar work: ```javascript const completedItems = await mcp.call('backlog-read', { status: 'done', priority: 'high' }); // Use these as references for current implementation ``` ### 6. Use Status Transitions for Review Progress items through workflow stages to track approval: ```javascript // Create → Submit → Review → Approve await mcp.call('backlog-write', { action: 'submit', topic: 'Feature: Search functionality' }); // After implementation complete await mcp.call('backlog-write', { action: 'amend', topic: 'Feature: Search functionality', status: 'review' }); // After approval await mcp.call('backlog-write', { action: 'approve', topic: 'Feature: Search functionality' }); ``` ## Storage Backlog items are persisted in XDG-compliant directories: - **Backlog items**: `~/.local/share/mcp-backlog/projects/{projectName}/Backlog/` - **Todos**: `~/.local/share/mcp-backlog/projects/{projectName}/Backlog/{itemName}/todos.json` - **Completed items**: `~/.local/share/mcp-backlog/projects/{projectName}/COMPLETED_Backlog/` Items persist across sessions and can be referenced by agents in future conversations. ## Status Codes - **200 OK**: Operation successful - **400 Bad Request**: Missing required parameters or invalid values - **404 Not Found**: Backlog item or todo not found - **409 Conflict**: Invalid status transition or dependency violation

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/rwese/mcp-backlog'

If you have feedback or need assistance with the MCP directory API, please join our Discord server