Blacksmith

io.github.grahamnotgrant由 GitHub 账号 grahamnotgrant 发布v0.1.1更新于 Oct 24, 2026

MCP server for Blacksmith CI - query runs, analyze test failures, detect flaky tests.

概览

AI 生成的概览

让助手查询 Blacksmith CI 的工作流运行、分析测试失败、检测不稳定测试,并查看用量与账单。

可以做什么
通过一组工具把助手连接到 Blacksmith CI 数据,可列出并查看工作流运行、作业和作业日志。测试分析工具返回失败测试、按错误模式分组的失败、两次运行之间的对比、不稳定与耗时过长的测试、单个测试的历史记录以及趋势。另有工具报告核心用量、账单金额、用量汇总、缓存统计与缓存条目,以及组织列表、组织状态和跨作业日志搜索。
适用场景
适合在团队使用 Blacksmith 运行 CI 时使用:以对话方式排查失败的运行、找出不稳定或过慢的测试、比较拉取请求与基线分支的失败差异,或查看用量与缓存占用,而不必在多个仪表盘之间来回点击。
运行要求
以 stdio 方式在本地运行,通常通过 npx blacksmith-mcp 启动,因此需要 Node.js。需要设置 BLACKSMITH_ORG 环境变量。身份验证可自动从 macOS 上的 Chrome 提取会话 cookie,也可手动设置 BLACKSMITH_SESSION_COOKIE 环境变量。需要访问 Blacksmith API 的网络连接。
安装前请注意
该服务器会读取已登录的 Blacksmith 会话:默认从 Chrome 提取会话 cookie,而 BLACKSMITH_SESSION_COOKIE 变量保存的是可访问账户的凭据。它依赖 Blacksmith 未公开的内部 Web API,该 API 由网页应用逆向得出,可能随时变更。工具以读取为主,但会暴露用量与账单数据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Blacksmith,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Blacksmith MCP

[npm version] [License: MIT] [MCP]

An MCP server that connects Claude to your Blacksmith CI data. Query workflow runs, analyze test failures, detect flaky tests, and monitor usage—all through natural conversation.

Why?

Debugging CI failures usually means clicking through dashboards, copying run IDs, and piecing together information across multiple pages. With this MCP, you can just ask:

  • "Why did the last CI run fail?"
  • "Which tests are flaky this week?"
  • "Compare test failures between main and my PR"
  • "What's using the most cache storage?"

Claude handles the API calls and gives you actionable insights.

Quick Start

Zero-config if you're logged into Blacksmith in Chrome:

bash
# Add to Claude Codeclaude mcp add blacksmith -- npx blacksmith-mcp
# Set your org (run once)export BLACKSMITH_ORG="your-org-name"

The MCP automatically extracts your session from Chrome cookies. No manual token copying needed.

Installation

Option 1: Claude Code CLI

bash
claude mcp add blacksmith -- npx blacksmith-mcp

Option 2: Project Configuration

Add to your .mcp.json:

json
{  "mcpServers": {    "blacksmith": {      "type": "stdio",      "command": "npx",      "args": ["blacksmith-mcp"],      "env": {        "BLACKSMITH_ORG": "your-org-name"      }    }  }}

Option 3: Global Install

bash
npm install -g blacksmith-mcp

Configuration

Authentication

Automatic (recommended): Log into app.blacksmith.sh in Chrome. The MCP extracts your session cookie automatically.

Manual: Set BLACKSMITH_SESSION_COOKIE environment variable with your session cookie value.

Environment Variables

VariableRequiredDescription
BLACKSMITH_ORGYesYour Blacksmith organization name
BLACKSMITH_SESSION_COOKIENoSession cookie (auto-extracted from Chrome if not set)

Available Tools

Workflow Runs

ToolDescription
list_runsList workflow runs with filters (status, branch, workflow, actor, PR)
get_runGet run details including all jobs
list_jobsList jobs for a workflow run
get_jobGet job details (steps, timing, runner info)
get_job_logsGet raw log output for a job

Test Analytics

ToolDescription
get_job_testsGet all test results for a job
get_failed_testsGet failed tests with full error messages
get_failures_by_patternGroup failures by error pattern (e.g., "Cannot read properties")
compare_test_runsCompare failures between two runs (find regressions)
get_flaky_testsDetect tests that fail intermittently
get_slow_testsFind tests exceeding duration threshold
get_test_historyTrack a specific test's pass/fail history
get_trendsAnalyze trends: duration, failure rate, test count

Usage & Billing

ToolDescription
get_current_usageCurrent core usage (active vs max)
get_invoice_amountCurrent billing period amount
get_usage_summaryBillable minutes vs free tier
get_cache_statsCache size, entries by repository
get_cache_entriesDetailed cache entries for a repo

Organization

ToolDescription
list_orgsList accessible organizations
get_org_statusOrg status (personal, onboarded, region)
search_logsSearch logs across all jobs

Example Conversations

Debug a Failed Run

You: Why did the last CI run fail?

Claude: Uses list_runs(status="failure", limit=1) then get_failed_tests

The last run failed with 34 test failures. The main issues are:

  • Connection timeout (12 tests) - Tests in api/ are timing out connecting to the test database
  • Undefined property (8 tests) - user.settings.theme is undefined in the new dark mode code
  • Assertion failures (14 tests) - Snapshot mismatches in UI components

Find Flaky Tests

You: Which tests are flaky?

Claude: Uses get_flaky_tests(days=7, min_runs=5)

Found 3 flaky tests:

TestFlake RatePattern
should handle concurrent requests40% (4/10 runs)Fails on CI, passes locally
renders loading state20% (2/10 runs)Race condition with setTimeout
validates auth token30% (3/10 runs)Intermittent network timeout

Compare Branches

You: Did my PR introduce new test failures?

Claude: Uses compare_test_runs with PR run vs base branch

Your PR introduced 2 new failures:

  • UserProfile.test.tsx: "Cannot read property 'avatar' of undefined"
  • api/users.test.ts: Expected 200, got 404

5 previously failing tests now pass (nice!).

Development

bash
# Install dependenciespnpm install
# Buildpnpm build
# Development mode (watch)pnpm dev
# Test with MCP Inspectornpx @modelcontextprotocol/inspector node dist/index.js

Troubleshooting

Session Expired

If you see SESSION_EXPIRED, your Blacksmith session has expired. Simply log back into app.blacksmith.sh in Chrome and retry.

Cookie Extraction Failed

The automatic cookie extraction requires:

  • macOS with Chrome installed
  • Being logged into Blacksmith in Chrome
  • Chrome not running with a locked profile

If it fails, set BLACKSMITH_SESSION_COOKIE manually.

No Organization Set

Run list_orgs to see available organizations, then set BLACKSMITH_ORG to your org name.

API Notes

This MCP uses Blacksmith's internal web API, which is undocumented. The API was reverse-engineered from the Blacksmith web app and may change without notice.

License

MIT

Contributing

Contributions welcome! Please open an issue first to discuss proposed changes.

来源:README.md,提交 f9ea93d

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分