Skip to content

MCP 工具参考

所有工具都按 bearer token 所属项目隔离。跨项目访问在 store 层就被拒绝,不仅仅是工具层。

list_errors

triage 视图:按 last_seen 倒序的 issue 列表,带 status / type / 计数,但含堆栈或完整 payload。

参数类型默认值说明
statusstring?(任意)open / resolved / ignored。省略 = 全部。
sincestring? (ISO)(无下限)绝对 ISO-8601 时间戳。
limitnumber?501–200。
cursorstring?来自上一次调用返回的 nextCursor

返回精简列表({id, title, type, status, eventCount, lastSeen, ...})和 nextCursor 用于翻页。

get_error

一条 issue 的全貌:所有字段、最近 N 条事件,以及(如果 release 设置了且对应 sourcemap 已上传)解析后带原始源码位置的堆栈。

参数类型默认值说明
issue_idnumber必填。
event_limitnumber?51–50,最近的事件优先。

LLM 一般 1–3 条事件就足够定位。event_limit 调高是为了"这个问题断断续续一周了,给我看更宽的样本"这种场景。

mark_resolved

关闭一条 issue 并记录修复它的 commit。

参数类型默认值说明
issue_idnumber必填。
commit_shastring必填,至少 7 位(可用的简写 SHA)。
notestring?给人类审阅者看的自由文本(哪里错了、现在怎么回事)。

commit SHA 不会被对照真实 git 历史校验 —— Kestrel 不知道你的 git。把它当作"永远活在 kestrel get_error 里的文档"就行。

mark_ignored

不是 bug 的 issue(第三方 SDK 噪声、浏览器扩展抛的错等等)。把 issue 静默掉,不声称它被"修复"。

参数类型默认值说明
issue_idnumber必填。
reasonstring?为什么不在乎它。

重开一条已忽略的 issue:要么 mark_resolved(如果你确实修了,带 commit_sha),要么去 web UI 把状态改回 open

get_trend

某个 fingerprint 在指定时间窗口里的小时级事件计数。用来回答"这个错误是不是越来越严重",而不必把每条事件都塞进 agent 上下文。

参数类型默认值说明
fingerprintstring必填,从前一次 get_error 取。
window_hoursnumber?241–168(一周)。

返回稀疏 bucket [{hourUnix, count}, ...] 加总数。空小时不在数据里 —— LLM(或图表代码)需要的话自己稠化。

你不会找到的工具

  • 没有 create_issue / delete_issue / set_priority / assign_to —— Kestrel 没有这些概念。Issue 因为事件进来而存在,因为 retention 让最后一条事件过期而消失。
  • 没有 search —— list_errors + 过滤覆盖了几乎所有真实查询;对 raw payload 列做全文索引代价高,不值得。
  • 没有 comment —— mark_resolved / mark_ignored 里的 note 字段是最接近的东西,是一次性发布,不是评论线程。

基于 MIT 协议发布。