codex集成sentry辅助代码错误修改
Sentry MCP + Codex 集成教程
适用场景:让 Codex 读取和分析 Sentry issue、event、trace、release,并在必要时通过 Sentry API 修改 issue 状态。
sentry mcp仓库地址
1. 先分清三种凭证/配置
| 名称 | 用途 | 放在哪里 | 是否能修改 issue 状态 |
|---|---|---|---|
| DSN | 应用上报错误到 Sentry | 前端/后端运行时配置 | 不能 |
| Sentry MCP | 让 Codex 查询 Sentry 数据 | Codex MCP 配置 | 取决于 MCP 工具能力 |
SENTRY_AUTH_TOKEN |
调用 Sentry REST API | 本机环境变量或 CI Secret | 可以,取决于 token 权限 |
不要把 DSN 当成 API token。DSN 用于错误上报,不能 Resolve issue。
2. 安装 Sentry MCP
在终端执行:
codex mcp add sentry -- npx -y mcp-remote@latest https://mcp.sentry.dev/mcp
这会在 Codex 的 MCP 配置中添加一个名为 sentry 的远程 MCP server。重启 Codex 后,通常会进入 Sentry OAuth 授权流程。
如果需要手动配置,可以编辑 ~/.codex/config.toml:
[mcp_servers.sentry]
command = "npx"
args = ["-y", "mcp-remote@latest", "https://mcp.sentry.dev/mcp"]
然后重启 Codex。
3. 在 Codex 里怎么用 Sentry MCP
配置完成并授权后,可以直接让 Codex 查询 Sentry:
查一下 cancerwake 组织最近的 unresolved issues
分析这个 issue 的根因:PYTHON-DJANGO-1
查看这个 issue 最近 5 个事件,并按环境和 release 汇总
查看某个 trace 下相关 spans 和 logs
注意:MCP 当前可能只暴露查询、分析类工具;是否支持修改状态取决于你安装的 MCP server 能力。如果没有写入工具,就需要用 Sentry REST API。
4. 获取 SENTRY_AUTH_TOKEN
- 打开 Sentry Auth Tokens 页面:
https://sentry.io/settings/account/api/auth-tokens/ - 点击
Create New Token。 - 根据用途勾选权限。
建议权限:
org:read
project:read
event:read
project:write
其中,修改 issue 状态通常需要写权限。只读分析不需要给写权限。
创建后复制 token。token 只会完整显示一次。
5. Windows PowerShell 使用方式
临时设置,推荐
只在当前 PowerShell 窗口有效,关闭后失效:
$env:SENTRY_AUTH_TOKEN="sntryu_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
适合临时让 Codex 调 API。
用户环境变量,长期使用
只对当前 Windows 用户生效:
[Environment]::SetEnvironmentVariable("SENTRY_AUTH_TOKEN", "sntryu_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "User")
设置后需要重新打开终端或重启 Codex。
不建议系统环境变量
系统环境变量对更多进程/用户可见。除非是专用 CI 机器或专用服务器,否则不要把 Sentry token 放到系统环境变量。
6. 用 API 修改 issue 状态
如果 MCP 没有提供写入工具,可以用 Sentry REST API。
已知 issue group id 时:
$headers = @{ Authorization = "Bearer $env:SENTRY_AUTH_TOKEN" }
$body = @{ status = "resolved" } | ConvertTo-Json
Invoke-RestMethod `
-Method Put `
-Uri "https://us.sentry.io/api/0/issues/<issue_group_id>/" `
-Headers $headers `
-ContentType "application/json" `
-Body $body
示例:把 issue 标记为已解决:
$headers = @{ Authorization = "Bearer $env:SENTRY_AUTH_TOKEN" }
$body = @{ status = "resolved" } | ConvertTo-Json
Invoke-RestMethod `
-Method Put `
-Uri "https://us.sentry.io/api/0/issues/7531093633/" `
-Headers $headers `
-ContentType "application/json" `
-Body $body
不要把真实 token 写进命令历史、源码、.env 或 wiki。
7. 常见工作流
修复生产 issue
- 让 Codex 读取 Sentry issue。
- 根据 stacktrace 回到源码查根因。
- 修改代码。
- 使用项目要求的命令验证。
- 部署或重启服务。
- 确认 Sentry 没有新增同类事件。
- 用 API 或 UI 把 issue 标记为
resolved。
提交信息自动关闭 issue
如果 Sentry 已绑定 Git 仓库,可以在 commit message 或 PR merge message 里写:
Fixes PYTHON-DJANGO-1
合并后 Sentry 可以自动关联并关闭 issue。实际效果取决于 Sentry 与代码仓库的集成配置。
8. 安全注意事项
SENTRY_AUTH_TOKEN是敏感凭证,泄露后要立即吊销。- 不要把 token 发到聊天、文档、Git、截图或日志里。
- 不要把 token 写到项目根
.env,本项目根.env只放宿主端口。 - 后端运行时 DSN 如需配置,应该放在
backend/.env,但 DSN 不是 API token。 - 给 token 最小权限。只读分析用只读权限,需要 Resolve issue 时再临时给写权限。
- 临时 token 用完后及时删除。
9. 排错
Codex 看不到 Sentry 工具
检查 MCP 配置:
[mcp_servers.sentry]
command = "npx"
args = ["-y", "mcp-remote@latest", "https://mcp.sentry.dev/mcp"]
然后重启 Codex。
OAuth 授权失败
- 确认浏览器能访问 Sentry。
- 确认当前账号有目标组织权限。
- 重新运行
codex mcp add sentry ...。
API 返回 401
- token 不正确或已吊销。
- 环境变量没有在当前终端生效。
- PowerShell 变量名写错,应为
SENTRY_AUTH_TOKEN。
API 返回 403
- token 权限不足。
- 尝试给 token 增加
project:write,或换有权限的 Sentry 账号生成 token。
issue 状态改了但又重新打开
说明同类错误再次发生。应回到 Sentry 查看 Last Seen、event、release 和部署时间,确认修复是否已部署到触发环境。

浙公网安备 33010602011771号