mcpField
W
warden-service

warden-service

github.com/getsentry测试与质量418174 次安装今天更新
代码仓库

关于 warden-service

warden-service 是用于查询 Warden Service 的技能,使用只读个人令牌生成有依据且范围受限的答复。它规范 API 调用,并要求遵循文档路由和令牌权限。

主要功能

  1. 01只读 API 查询
  2. 02限制运行和发现范围
  3. 03基于游标翻页
  4. 04令牌安全处理
  5. 05报告路由和筛选条件

适用场景

  1. 01检查某仓库的发现
  2. 02查看指定时间范围内的运行
  3. 03按严重级别或技能筛选发现

安装

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

$npx skills add https://github.com/getsentry/warden --skill warden-service

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

spec.md
evals/cases/
diagnose-api-errors.yaml
establish-safe-api-access.yaml
follow-bounded-pagination.yaml
select-documented-read-routes-and-filters.yaml
send-a-safe-authenticated-request.yaml
summarize-api-evidence.yaml
references/
read-api.md

详细介绍

Warden Service

使用只读个人令牌查询 Warden Service,并返回有界、基于证据的回答。

工作流

  1. 确认 Warden Service 的源地址,并确认已设置 WARDEN_PAT,但不要显示其值。
  2. 如果缺少令牌,请引导用户前往 Warden Service 控制面板中的 API access。让他们创建个人令牌并将其导出为 WARDEN_PAT;绝不要让他们把令牌粘贴到聊天或命令字面量中。
  3. 阅读 references/read-api.md,根据问题选择准确的路由、支持的筛选条件、分页行为和响应字段。
  4. 将请求范围缩小到用户指定的仓库、时间范围、技能、严重性或其他范围。对运行和发现结果使用有界的 limit。
  5. 使用从环境中读取的令牌发送 GET 请求。对每个查询值进行 URL 编码。
  6. 仅在需要更多结果时才跟进 nextCursor。保留所有原始筛选条件,并在满足请求范围或响应中不再包含 nextCursor 时停止。
  7. 总结相关的 JSON 字段。说明使用的路由和筛选条件,并区分空结果与请求失败。

请求模式

使用 --get 和 --data-urlencode,而不要手动拼接查询字符串:

curl --fail-with-body --silent --show-error --get \
  -H 'Accept: application/json' \
  -H "Authorization: Bearer ${WARDEN_PAT}" \
  --data-urlencode 'severity=high' \
  --data-urlencode 'skill=security-review' \
  --data-urlencode 'limit=30' \
  "${WARDEN_SERVICE_URL%/}/api/v1/findings"

将令牌保存在 WARDEN_PAT 中。不要启用可能泄露授权标头的详细或跟踪输出。

分页

只有 /api/v1/runs 和 /api/v1/findings 使用游标分页。将 nextCursor 视为不透明值,并通过 URL 编码将其原样传回:

curl --fail-with-body --silent --show-error --get \
  -H 'Accept: application/json' \
  -H "Authorization: Bearer ${WARDEN_PAT}" \
  --data-urlencode "cursor=${NEXT_CURSOR}" \
  --data-urlencode 'severity=high' \
  --data-urlencode 'limit=100' \
  "${WARDEN_SERVICE_URL%/}/api/v1/findings"

错误

结合使用 HTTP 状态码与 JSON 中的 error.code 和 error.message:

状态码含义操作
400查询筛选条件无效更正参数名称、值或 RFC 3339 时间戳。
401缺少、无效或已过期的身份验证验证源地址,并通过 API access 更换个人令牌。
403角色权限不足或个人令牌操作不允许保持请求只读,并限定在令牌的仓库范围内。
404路由/资源未知或未获授权验证文档中记录的路由或 ID,不要假定资源存在。
429请求过于频繁,受到速率限制等待后再重试;不要频繁循环重试。

边界

  • 个人令牌仅用于 GET 或 HEAD。绝不要使用它们尝试执行 POST、PUT、PATCH 或 DELETE。
  • 绝不要泄露、记录、持久化或嵌入令牌作为命令字面量,也不要要求用户粘贴令牌。
  • 遵守令牌的租户、角色和仓库限制。绝不要尝试绕过这些限制。
  • 仅使用 references/read-api.md 中记录的路由、筛选条件和响应字段。
  • 仅获取并显示满足用户所述范围所需的数据。只有在用户明确请求导出时,才使用导出路由。
  • 如果只读 API 无法回答问题,请如实说明。不要改用数据摄取、记忆回溯、令牌管理、保留或删除请求。

评论

支持 Markdown