mcpField
O
openai-sentry

openai-sentry

github.com/trailofbits云与 DevOps52272 次安装15 周前更新
代码仓库

关于 openai-sentry

用于只读查询 Sentry 可观测性数据的技能,通过 Sentry API 获取项目问题和事件详情。它会整理问题与事件信息、隐藏个人信息,并避免输出原始堆栈跟踪。

主要功能

  1. 01列出并筛选问题
  2. 02获取问题和事件详情
  3. 03分页调用 API
  4. 04隐藏个人信息
  5. 05整理问题摘要

适用场景

  1. 01查看近期生产问题
  2. 02检查某个问题的事件
  3. 03查找符合查询条件的问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/trailofbits/skills-curated --skill openai-sentry

安装后在 Claude Code 中输入/openai-sentry确认已加载。

附带文件scripts/sentry_api.py

详细介绍

Sentry(只读可观测性)

快速开始

  • 如果用户尚未通过身份验证,请让用户提供有效的 SENTRY_AUTH_TOKEN(只读权限范围,例如 project:read、event:read),或者先登录并创建令牌,再运行命令。
  • 将 SENTRY_AUTH_TOKEN 设置为环境变量。
  • 可选默认值:SENTRY_ORG、SENTRY_PROJECT、SENTRY_BASE_URL。
  • 默认值:组织/项目 {your-org}/{your-project},时间范围 24h,环境 prod,数量上限为 20(最大 50)。
  • 始终调用 Sentry API(不使用启发式方法,不缓存)。

如果缺少令牌,请向用户提供以下步骤:

  1. 创建 Sentry 身份验证令牌:https://sentry.io/settings/account/api/auth-tokens/
  2. 创建具有只读权限范围的令牌,例如 project:read、event:read 和 org:read。
  3. 在用户的系统中将 SENTRY_AUTH_TOKEN 设置为环境变量。
  4. 如有需要,可提供指导,帮助用户为其操作系统/ shell 设置环境变量。
  • 切勿要求用户在聊天中粘贴完整令牌。请让用户在本地设置令牌,并在准备就绪后告知。

核心任务(使用捆绑脚本)

使用 scripts/sentry_api.py 执行确定性的 API 调用。它会处理分页,并在出现暂时性错误时重试一次。

脚本和参考资料位于 {baseDir}/ 下。

API 要求

始终使用以下端点(仅限 GET):

  • 列出问题:/api/0/projects/{org_slug}/{project_slug}/issues/
  • 问题详情:/api/0/issues/{issue_id}/
  • 问题的事件:/api/0/issues/{issue_id}/events/
  • 事件详情:/api/0/projects/{org_slug}/{project_slug}/events/{event_id}/

输入和默认值

  • org_slug、project_slug:默认为 {your-org}/{your-project}(避免使用非生产环境的组织)。
  • time_range:默认为 24h(作为 statsPeriod 传递)。
  • environment:默认为 prod。
  • limit:默认为 20,最大为 50(分页直到达到上限)。
  • search_query:可选的 query 参数。
  • issue_short_id:先通过问题列表查询解析。

输出格式规则

  • 问题列表:显示标题、short_id、状态、first_seen、last_seen、count、environments、top_tags;按最近时间排序。
  • 事件详情:包含 culprit、timestamp、environment、release、url。
  • 如果没有结果,请明确说明。
  • 对输出中的 PII(电子邮件、IP 地址)进行脱敏。不要输出原始堆栈跟踪。
  • 切勿回显身份验证令牌。

黄金测试输入

  • 组织:{your-org}
  • 项目:{your-project}
  • 问题短 ID:{ABC-123}

示例提示词:“列出过去 24h 内 prod 环境中排名前 10 的未解决问题。” 预期:按顺序排列的列表,包含标题、短 ID、数量和最近发生时间。

适用场景

不适用场景

评论

支持 Markdown