为什么值得这样做
线上异常的排查成本,大部分花在"把信息搬到同一张桌子上":堆栈在 Sentry,代码在 IDE,变更在 Git。MCP 的作用不是让模型变聪明,而是让这几处信息在同一次对话里都能被引用,人只负责判断结论对不对。
线上告警的传统痛点
当值班工程师在深夜收到 Sentry 告警短信时,通常需要:
- 登录 Sentry 控制台查看 Stacktrace;
- 打开本地 IDE 搜索对应的报错文件名与行号;
- 查看
git blame判断是哪个需求引发的变更; - 编写修复代码并提测。
这一过程机械且耗时。通过引入 Sentry MCP,整个排查链条可以实现高度自动化。
配置之前:先让 Sentry 侧的数据够推理用
- 确认组织与项目标识:检索 Issue 通常需要
organization与project两个参数,取值就是控制台 URL 里/organizations/<org>/issues/?project=<id>的那两段。 - 令牌按只读起步:先只授予读取 Issue 与事件的权限,写权限等流程跑顺后再按需开。
- 让上报带上 release 与提交信息:SDK 侧如果关联了 release 与对应 commit,Agent 才有机会把堆栈落到具体变更上;缺这一步,第 3 步的
git blame只能人工补。
工具名与参数名因封装版本而异,以官方文档为准。
1. 配置 Sentry MCP Server
{
"mcpServers": {
"sentry": {
"command": "uvx",
"args": ["mcp-server-sentry", "--auth-token", "sntrys_xxxxxxx"]
}
}
}
配完不要直接进入对话,先用 Inspector 起一次交互式会话,确认工具清单与参数 Schema 正常:
npx @modelcontextprotocol/inspector uvx mcp-server-sentry --auth-token sntrys_xxxxxxx
能列出工具即说明凭证有效;列表为空或反复重连,通常是令牌无效,或启动环境里找不到 uvx。
2. 自动化排查工作流
向 Agent 发起提示:
“分析 Sentry 中项目
frontend-web过去 1 小时内发生频率最高的未解决 Issue,调取其最近 5 次事件的上下文数据与用户操作轨迹,结合本地代码库找出 Bug 根因。”
Agent 自动调用 Sentry API 提取堆栈信息,关联本地源码定位为空指针异常,并直接给出防御性代码改动方案,工程师只需一键核对确认。
3. 把代码库这一侧接进同一轮上下文
只有堆栈时,模型很容易给出"加个判空"这类通用答案。把源码与提交历史也暴露给它,结论才会落到这次变更上:
| 需要的能力 | 来源 | 注意 |
|---|---|---|
| 读取报错文件附近实现 | 文件系统类 MCP Server | 只开放项目目录,不要整盘可读 |
| 定位引入变更的提交 | 代码托管类 MCP Server | 浅克隆会让历史断链 |
| 复核修复是否成立 | 本地测试命令 | 要求 Agent 给出可执行命令与输出 |
4. 从根因到修复 PR
把上面的链路固化成一次可重复的指令:取 Issue 详情与最近事件 → 定位源码位置 → 给出最小改动 → 跑指定测试 → 按团队模板开 PR。两点约束值得写死在流程里:Agent 只起草,不合并;一次只处理一个 Issue。
怎么验证这条链路真的通了
- 拿一个已知根因的历史 Issue 回放,看 Agent 的结论是否指向同一个文件与同一处逻辑——这是最省事的准确率检查。
- 检查它是否真的调用了工具:Inspector 里应看到多次 JSON-RPC 往返,而不是模型凭训练记忆作答。
- 故意填错令牌再跑一次,应当在工具层报错;若仍给出"看起来很合理"的解释,说明结果并非来自真实数据。
常见故障速查
| 现象 | 原因 | 处理 |
|---|---|---|
| 工具列表为空 | Server 启动失败或凭证无效 | 手工执行启动命令看报错 |
| 检索不到 Issue | org/project 参数与实际不符 | 从控制台 URL 复制标识 |
| 定位到的行号对不上 | release 未关联 commit,或本地分支落后 | 先同步分支,再补 release 上报 |
| 结论泛泛而谈 | 只喂了堆栈,没接源码工具 | 按第 3 节补齐代码库侧 |
| 生成的改动跑不过测试 | 未要求自验证 | 把测试命令纳入流程再让 Agent 复跑 |
小结
判断这套流程是否值得推广,看两个口径:从收到告警到形成结论的耗时是否下降,以及 Agent 定位的文件是否就是实际修改的那一个。前者测效率,后者测可靠性;只有前者改善而后者不达标,说明它在替你猜,不是在替你查。