铁匠MCP
](https://www.npmjs.com/package/blacksmith-mcp)  
将Claude连接到您的MCP服务器 铁匠CI 数据。查询工作流运行,分析测试失败,检测不稳定的测试,并监控使用情况——所有这些都是通过自然对话完成的。
为什么?
调试CI失败通常意味着点击仪表板、复制运行ID以及在多个页面上拼凑信息。使用此MCP,您可以问:
- *“为什么上次CI运行失败?”*
- *“本周哪些测试不稳定?”*
- *“比较主PR和我的PR之间的测试失败”*
- *“什么使用了最多的缓存存储?”*
Claude处理API调用,并为您提供可操作的见解。
快速开始
如果您在Chrome中登录到Blacksmith,则无需配置:
# Add to Claude Code
claude mcp add blacksmith -- npx blacksmith-mcp
# Set your org (run once)
export BLACKSMITH_ORG="your-org-name"MCP会自动从Chrome Cookie中提取您的会话。无需手动复制令牌。
安装
选项1:Claude代码命令行界面
claude mcp add blacksmith -- npx blacksmith-mcp选项2:项目配置
添加到您的 .mcp.json:
{
"mcpServers": {
"blacksmith": {
"type": "stdio",
"command": "npx",
"args": ["blacksmith-mcp"],
"env": {
"BLACKSMITH_ORG": "your-org-name"
}
}
}
}选项3:全局安装
npm install -g blacksmith-mcp配置
认证
自动(推荐): 登录 app.blacksmith.sh 在Chrome中。MCP会自动提取您的会话cookie。
手册: 集 BLACKSMITH_SESSION_COOKIE 带有会话cookie值的环境变量。
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
BLACKSMITH_ORG | 是 | 您的铁匠组织名称 |
BLACKSMITH_SESSION_COOKIE | 否 | 会话cookie(如果未设置,则自动从Chrome中提取) |
可用工具
工作流运行
| 工具 | 说明 |
|---|---|
list_runs | 使用过滤器(状态、分支、工作流、参与者、PR)运行列表工作流 |
get_run | 获取运行详细信息,包括所有作业 |
list_jobs | 列出工作流运行的作业 |
get_job | 获取作业详细信息(步骤、时间、跑步者信息) |
get_job_logs | 获取作业的原始日志输出 |
测试分析
| 工具 | 说明 |
|---|---|
get_job_tests | 获取某项工作的所有测试结果 |
get_failed_tests | 获取包含完整错误消息的失败测试 |
get_failures_by_pattern | 按错误模式分组失败(例如,“无法读取属性”) |
compare_test_runs | 比较两次运行之间的失败(查找回归) |
get_flaky_tests | 检测间歇性失败的测试 |
get_slow_tests | 查找超过持续时间阈值的测试 |
get_test_history | 跟踪特定测试的通过/失败历史 |
get_trends | 分析趋势:持续时间、故障率、测试次数 |
使用和计费
| 工具 | 说明 |
|---|---|
get_current_usage | 当前核心使用率(活动与最大) |
get_invoice_amount | 当前计费期金额 |
get_usage_summary | 计费分钟数与免费等级 |
get_cache_stats | 缓存大小,按存储库列出的条目 |
get_cache_entries | 仓库的详细缓存条目 |
组织
| 工具 | 说明 |
|---|---|
list_orgs | 列出可访问的组织 |
get_org_status | 组织状态(个人、已加入、地区) |
search_logs | 搜索所有作业的日志 |
对话示例
调试失败的运行
你: 为什么上次CI运行失败? 克劳德: *用途list_runs(status="failure", limit=1)然后get_failed_tests* 最后一次运行失败,有34次测试失败。主要问题是: - 连接超时 (12项测试)-测试api/连接到测试数据库正在超时 - 未定义的属性 (8次测试)-user.settings.theme在新的暗模式代码中未定义 - 断言失败 (14项测试)-UI组件中的快照不匹配
查找有缺陷的测试
你: 哪些测试是不稳定的? 克劳德: *用途get_flaky_tests(days=7, min_runs=5)* 发现3个片状测试: |测试|剥落率|模式| |------|------------|---------| |should handle concurrent requests|40%(4/10次运行)| CI失败,本地通过| |renders loading state|20%(2/10次运行)|设置超时的比赛条件| |validates auth token|30%(3/10次运行)|间歇性网络超时|
比较分支机构
你: 我的PR是否引入了新的测试失败? 克劳德: *用途compare_test_runsPR运行vs基础分支* 你的公关引入了两个新的失败: -UserProfile.test.tsx:“无法读取未定义的属性‘avatar’” -api/users.test.ts:预期200,得到404 5个以前失败的测试现在通过了(很好!)。
发展
# Install dependencies
pnpm install
# Build
pnpm build
# Development mode (watch)
pnpm dev
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js故障排除
会话已过期
如果你看到 SESSION_EXPIRED,您的铁匠会话已过期。只需重新登录 app.blacksmith.sh 在Chrome浏览器中,然后重试。
Cookie提取失败
自动cookie提取需要:
- 安装了Chrome的macOS
- 在Chrome中登录铁匠
- Chrome未在锁定的配置文件下运行
如果失败,设置 BLACKSMITH_SESSION_COOKIE 手动。
未设置组织
跑 list_orgs 要查看可用组织,请设置 BLACKSMITH_ORG 到你的组织名称。
API注释
此MCP使用Blacksmith的内部网站API,该网站未经记录。API是从Blacksmith网络应用程序反向工程的,可能会在不通知的情况下更改。
许可证
麻省理工学院
贡献
欢迎投稿!请先打开一个问题来讨论拟议的更改。

