关于 improving-mcp-tools
一套迭代改进 MCP 工具的技能流程,面向负责维护 MCP 服务和工具目录的开发者。它要求先用基准测量问题,再进行单项修复、复测并记录结果,同时设定文件范围和数据操作护栏。
主要功能
- 01运行确定性探测评估
- 02通过 Agent 回放评估任务表现
- 03依据数据选择单个问题
- 04限制改动文件范围
- 05验证效果并检查回归
- 06记录迭代结果
适用场景
- 01发现工具缺失和延迟问题
- 02改善工具描述或输入模式
- 03验证工具选择是否更准确
- 04为 MCP 工具改动准备可审查 PR
MCP 相关
该技能用于评估和改进 MCP 服务的工具体验,并通过 MCP 分析工具查询使用数据;评估应针对本地或开发环境,而非客户项目。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ posthog/ ai-plugin --skill improving-mcp-tools安装后在 Claude Code 中输入/improving-mcp-tools确认已加载。
附带文件references/campaign-journal.md
详细介绍
改进 MCP 工具
MCP 服务只有通过可衡量的方式才能变得更好。这是一套改进流程:评估当前 Agent 体验,修复最大的问题,再次评估,并且只发布数据证明合理的更改。这是“改进我的 MCP”循环的操作手册——每次迭代只处理一项,并记录在案,以便后续迭代(或其他 Agent)可以接着进行,而不必重复工作。
目标函数
services/mcp/evals/ 是测试框架。benchmark/tasks.yaml 是一组固定的 Agent 任务,包含 expected_tools 和 success_criteria;只有使用相同基准测试 version 的运行结果才具有可比性。
- 探测模式(确定性,无 LLM):
从
services/mcp/运行LIVE_MCP_URL=... LIVE_MCP_TOKEN=... pnpm exec tsx evals/runner/probe.ts --out score.json。报告工具缺失情况(可发现性)、探测失败,以及延迟 p50/p95。非零退出码表示发生回归。 - Agent 模式(LLM 重放 + 评判器):评估任务成功率和工具选择准确率。用于更改描述或可发现性——探测无法检测 Agent 是否选错工具。
请在植入种子数据的本地或 devbox 堆栈上运行测试框架,绝不要在客户项目上运行。本地配置:NODE_ENV=development PORT=9876 POSTHOG_API_BASE_URL=http://localhost:8000 pnpm dev:hono,个人 API 密钥用作 LIVE_MCP_TOKEN。
一次迭代
- 测量。 运行测试框架,建立基线。使用 MCP 分析工具(
query-mcp-tool-stats、query-mcp-tool-failures、query-mcp-tool-descriptions、query-mcp-tool-sample-intents)以及信号侦察操作手册中的分析方法,获取生产环境证据(products/signals/skills/signals-scout-mcp-tool-calls/references/queries.md):失败排行榜、重试/困难情况、延迟、未匹配任何工具的意图。 - 选定一个问题。 按影响范围 × 严重程度排序。跳过日志中显示已尝试两次且均失败的问题。每次迭代只处理一个问题——如果一个 PR 修复了三件事,分数变化时就无法判断是哪一项带来的效果。
- 限定范围修复。 只修改允许列表中的文件(见下文)。常见修复包括:改进工具描述,让正确的意图能找到它;收紧 Agent 总是填错的输入架构;修正注释;更新技能。
- 验证。 重新运行受影响的基准测试子集,以及一个无回归样本。只有目标指标有所改善且其他指标均未变差时,才保留更改。放弃更改是正常结果——将其记录在日志中,然后继续。
- 发布。 每次迭代创建一个 PR,并在正文中注明更改前后的分数(格式见 references/campaign-journal.md)。确保更改可盖章:更改行数 ≤400,只修改下方允许列表中的文件,并应用
stamphog标签。自主程度由活动配置决定——默认是供人工审查的草稿 PR;只有操作人员明确启用了自动驾驶实验时,才启用自动合并(见防护措施)。 - 记录日志。 结束本轮前,追加本次迭代记录。
严格护栏
这些不是建议;违反任何一条都会导致本轮活动未通过。
- 允许列表 — 活动 PR 只能修改:
products/*/mcp/tools.yaml、products/*/skills/**、services/mcp/evals/**、pnpm generate-tools/scaffold-yaml的代码生成输出(services/mcp/src/tools/generated/**和services/mcp/schema/generated-tool-definitions.json),以及文档。 其他任何内容(处理程序代码、包清单、工作流、迁移、身份验证路径)→ 停止,并将发现的问题交给人工处理,以草稿 PR 或报告的形式提交。 - 对数据只读。 测试工具和所有生产环境查询都只能读取。测量期间,绝不要创建、修改或删除客户可见对象。
- 没有证据,就等于没做。 PR 必须包含基线评分、改进后评分,以及使用的确切测试工具命令。
- 基准测试完整性。 切勿在验证修复的同一个 PR 中编辑
benchmark/tasks.yaml——同时修改考题和答案毫无证明力。基准测试变更必须单独提交 PR,并递增version。 - 预算。 遵守操作者设定的迭代、令牌和 PR 上限(默认:有 3 个尚未合并的活动 PR 时停止)。同一问题尝试失败两次后,永久搁置。
- 终止开关。 如果活动配置、其功能标志或操作者要求停止——立即停止当前迭代,记录状态,并妥善结束。
预期故障模式
- 有助于匹配一种意图的描述变更,可能会让正确工具在另一种意图下失去流量——这就是必须采样检查是否有回退的原因。意图簇快照中的
tool_overlaps(参见exploring-mcp-intent-clusters) 会准确列出哪些工具对在哪些意图上存在竞争:改写描述前先保存快照,之后重新计算;并将重叠工具对之间的捕获率变化视为回退信号。 - 探测延迟会随技术栈的预热状态而变化;至少运行 3 次并比较中位数,再判断延迟变化是否由修复导致。
- 工具缺失可能是功能标志门控所致,而不是目录中没有该工具——在“修复”可发现性之前,先检查
getToolsForFeatures门控。
评论
支持 Markdown