关于 pp-sentry
pp-sentry 是用于访问 Sentry 可观测性数据的 Printing Press CLI 技能,面向 Agent 和自动化脚本。它支持组织、项目、问题等数据的结构化查询,以及本地同步、搜索和导出。
主要功能
- 01查询组织、项目、问题与事件
- 02获取 Sentry Seer 模型名称
- 03JSON 输出与字段筛选
- 04本地同步、搜索及导出
适用场景
- 01发现组织和项目标识
- 02筛选问题以辅助故障排查
- 03导出组织清单用于交接
MCP 相关
技能文档提供独立 MCP 服务的安装与 Claude Code 注册步骤,可供 MCP 客户端调用。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-sentry安装后在 Claude Code 中输入/pp-sentry确认已加载。
详细介绍
Sentry — Printing Press CLI
前提条件:安装 CLI
此技能使用 sentry-pp-cli 二进制文件。**在调用此技能中的任何命令之前,必须确认 CLI 已安装。**如果未安装,请先安装:
- 通过 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install sentry --cli-only - 验证:
sentry-pp-cli --version - 确保所报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(例如没有 Node、处于离线状态等),请改用直接 Go 安装(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/monitoring/sentry/cmd/sentry-pp-cli@latest
如果安装后 --version 报告“command not found”,则运行时无法在 $PATH 中找到二进制文件目录。验证成功之前,请勿执行技能命令。
何时使用此 CLI
当 Agent 或脚本需要结构化访问 Sentry 组织、项目、问题、事件、发布、监控器、团队及相关可观测性数据时,请使用此 CLI。若需要本地二进制文件、本地同步/搜索/SQL、CSV/JSON 输出,或直接控制身份验证和区域路由,请优先选择它,而不是托管 MCP。
独特功能
其他用于此 API 的工具均不提供这些功能。
只读 Sentry 清单
-
organizations list— 以结构化输出列出已通过身份验证的令牌可访问的 Sentry 组织。当 Agent 需要发现用于 Sentry API 操作的组织 slug 时,请先使用此命令。
sentry-pp-cli organizations list --json --select slug,name -
seer— 列出可通过 Sentry Seer 使用的有效 LLM 模型名称。当 Agent 需要了解 Sentry 提供哪些由 Seer 支持的模型标识符时,请使用此命令。
sentry-pp-cli seer --json
HTTP 传输
此 CLI 使用兼容 Chrome 的 HTTP 传输访问面向浏览器的端点。对于常规 API 调用,不需要常驻浏览器进程。
命令参考
organizations — 组织端点
sentry-pp-cli organizations list-your— 返回当前区域中已通过身份验证的会话可访问的组织列表。此命令尤其适用于……sentry-pp-cli organizations retrieve-an— 返回单个组织的详细信息,包括成员访问权限和团队等信息。sentry-pp-cli organizations update-an— 更新给定组织的各项属性和可配置设置。
projects — 项目端点
sentry-pp-cli projects delete-a— 将项目安排为待删除。删除操作会异步进行,因此不会立即完成。但……sentry-pp-cli projects retrieve-a— 返回单个项目的详细信息。sentry-pp-cli projects update-a— 更新给定项目的各项属性和可配置设置。请注意,仅拥有……
seer — Seer 功能端点
sentry-pp-cli seer— 获取 Seer 当前使用的 LLM 模型名称列表。返回当前使用的 AI 模型列表……
sentry-app-installations — 管理 sentry 应用安装
sentry-apps — 管理 sentry 应用
sentry-pp-cli sentry-apps delete-a-custom-integration— 删除自定义集成。sentry-pp-cli sentry-apps retrieve-a-custom-integration-by-id-or-slug— 获取自定义集成。sentry-pp-cli sentry-apps update-an-existing-custom-integration— 更新现有自定义集成。
teams — 团队端点
sentry-pp-cli teams delete-a— 将团队安排为待删除。**注意:**删除操作会异步进行,因此不会立即完成。团队将……sentry-pp-cli teams retrieve-a— 返回单个团队的详细信息。sentry-pp-cli teams update-a— 更新给定团队的各项属性和可配置设置。
查找合适的命令
知道要做什么,但不确定该用哪个命令时,可以直接询问 CLI:
sentry-pp-cli which "<capability in your own words>"
which 会根据自然语言能力查询,从此 CLI 精选的功能索引中找出最匹配的命令。退出码 0 表示至少找到一项匹配;退出码 2 表示未找到足够确定的匹配项——请改用 --help,或缩小查询范围。
示例
查找组织
sentry-pp-cli organizations list --json --select slug,name
查找供 Sentry 命令限定范围使用的组织 slug。
列出组织的项目
sentry-pp-cli organizations projects list-an-organization-s my-org --json --select slug,name
在执行限定项目范围的事件查询前,查找项目 slug。
精简列出问题
sentry-pp-cli organizations issues list-an-organization-s my-org --agent --select shortId,title,count,userCount
在分流当前问题时,让 Agent 上下文保持聚焦。
导出组织清单
sentry-pp-cli export organizations --format json --output sentry-organizations.json
同步或列出数据后,创建可移植的事件交接文件。
检查 CLI 功能
sentry-pp-cli agent-context --pretty
在选择 Sentry 操作前,向 Agent 提供实时命令和身份验证信息。
身份验证设置
将 SENTRY_AUTH_TOKEN 设置为具有 org:read、project:read 和 event:read 等读取权限的 Sentry 用户令牌或组织令牌。对于欧盟区域的 SaaS 组织,请设置 SENTRY_REGION=de;如果生成的配置支持,则为可自托管的 Sentry 配置基础 URL。
运行 sentry-pp-cli doctor 以验证设置。
Agent 模式
在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select保留部分字段。点分路径可深入嵌套结构;数组会逐元素遍历。对于输出冗长的 API,这对缩小上下文至关重要:sentry-pp-cli organizations list-your --agent --select id,name,status -
可预览 —
--dry-run显示请求,但不会发送 -
适合离线使用 — 有本地 SQLite 存储时,同步和搜索命令可使用该存储
-
非交互式 — 绝不显示提示,所有输入都通过标志提供
响应封装
从本地存储或 API 读取数据的命令会将输出封装在来源信息中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并通过 .meta.source 判断数据来自实时 API 还是本地存储。只有在 stdout 连接到终端时,才会将人类可读的 N results (live) 摘要打印到 stderr;通过管道传递或由 Agent 消费时,stdout 只包含纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有异常之处时,请记录下来:
sentry-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
sentry-pp-cli feedback --stdin < notes.txt
sentry-pp-cli feedback list --json --limit 10
条目会本地存储在 ~/.sentry-pp-cli/feedback.jsonl。除非设置了 SENTRY_FEEDBACK_ENDPOINT,并且同时传入 --send 或设置 SENTRY_FEEDBACK_AUTO_SEND=true,否则绝不会通过 POST 发送。默认仅在本地存储。
写下让你感到意外的地方,而不是提交错误报告。简短、具体,写成一行:这才是能不断累积价值的部分。
输出交付
每个命令都接受 --deliver <sink>。输出会写入指定的目标位置,并且还会输出到 stdout,或取代 stdout 输出,以便 Agent 无需手动通过管道即可路由命令结果。支持三种目标:
| 目标 | 效果 |
|---|---|
stdout | 默认值;仅写入 stdout |
file:<path> | 将输出原子写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到 URL(使用 --compact 时,内容类型为 application/json 或 application/x-ndjson) |
对于未知方案,会拒绝处理,并返回列出受支持方案的结构化错误。Webhook 请求失败时会返回非零退出码,并在 stderr 中记录 URL 和 HTTP 状态码。
命名配置
配置是保存的一组标志值,可在多次调用中重复使用。如果计划任务中的 Agent 每次运行都以相同配置调用同一命令,请使用配置——这就是 HeyGen 的“Beacon”模式。
sentry-pp-cli profile save briefing --json
sentry-pp-cli --profile briefing organizations list-your
sentry-pp-cli profile list --json
sentry-pp-cli profile show briefing
sentry-pp-cli profile delete briefing --yes
显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,以便 Agent 在运行时发现它们。
退出码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 4 | 需要身份验证 |
| 5 | API 错误(上游问题) |
| 7 | 请求过于频繁(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示sentry-pp-cli --help输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他情况 → 直接使用(作为带有
--agent的 CLI 命令执行)
MCP 服务安装
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/monitoring/sentry/cmd/sentry-pp-mcp@latest - 在 Claude Code 中注册:
claude mcp add sentry-pp-mcp -- sentry-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which sentry-pp-cli如果未找到,则提供安装选项(参见本技能顶部的先决条件)。 - 将用户查询与上文“独特功能”和“命令参考”中的最佳命令匹配。
- 使用
--agent标志执行:sentry-pp-cli <command> [subcommand] [args] --agent - 如果不明确,可深入查看子命令帮助:
sentry-pp-cli <command> --help。