Backlog MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| backlog_list | List backlog entities from the active project substrate registry. Returns most recently observed items first, limited to 20 by default. |
| backlog_getA | Get full details by ID. Accepts task IDs (TASK-0001, EPIC-0002), document paths (README.md, docs/adr/0001-example.md), or MCP resource URIs (mcp://backlog/resources/design.md). Works for any item regardless of status. Pass context:true when starting work on an entity to also see its relational neighborhood as stubs. |
| backlog_deleteC | Delete an item permanently. |
| backlog_searchA | Search across all indexed backlog substrates and generic resources. Returns relevance-ranked results with match context. Use this for discovery; use backlog_list for filtering by status/type. |
| write_resourceA | Use when you want backlog-mcp to validate and canonically persist an existing entity edit before reporting success. For ordinary repository prose edits, use your native Edit tool; reconciliation updates indexes and diagnostics afterward. Create and transition entities through the substrate-declared intent tools.
|
| backlog_wakeupA | Dense session-start briefing: active tasks, current epics, project constraints (requirements as stubs, violated/at-risk first — treat these as standing product intent), recent completions (with evidence snippets), recent activity, and the home-wide unfiled work count. No focal entity required — use this at the start of every session to understand what you were working on. Optional |
| backlog_recallA | Recall memories — knowledge and episodes captured across sessions. Returns STUBS (title + one-line digest + provenance) by default; expand interesting ones with backlog_get(MEMO-id), or pass full:true for bodies. Weigh a stub's trust BEFORE hydrating: age_days (on the knowledge's own timeline), uses/idle_days (recall demand), supersedes (this is a correction), derived (consolidator inference), kind (current/historical/plan/preference/timeless). Old + never-used = treat as hypothesis, not truth. Distinct from backlog_search (live entities). Use to answer "how do we deploy?", "have I hit this before?", "what did I finish about X?". Memories point back to source entities via entity_id. |
| backlog_rememberA | Write a durable memory — a stable fact, a procedure, or a preference you should know next session. Use when you learn something worth keeping: "this repo deploys via wrangler", "Goga prefers terse evidence bullets". To CORRECT existing knowledge, pass supersedes (the old MEMO- id is expired, lineage kept) or state_key (previous holders of the same evolving fact are closed). The optional collision_candidates receipt is tri-state: [] means the advisory scan completed clean; a non-empty array means nearby facts deserve adjudication; absent means the advisory scan did not run or failed, not that the write failed. Do not use for task events — completions are captured automatically. |
| backlog_forgetA | Retract memories — soft-expire them so recall stops returning them (the record stays auditable in the viewer). Use when knowledge is wrong or obsolete and there is no replacement (if there IS a replacement, use backlog_remember with supersedes instead). expired:true garbage-collects already-expired memories. |
| backlog_consolidation_candidatesA | List clusters of episodic memories that are ripe for consolidation into durable knowledge. Consolidator workflow: (1) call this and take ripe bundles; (2) per bundle, read members (backlog_get on MEMO- ids for depth), then write ONE narrative memory via backlog_remember({ layer: "semantic"|"procedural", derived: true, entity_refs: [member MEMO- ids + key source entities], context }) — a self-contained story, not fragments; (3) retire the members via backlog_forget({ ids }) so they stop appearing here while staying auditable; (4) track your progress with a backlog_remember state_key like "consolidation.watermark.". |
| backlog_contradictionsA | List structural contradictions in memory: sets of ≥2 LIVE memories that share one state_key (e.g. "db.primary"), which should never happen — a new memory with a state_key auto-expires the previous holder. Each set means two beliefs about the same fact are both active. Resolution is yours, never automatic: pick the correct member, then either backlog_remember({ content, state_key, supersedes: }) to record the right value and retire the rest, or backlog_forget({ ids: [] }) to expire the wrong ones. Read members with backlog_get for full context before deciding. Set candidates: true to list semantic collision candidates instead: nearby live facts that deserve review, never contradiction verdicts. |
| backlog_accept_adrA | Use when ratifying an existing proposed ADR. |
| backlog_attach_artifactB | Use when attaching an artifact to a project item. parent_id is required. |
| backlog_block_taskC | Use when blocking a task with a reason. |
| backlog_capture_promptC | Use when preserving a verbatim human directive as a chronological project prompt. |
| backlog_capture_referenceA | Use when recording an external technology, prior-art system, or benchmark this project builds on — with authoritative citations and the project's adopt/park/reject relationship to it. |
| backlog_capture_requirementC | Use when recording a human or system requirement in the current project. |
| backlog_complete_taskC | Use when completing a task, optionally with evidence. |
| backlog_create_workB | Use when creating a project work item. Pass parent_id when known; parentless work surfaces as unfiled at wakeup. |
| backlog_organize_folderA | Use when creating a folder to organize project items. Pass parent_id when known; parentless work surfaces as unfiled at wakeup. |
| backlog_pause_cronB | Use when pausing a scheduled intake. |
| backlog_plan_epic | Use when planning an epic that groups related work. Pass parent_id when known; parentless work surfaces as unfiled at wakeup. |
| backlog_propose_adr | Use when recording a proposed architectural decision in the current project. |
| backlog_resume_cronC | Use when resuming a scheduled intake. |
| backlog_schedule_cronB | Use when scheduling recurring project intake. Pass parent_id when known; parentless work surfaces as unfiled at wakeup. |
| backlog_start_task | Use when starting active work on a task. |
| backlog_supersede_adrA | Use when a newer ADR replaces an accepted or living ADR while preserving lineage. |
| backlog_target_milestone | Use when creating a milestone for a project target. Pass parent_id when known; parentless work surfaces as unfiled at wakeup. |
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/gkoreli/backlog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server