mcpField
D
Data-grounded sprint retro

Data-grounded sprint retro

本地服务
github.com生产力019 周前更新

关于 Data-grounded sprint retro

Data-grounded sprint retro 是一个本地只读 MCP 服务,基于 Jira、GitHub 和 Slack 活动生成有证据支持的迭代回顾,适用于希望依据实际记录讨论流程的团队。它还会标记反复出现的问题,并将上次行动项与本次迭代数据对照。

主要功能

  1. 01生成证据支持的回顾
  2. 02汇总迭代指标
  3. 03复核过往行动项
  4. 04生成讨论提示
  5. 05比较迭代并标记重复主题
  6. 06只读访问数据源

适用场景

  1. 01根据 Jira、GitHub 和 Slack 活动准备迭代回顾
  2. 02对照本次数据检查上次回顾的行动项

MCP 相关

这是标准 MCP 服务,提供六种工具供 MCP 客户端调用,包括回顾摘要、指标、行动项复核、讨论提示、迭代比较和数据源列表。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"sathvic-kollu-retro": {
"command": "npx",
"args": [
"-y",
"retro-mcp"
],
"env": {
"JIRA_BASE_URL": "<JIRA_BASE_URL>",
"JIRA_EMAIL": "<JIRA_EMAIL>",
"JIRA_API_TOKEN": "<JIRA_API_TOKEN>",
"JIRA_BOARD_ID": "<JIRA_BOARD_ID>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"GITHUB_REPOS": "<GITHUB_REPOS>",
"SLACK_TOKEN": "<SLACK_TOKEN>",
"SLACK_CHANNELS": "<SLACK_CHANNELS>",
"RETRO_DEMO_MODE": "<RETRO_DEMO_MODE>"
}
}
}
}
启动命令npx -y retro-mcp
需要配置的环境变量
JIRA_BASE_URLYour Jira Cloud site, e.g. https://your-company.atlassian.net. Required for a live retro.
JIRA_EMAILAtlassian account email the API token belongs to.
JIRA_API_TOKEN密钥Jira API token from id.atlassian.com. Read-only use.
JIRA_BOARD_IDOptional board id to pin when the account has several boards.
GITHUB_TOKEN密钥Optional GitHub read-only token for PR review latency and reverts.
GITHUB_REPOSOptional comma-separated owner/name repos to scope PR analysis.
SLACK_TOKEN密钥Optional Slack read token to scan sprint channels for blocker and incident language.
SLACK_CHANNELSOptional comma-separated Slack channel ids to scan for the sprint window.
RETRO_DEMO_MODESet to true to force the synthetic demo sprint even when credentials are present.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmretro-mcp0.1.0

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
boardIdinteger否看板 ID。账号只有一个看板时可省略,也可设置 JIRA_BOARD_ID。
sprintIdinteger否要回顾的冲刺 ID。可选:默认使用最近结束的冲刺。

详细介绍

retro-mcp

基于实际发生的事情,而非人们记忆中的情况,开展冲刺复盘。

npm version license node MCP

复盘依赖记忆,因此难免受到偏见影响。最响亮的声音和最近几天发生的事往往占据主导,相同的抱怨每个冲刺都会重现,而行动项却悄无声息地不了了之。与此同时,冲刺的实际记录——重新打开的工单、在审核中停留两天的 PR、有人表示受阻的 Slack 讨论串——就躺在你的工具里,却无人利用。

retro-mcp 会读取这些记录,并据此为你生成复盘。你向 AI 助手索要复盘,它就会给出**进展顺利之处、未达预期之处和行动项,每一条都有具体指标、工单、PR 或讨论串作为依据。**它只围绕流程进行分析,从不针对个人,还会标出在多个冲刺中反复出现的问题。

它是标准的 Model Context Protocol 服务,因此可在任何模型的 MCP 客户端(Claude、Cursor、Cline 等)中使用。它是本地运行且只读的:除调用你自己工具的 API 外,冲刺的任何信息都不会离开你的设备,而且无需 AI API 密钥。这也回答了显而易见的担忧:它是复盘辅助工具,不是监控工具。

30 秒快速体验(无需账户)

它内置了一个仿真的已结束冲刺;未设置凭据时,会自动使用该冲刺运行:

npx -y retro-mcp --demo

以下是该演示冲刺中最核心的工具:

# Sprint Retrospective: MBANK Sprint 23
_May 27 to Jun 10. Demo data, no credentials configured._
_Grounded in 8 issues, 5 merged PRs, and 4 flagged threads. System-level and blameless: this is about the process, not people._

## What went well
- **Work moved through faster than last sprint.** avg cycle time 4.6d, down from 5.6d.

## What did not go well
- **The sprint fell short of its commitment.** only 23 of 34 pts done (68%).  ⟳ recurring across recent sprints
- **Scope grew mid-sprint.** +5 pts across 2 issues pulled in after the sprint started.  ⟳ recurring across recent sprints
- **Work carried over into the next sprint.** 3 issues (16 pts) not finished.  ⟳ recurring across recent sprints
- **Some work was called done before it was.** MBANK-203 · reopened 1 time: Statement PDF export.
- **Code review was a bottleneck.** PRs waited 20.3h on average for a first review; PR #503 · sat 52h: statement PDF export.
- **Changes had to be reverted or hotfixed.** PR #504 · revert: OTP delivery change; 1 hotfix merged.
- **The team hit repeated blockers and interruptions.** 2 threads mentioned being blocked; 1 thread mentioned an incident.

## Action items
- [ ] (recurring) Adopt a scope-change rule: anything pulled in mid-sprint bumps something out, decided at standup, not silently.
- [ ] (recurring) Pull less or split large items so they finish inside the sprint.
- [ ] Tighten the definition of done: an explicit QA check before anything moves to Done.
- [ ] Add a pre-merge guard on risky changes: a second approval or a smoke test before merge.

## Discussion prompts
- MBANK-203 was reopened once. What made it hard to call done the first time?
- +5 pts came in after the sprint started. What drove the mid-sprint adds?
- PR #504 had to be reverted. What would have surfaced the problem before it merged?

每一条都有真实依据。没有人凭记忆编写这些内容,而且系统将反复出现的三个问题标记为模式,而不是新的抱怨。

功能

共有六种工具。所有工具默认使用最近结束的冲刺。

工具可获取内容
retro_brief完整复盘:进展顺利之处、未达预期之处、行动项和讨论提示;每一条都有证据支持,并标出反复出现的主题。
retro_metrics证据数据:完成情况、冲刺中途的范围变更、遗留工作、重新打开的工单、与上个冲刺相比的周期时间、速度、PR 审核延迟、回滚,以及标记出的讨论串。
action_item_review粘贴上次复盘的行动项;该工具会为每项附上本次冲刺的数据,让你了解实际进展。
discussion_prompts为复盘看板准备的开放式问题,每个问题都基于实际异常。提出问题,不下结论。
sprint_compare对比本次冲刺与上个冲刺,并列出近期冲刺中反复出现的问题主题。
list_sources查看已接入的数据源,或确认当前使用的是演示数据。
有何不同

其他所有复盘工具都只是数字便签板:人们仍然要凭记忆手动输入观察结果,而那些带“AI”的工具也只是将人们已经写好的便签归类。retro-mcp 会同时从 Jira、GitHub 和 Slack 的数据中提取观察结果。具体来说:

  • 每条发现都有依据。 不说空话。如果无法引用指标、工单、PR 或讨论串,它就不会说。
  • 从设计上杜绝指责。 发现针对的是系统和流程,绝不会点名或给个人排名。
  • 形成行动项闭环。 团队只会落实一小部分复盘行动,而回顾之前的行动项是唯一经过验证的有效杠杆。action_item_review 会将上次复盘的行动项与本次迭代的数据并列呈现。
  • 发现反复出现的模式,而不只是本次迭代的问题。 系统会标记近期多个迭代中反复出现的主题,让“每次迭代都有人抱怨同一件事”终于能有证据佐证。
  • 为人工复盘提供辅助。 它会输出供复盘板使用的提示词,而不是终结讨论的判决。
示例:action_item_review
# Last retro's action items, against this sprint's data
_Demo data. Evidence only. You decide what counts as done._

- **Speed up PR reviews so nothing sits more than a day**
    - avg PR review latency this sprint: 20.3h
    - slowest review: PR #503 at 52h
- **Stop pulling unplanned work into the sprint mid-flight**
    - scope added mid-sprint: +5 pts (2 issues)
    - completion: 68%
- **Finish what we commit to and cut the carryover**
    - carryover this sprint: 3 issues (16 pts)

它不会判定行动项已完成或未完成,而是呈现证据,让团队自行判断,从而保持诚实。

隐私

  • 在本地运行。 它在你的机器上、AI 客户端内运行。没有 retro-mcp 服务或账户。
  • 只读。 它所需的每个令牌都只用于读取,绝不会写入、发布或移动任何内容。
  • 无需 AI 密钥,不涉及第三方。 它不会自行调用大模型。你的迭代数据只会发送到工具的 API 和现有 AI 客户端所使用的模型。
  • 辅助复盘,而非监控。 它报告系统情况,帮助团队改进,而不是对个人进行排名。

连接你的数据

Jira 是复盘的核心,因此实时模式需要 Jira。GitHub 和 Slack 是可选的补充数据源,其范围限定为已结束迭代的日期。

变量来源说明
JIRA_BASE_URL JIRA_EMAIL JIRA_API_TOKENJira实时模式必需。云站点、账户邮箱和 API 令牌。
JIRA_BOARD_IDJira可选。如果账户有多个看板,可指定一个。
GITHUB_TOKEN GITHUB_REPOSGitHub可选。只读令牌和团队的代码库(owner/name,以逗号分隔),用于分析 PR 审核延迟和回滚。
SLACK_TOKEN SLACK_CHANNELSSlack可选。读取令牌和迭代频道 ID(以逗号分隔),用于扫描有关阻塞因素和事件的表述。

将其接入客户端前,请先验证:

JIRA_BASE_URL=https://you.atlassian.net [email protected] JIRA_API_TOKEN=xxx npx -y retro-mcp --check

连接你的 AI 客户端

Claude Desktop

将以下内容添加到 claude_desktop_config.json(Settings、Developer、Edit Config),然后重启:

{
  "mcpServers": {
    "retro": {
      "command": "npx",
      "args": ["-y", "retro-mcp"],
      "env": {
        "JIRA_BASE_URL": "https://your-company.atlassian.net",
        "JIRA_EMAIL": "[email protected]",
        "JIRA_API_TOKEN": "your-jira-token",
        "GITHUB_TOKEN": "ghp_your_token",
        "GITHUB_REPOS": "your-org/your-app",
        "SLACK_TOKEN": "xoxp-your-token",
        "SLACK_CHANNELS": "C0123ENG"
      }
    }
  }
}

先使用演示数据运行时,可省略 env 块。只添加你会使用的数据源。Cursor、Cline、Continue、Zed 和 Windsurf 读取相同的 mcpServers JSON。

工作原理

  • Jira 是核心,GitHub 和 Slack 提供补充信息。 一个提供程序会将请求分发到已配置的数据源,并能容忍任一数据源发生故障,因此错误配置的 Slack 令牌不会导致复盘失败。
  • 指标来自变更日志。 完成情况、范围变更、延期、重新打开和周期时间,都是通过读取每个问题的历史记录重建的,因此反映的是实际发生的情况,而不只是最终状态。
  • 纯函数引擎。 指标、主题、发现和摘要都是基于规范化数据的纯函数。它们在演示数据和实时数据上运行一致,测试也会直接运行这些函数。
  • 服务中不包含模型。 它会整理出一份基于事实且附有证据链接的复盘;你的 AI 客户端负责措辞。这就是它无需 AI 密钥、也绝不编造发现的原因。
src/
  index.ts            MCP server, stdio transport, --demo/--check/--help
  config.ts           env resolution, demo-mode detection
  gather.ts           one place that pulls the sprint, PRs, and signals together
  provider.ts         aggregator over Jira + GitHub + Slack
  types.ts            normalized domain types and source interfaces
  jira/normalize.ts   raw Jira to normalized, plus the ADF flattener
  sources/            jira, github, slack clients, plus the demo provider
  analytics/          metrics, themes, findings, actionReview, prompts, brief
  tools/              one MCP tool per file, thin wrappers over analytics

已验证的内容

  • 全部 6 个工具都能通过真实的 MCP stdio 端到端运行(npm test)。
  • Jira 解析层已使用有文档说明的 Cloud 负载进行单元测试(test/normalize.test.ts)。
  • 复盘引擎已通过单元测试:基于变更日志的指标、跨冲刺的重复主题检测,以及以证据为依据的发现(test/retro.test.ts)。
  • 整个引擎已使用演示冲刺进行测试,并验证了各工具之间的数据一致性(npm run smoke)。

演示验证了引擎,但不能证明每个实时客户端都适用于所有账号类型。因此,解析层单独进行单元测试,并且每个数据源都保持精简且具备容错能力。运行 --check,确认你自己的连接。

路线图

  • 支持 Linear cycles,作为另一种冲刺主线
  • 持久化行动项台账,让闭环自动完成,无需粘贴
  • 增加状态停留时间和累积流量详情,用于分析周期时间瓶颈
  • 支持 GitLab 和 Bitbucket
  • 提供一次调用即可生成的“复盘包”,整合简报、指标和主持人提示词

由 Sathvic Kollu 构建

我负责 SaaS 和金融科技团队的交付工作,并使用 Claude Code 构建此类工具。这是我为项目管理打造的 MCP 服务系列中的第三个,此前还发布了 jira-pm-mcp 和 standup-mcp。如果它能让你的复盘更有成效,我很想了解你是如何使用它的。

欢迎提交问题和拉取请求。

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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