mcpField
B
Backlog Mcp

Backlog Mcp

本地服务
github.com/corbym生产力38 周前更新

关于 Backlog Mcp

Backlog Mcp 是本地 MCP 服务,用于管理存放在代码仓库中的 Markdown 故事型项目待办。它向 Agent 提供结构化工具来读取和更新故事,版本管理与协作则由 Git 负责。

主要功能

  1. 01列出并读取故事
  2. 02创建史诗和故事
  3. 03更新状态及验收标准
  4. 04添加带时间戳的故事备注
  5. 05批量更新故事和史诗
  6. 06验证完成条件

适用场景

  1. 01管理仓库内的项目待办
  2. 02通过 Agent 跟踪故事进度
  3. 03记录与 PR 相关的故事更新
  4. 04通过 Git 协同编辑待办

MCP 相关

本地服务向 MCP 客户端提供读写待办 Markdown 文件的工具。每个 Agent 独立运行进程,协作和文件版本管理由 Git 处理。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

backlog-mcp MCP server

backlog-mcp

一个 MCP 服务,可为 AI Agent 提供对基于故事的项目待办事项列表的结构化读写权限。Agent 可以列出故事、读取内容、更新状态并添加备注 — 所有数据均存储在项目仓库中的纯 Markdown 文件内。

协作方式

这里没有共享服务。待办事项列表文件位于仓库的 requirements/ 目录中,并与代码一同提交和版本管理。Agent 之间,或 Agent 与人类之间的协作方式,与代码库其他部分完全相同:通过 git。如果两个 Agent 同时更新不同的故事,git 会合并更改。如果它们修改了同一行,则像处理其他合并冲突一样解决即可。

每个 Agent 都会为自己运行一个本地进程形式的 MCP 服务。它负责读写文件;其余工作由 git 处理。


安装

Homebrew(tap)
brew tap corbym/backlog-mcp
brew install backlog-mcp

也可以直接安装,无需显式执行 tap 步骤:

brew install corbym/backlog-mcp/backlog-mcp
二进制版本

从 Releases 页面下载适用于你平台的最新二进制文件,并将其放到 $PATH 中的某个位置。

Go 安装

如果已安装 Go:

go install github.com/corbym/backlog-mcp@latest

从源代码构建

go mod tidy
go build -o backlog-mcp .

设置

在项目根目录中初始化 requirements/ 文件夹:

./backlog-mcp init /path/to/your/project/requirements

这会创建:

requirements/
  requirements-index.md   # master index — source of truth for epics and story status
  backlog.md              # priority-ordered list of not-done stories
  epic-001-example/
    story-001.md          # example story file

将 requirements/ 文件夹提交到仓库。编辑其中的文件,添加自己的史诗和故事。


运行

./backlog-mcp

服务会从启动时的工作目录中查找 requirements/ 目录。Claude Code 会将工作目录设为项目根目录,因此无需配置。

创建计划文件
./backlog-mcp plan [name]

在 requirements/ 目录中创建新的计划模板。不指定名称时,文件名为 plan.md;指定名称时,文件名为 plan-<name>.md。如果文件已存在,则会添加数字后缀(plan-002.md 等)。打开文件,与 Agent 一起完善内容,然后再创建故事。

配置 MCP 客户端

建议使用提交到项目根目录的本地配置文件。这样服务的作用范围限定在当前项目,任何克隆仓库的 Agent 都能自动获得正确的设置。只有在希望 backlog-mcp 无需按项目配置即可在所有项目中使用时,才使用全局配置。

VS Code / GitHub Copilot — 在项目根目录添加 .vscode/mcp.json:

{
  "servers": {
    "backlog-mcp": {
      "command": "/path/to/backlog-mcp",
      "type": "stdio"
    }
  }
}

Claude Code — 在项目根目录添加 .claude/settings.json:

{
  "mcpServers": {
    "backlog-mcp": {
      "command": "/path/to/backlog-mcp"
    }
  }
}

如需使用全局备用配置(适用于所有项目),请将相同的配置放在 ~/.claude/settings.json(Claude Code)中,或将其添加到 VS Code 的用户 settings.json 文件中 mcp.servers 键下(GitHub Copilot)。始终优先使用项目本地配置文件。


工具

工具描述
list_stories列出故事,可按 epic_id、status 或 story_type 进行筛选
get_story获取故事的完整 Markdown 内容和元数据,包括 story_type
get_index_summary按状态汇总 Epic/故事数量
create_epic创建新的 Epic — 分配下一个 EPIC-NNN ID、写入 Epic 文件并在索引中注册
create_story在某个 Epic 下创建新故事 — 分配下一个 STORY-NNN ID,并在索引和待办列表中注册
set_epic_status更新 Epic 生命周期状态,并执行完成和回退保护(见下文)
set_story_status在索引和待办列表中更新故事状态(draft、in-progress、blocked、deferred)
set_acceptance_criteria替换故事的验收标准部分(幂等)
check_acceptance_criterion按索引或文本勾选单条验收标准 [x]
add_story_note向故事文件追加带时间戳的备注
complete_story将故事标记为已完成,并要求提供完成摘要和验收标准验证
groom_epic根据故事文件和索引数据核对并同步 Epic 的 ## Stories 部分
bulk_update_acceptance_criteria一次调用中更新一个故事的多项验收标准复选框状态
bulk_update_stories一次调用中更新多个故事(状态、备注和/或验收标准补丁)
bulk_update_epics一次调用中更新多个 Epic(状态和/或备注)
set_epic_status 保护规则

将状态设为 done 需要满足:

  1. summary — 完成备注,将作为带时间戳的条目追加到 Epic 文件中。
  2. 所有故事均已完成 — 如果仍有未完成的故事,调用将失败并列出这些故事。仅在用户明确确认要有意省略未完成故事后,才传入 override_incomplete=true。

向后回退(例如,done → in-progress、in-progress → draft)会触发回退提示:Agent 应先提出创建新故事,然后再继续。仅当用户明确坚持跳过此步骤时,才传入 confirm_regression=true。blocked 和 deferred 属于横向状态,可自由设置。

complete_story 保护规则

完成故事前,必须先设置验收标准(不能使用默认占位内容)。未勾选的标准会阻止故事完成,除非为每项未勾选内容提供一条说明并传入 incomplete_items。先通过 set_acceptance_criteria 勾选已完成的标准 [x] — 不要使用 incomplete_items 来确认实际上已经完成的工作。


环境变量

变量必需默认值描述
BACKLOG_ROOT否requirements覆盖需求目录的路径

文件格式

requirements-index.md — 每个标题对应一个 Epic 部分,每个表格行对应一个故事:

## EPIC-001: Combat System — `draft`

| Story | Title | Status | Type |
|-------|-------|--------|------|
| [STORY-001](./epic-001-combat-system/story-001.md) | Basic combat | draft | feature |

backlog.md — 按优先级排序的编号列表:

1. **STORY-001** — Basic combat
2. **STORY-002** — Enemy AI *(in-progress)*

故事文件位于 BACKLOG_ROOT 下的 epic-NNN-slug/story-NNN.md。

故事类型: feature、bug、chore、spike

状态值: draft、in-progress、done、blocked、deferred


自动化 PR 待办列表 Agent

其中包含一个 GitHub Actions 工作流,可在拉取请求创建或更新时自动更新故事状态并追加备注。它不需要 API 密钥 — 只需标准的 GITHUB_TOKEN。

工作原理

每当发生 pull_request 事件(opened、synchronize)时,该工作流会:

  1. 通过 go install github.com/corbym/backlog-mcp@latest 安装 backlog-mcp 二进制文件。
  2. 扫描 PR 标题和分支名称,查找 STORY-NNN ID。
  3. 对每个匹配的故事,将状态设为 in-progress(如果状态为 draft 且 PR 刚刚创建),并追加一条包含 PR 编号和标题的带时间戳备注。
  4. 将 requirements/ 下任何已更改的文件提交回 PR 分支。
在仓库中设置

将以下三个文件复制到你的仓库中:

.github/
  actions/
    install/
      action.yml          # composite action — installs the binary via go install
  scripts/
    backlog_agent.py      # deterministic MCP client (Python 3, stdlib only)
  workflows/
    backlog-agent.yml     # the workflow

这些文件位于 corbym/backlog-mcp 仓库中。除了确保已有 requirements/ 文件夹外,无需任何密钥或额外配置。

分支和 PR 命名

Agent 根据 STORY-NNN ID 匹配故事。请在分支名称或 PR 标题中包含该 ID:

story-042-short-description          # branch
STORY-042: Short description         # PR title
STORY-042 STORY-043: Short desc      # multiple stories
chore: bump goreleaser to v2         # no story — agent skips cleanly

完整约定请参阅 CONTRIBUTING.md。

在 GitHub Copilot Agent 模式下使用 backlog-mcp

VS Code 中的 GitHub Copilot Agent 模式会从项目根目录下的 .vscode/mcp.json 读取 MCP 服务。请注意,键名是 "servers",而不是 "mcpServers"(Claude Code 使用的约定):

{
  "servers": {
    "backlog-mcp": {
      "command": "/path/to/backlog-mcp",
      "type": "stdio"
    }
  }
}

MCP 工具仅在 Agent 模式下可用——在 Copilot Chat 的模式下拉菜单中切换到该模式。完成配置后,Copilot Agent 可在聊天会话中调用 list_stories、get_story、add_story_note 以及所有其他 backlog 工具——这些工具与 GitHub Actions 工作流使用的相同。


备注

  • 文件写入是原子操作(临时文件 + 重命名)——即使写入过程中崩溃,也不会损坏文件。
  • 文件系统是事实来源。MCP 服务不会持有数据所有权。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。