关于 Standup from your activity
Standup from your activity 是一个本地只读 MCP 服务,面向需要从 GitHub、Jira、Linear 和 Slack 活动整理每日站会草稿的个人。它按工作项合并跨工具记录,并从活动信号识别阻塞事项,不会代为发布。
主要功能
- 01生成每日站会草稿
- 02按工作项合并活动
- 03识别并排序阻塞事项
- 04汇总每周活动
- 05按时间整理活动记录
- 06只读访问数据源
适用场景
- 01根据近期工作活动准备每日站会更新
- 02查找阻塞事项或整理每周工作总结
MCP 相关
MCP 服务提供五种工具,供客户端生成站会草稿、扫描阻塞事项、汇总每周活动、整理活动记录和查看数据源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y standup-mcpGITHUB_TOKEN密钥GitHub read-only personal access token. Enables commits, PRs, and reviews. Leave all sources unset to use the built-in demo data.JIRA_BASE_URLYour Jira Cloud site, e.g. https://your-company.atlassian.net.JIRA_EMAILAtlassian account email the API token belongs to.JIRA_API_TOKEN密钥Jira API token from id.atlassian.com. Read-only use.LINEAR_API_KEY密钥Linear personal API key (read-only). Enables issue state changes and comments.SLACK_TOKEN密钥Slack token with read scopes. Enables scanning your own messages for blocker language.SLACK_CHANNELSOptional comma-separated channel ids to scan when message search is unavailable.STANDUP_NAMEOptional display name for the standup's owner.STANDUP_DEMO_MODESet to true to force the demo dataset even when credentials are present.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| days | integer | 否 | 从现在起向前回溯的天数,取代默认时间范围。 |
| since | string | 否 | 时间范围的 ISO 日期/时间起点,例如 2026-06-16。覆盖默认值。默认范围为上一个工作日(周一会追溯至周五)。 |
详细介绍
standup-mcp
根据你在 GitHub、Jira、Linear 和 Slack 上实际完成的工作,生成每日站会汇报。
每次站会前,你都得停下来凭记忆还原昨天的工作:提交了哪些 commit、开了哪个 PR、推进了哪张工单,还有那条说自己卡住了的 Slack 讨论串。工作早已记录在各个工具中。重新输入这些内容是大家都讨厌的麻烦事,所以汇报往往含糊不清(“做了那个东西”),真正的阻塞问题也没有说出来。
standup-mcp 会读取这些活动记录,并替你写好草稿。你只需问 AI 助手“今天站会我该说什么?”,它就会根据你在 GitHub、Jira、Linear 和 Slack 上的真实活动作答:按工作项分组,具体说明进展变化,并主动发现阻塞问题。
它是标准的 Model Context Protocol 服务,因此可在任何模型上搭配任意 MCP 客户端(Claude、Cursor、Cline 等)使用。它是本地运行且只读的:除了调用这些工具各自的 API,你的活动信息不会离开你的设备,而且不需要自己的 AI API 密钥。模型由宿主客户端提供。
30 秒快速体验(无需账号)
服务自带一套真实感十足的演示数据,未设置凭据时会自动使用这些数据运行,让你在连接任何服务之前就能看到输出:
npx -y standup-mcp --demo
这会根据涵盖全部四种工具的一天模拟活动,生成完整的站会汇报。以下是主要工具的输出:
# Standup: Jordan Lee
_since Tue Jun 16. Demo data, no credentials configured._
## Yesterday
- **PROJ-412 Biometric re-auth** · opened PR #128, 3 commits, latest "handle expired challenge edge case", moved to In Progress, posted an update
- **ENG-88 Rate-limit the export endpoint** · 2 commits, latest "tests for limiter window", moved to In Progress, posted an update
- **PROJ-407 Card dispute webhook** · merged PR #125, moved to In Review
- Reviewed PR #129: Tidy currency formatting helpers
## Today
- Continue **PROJ-412 Biometric re-auth**
- Continue **ENG-88 Rate-limit the export endpoint**
- Land PR #128: Add biometric re-auth (review pending)
- Review PR #130: Refactor request logging
## Blockers
- 🔴 **PROJ-412 Biometric re-auth** · flagged blocked: "Blocked on the vendor sandbox creds for PROJ-412. Waiting on infra to provision them before I can test the re-auth flow…"; awaiting review
请注意,GitHub commit、GitHub PR 和 Jira 状态变更都归并到了 PROJ-412 下;阻塞问题则由工具自动从 Slack 消息中提取。全程无需手动输入。
(不带参数运行 npx -y standup-mcp 会通过 stdio 启动 MCP 服务,供 MCP 客户端调用。在普通终端中查看输出,请使用 --demo。)
功能
共有五种工具。默认情况下,每种工具都会查询最近一个工作日;星期一会自动回溯整个周末,因此你很少需要传入参数。
| 工具 | 输出内容 |
|---|---|
standup_draft | 你的站会汇报:按工作项分组,具体说明进展变化,并分为“昨天/今天/阻塞问题”。回答“站会我该说什么?” |
blocker_scan | 列出所有阻塞你的事项,并按严重程度排序;综合识别明确提到“受阻/等待”的内容、等待评审的 PR、停滞中的进行中工单,以及求助请求。 |
weekly_summary | 将一周的活动汇总为“已交付”和“进行中”,并列出评审情况和统计数据。适用于 1:1 沟通、每周状态汇报和自我评估。 |
activity_digest | 按时间顺序汇总所有工具中的“实际活动”,最新的排在最前,并按日期分组。 |
list_sources | 显示已接入的数据源,或说明你当前使用的是演示数据。 |
你可以这样提问
通过 AI 客户端用自然语言提问:
- “今天站会我该说什么?”
- “给我一份周一的站会汇报,涵盖周末。”
- “我现在被什么事情卡住了?”
- “总结一下我这周交付的内容,用于 1:1 沟通。”
- “我昨天实际做了什么?”
遵循的原则
- 只报告观察到的活动。 它会报告实际存在的提交、PR、工单流转和消息。它绝不会为了填补安静的一天而编造进展;如果某天没有活动,就如实报告。
- 按工作项分组,而非按工具分组。 审阅者以工单为单位思考,因此 PROJ-412 的提交、PR、Jira 流转和 Slack 讨论串会合并为一条,而不是四条。
- 根据信号识别阻塞,而非依靠自我报告。 人们会忘记说明自己遇到了阻碍,因此它会推断出来。
- 提供草稿,而非自动发布。 你会获得可编辑的 Markdown,可以粘贴到团队现有的站会工具中(Slack、Geekbot、文档或工单)。它不会替你发布。
示例:blocker_scan
# Blockers
_since Tue Jun 16. Demo data._
**1 blocker**: 1 high, 0 medium, 0 low.
- 🔴 **PROJ-412 Biometric re-auth** (slack) · flagged blocked: "Blocked on the vendor sandbox creds for PROJ-412. Waiting on infra to provision them before I can test the re-auth flow…"; awaiting review
示例:weekly_summary
# Weekly summary: Jordan Lee
_the last 7 days. Demo data._
## Shipped
- **PROJ-407 Card dispute webhook**
## In progress
- **PROJ-412 Biometric re-auth**
- **ENG-88 Rate-limit the export endpoint**
## Reviews and support
- Reviewed 1 PR for teammates
_3 work items touched, 1 PR merged, 5 commits._
隐私
这是大多数工具避而不谈的部分。standup-mcp 的设计宗旨是,让你使用它时不会觉得自己在监视自己:
- 本地运行。 它在你的设备上、AI 客户端内部运行。没有 standup-mcp 服务或账户。
- 只读。 它请求的每个令牌都只用于读取你的活动。它绝不会写入、发布或移动任何内容。
- 无需 AI 密钥,也不涉及第三方。 它不会自行调用大模型。你的活动只会发送到你所连接工具的 API,以及你现有 AI 客户端使用的模型。它不会发送给我或其他任何人。
- 它属于你,而非你的经理。 它为你生成自己的更新,供你审阅和编辑,而不是生成一份供他人查看的活动动态。
连接你的工具
按需配置任意子集。配置了什么,它就使用什么;如果什么都没配置,它就保持演示模式。更改后请重启服务。
| 变量 | 来源 | 说明 |
|---|---|---|
GITHUB_TOKEN | GitHub | 只读 PAT。读取你的提交、PR 和审查记录。 |
JIRA_BASE_URL JIRA_EMAIL JIRA_API_TOKEN | Jira | 云站点、账户邮箱和 API 令牌。读取你的工单流转情况。 |
LINEAR_API_KEY | Linear | 个人 API 密钥。读取你的问题状态变更和评论。 |
SLACK_TOKEN | Slack | 用户令牌(xoxp)需具备 search:read 权限,用于扫描你自己的消息,查找表示受阻的内容。如果改用机器人令牌,还需设置 SLACK_CHANNELS(以逗号分隔的频道 ID),因为机器人无法搜索。 |
STANDUP_NAME | 可选 | 站会更新作者的显示名称。不设置时,将使用 GitHub 用户名。 |
将它连接到客户端之前,请先验证连接:
GITHUB_TOKEN=ghp_xxx LINEAR_API_KEY=lin_xxx npx -y standup-mcp --check
它会按来源显示已通过身份验证的用户,或明确的错误信息。
连接你的 AI 客户端
standup-mcp 支持 Model Context Protocol,因此任何兼容 MCP 的客户端都可以使用它,无论客户端运行的是什么模型:Claude Desktop、Claude Code、Cursor、Cline、Continue、Zed、Windsurf 等。该服务本身无需 AI API 密钥。
Claude Desktop
将以下内容添加到 claude_desktop_config.json(Settings、Developer、Edit Config),然后重启 Claude Desktop:
{
"mcpServers": {
"standup": {
"command": "npx",
"args": ["-y", "standup-mcp"],
"env": {
"GITHUB_TOKEN": "ghp_your_token",
"JIRA_BASE_URL": "https://your-company.atlassian.net",
"JIRA_EMAIL": "[email protected]",
"JIRA_API_TOKEN": "your-jira-token",
"LINEAR_API_KEY": "lin_api_your_key",
"SLACK_TOKEN": "xoxp-your-token"
}
}
}
}
首次运行时,可以完全省略 env 区块以使用演示模式。只需包含你会用到的数据源。
Claude Code
claude mcp add standup \
-e GITHUB_TOKEN=ghp_your_token \
-e LINEAR_API_KEY=lin_api_your_key \
-- npx -y standup-mcp
Cursor、Cline、Continue、Zed、Windsurf 等
这些客户端会在各自的 MCP 配置中读取与 Claude Desktop 相同的 mcpServers JSON。使用上面的配置块即可。服务完全相同;区别仅在于驱动客户端的模型。
工作原理
设计目标是在每个工具与站会逻辑之间建立清晰的边界。
- 统一的活动模型。 GitHub 提交、Jira 状态变更、Linear 状态变更和 Slack 消息都会归一化为统一的
ActivityEvent。下游逻辑无需知道事实来自哪个工具,因此可以跨工具按工作项分组。 - 一个提供方,多个来源。 每个来源都是一个独立的只读客户端,遵循统一接口。聚合器会并行调用已配置的来源,并能容忍任意一个来源故障,因此 Slack 令牌配置错误也不会让你的站会无法进行。
- 纯函数引擎。 分组、阻塞项检测和草稿生成都是基于归一化事件的纯函数。它们在演示数据和实时数据上运行方式一致,测试也会直接运行这些函数。
- 服务中不包含模型。 服务会整理出基于事实的草稿,由你的 AI 客户端润色措辞。因此它无需 AI 密钥,也能保证绝不凭空编造工作内容。
src/
index.ts MCP server, stdio transport, --demo/--check/--help
config.ts per-source env resolution, demo-mode detection
window.ts the weekend-aware "since last standup" window
provider.ts aggregator that fans out to configured sources
types.ts ActivityEvent and the source/provider interfaces
normalize.ts work-item key extraction, signal and noise detection
sources/ github, jira, linear, slack clients, plus the demo provider
analytics/ grouping, blockers, draft, weekly, digest (pure functions)
tools/ one MCP tool per file, thin wrappers over analytics
已验证内容
- 所有五个工具都通过真实的 MCP stdio 端到端运行(
npm test)。 - 解析启发式规则(工作项键、阻塞项措辞、噪声过滤器)均经过单元测试(
test/normalize.test.ts)。 - 引擎经过单元测试,涵盖周一包含周末的时间窗口、工作项分组、阻塞项严重程度以及整理好的草稿(
test/draft.test.ts)。 - 整个引擎都使用演示数据进行测试,并能跨工具核对结果(
npm run smoke)。
演示数据可以验证引擎,但无法证明每个实时客户端都适用于各种真实账户配置。因此,解析层会单独进行单元测试,并且每个来源都保持精简且具备容错能力。运行 --check 确认你自己的连接;如果某个响应格式在你的账户上无法正确解析,请提交 issue。
路线图
- 增加
team_standup视图,为主持会议的 PM 汇总多位成员的情况 - 增加日历来源(将会议视为活动,让会议繁多的一天也能如实呈现)
- 支持 GitLab 和 Bitbucket
- 增加周期时间和“自上次查看后有哪些变化”的摘要
- 除令牌外,增加 OAuth 流程
由 Sathvic Kollu 构建
我负责 SaaS 和金融科技团队的交付,也使用 Claude Code 构建这类工具。如果它能帮你省去每天准备站会的琐事,我很想了解你是如何使用它的。
- 网站:sathvickollu.com
- LinkedIn:linkedin.com/in/sathvic-kollu
欢迎提交 issue 和拉取请求。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。