Blacksmith について
Blacksmith は Blacksmith CI を利用するチーム向けの MCP サーバーです。Claude からワークフローの実行状況やテスト失敗を調べ、ブランチを比較し、利用状況を確認できます。専用の CI・テスト分析ツールを備え、Chrome の Cookie によるセッション認証にも対応します。
主な機能
- 01ワークフロー実行の絞り込みとジョブ確認
- 02ジョブログとテスト結果の取得
- 03失敗の分類とテスト実行の比較
- 04不安定・低速・回帰テストの検出
- 05利用状況・請求・キャッシュの確認
- 06全ジョブのログ検索
活用シーン
- 01ワークフロー失敗の原因調査
- 02一定期間の不安定なテストの特定
- 03PR によるテスト失敗の確認
- 04キャッシュ利用量と CI 請求の確認
MCP 対応
MCP クライアントに Blacksmith のワークフロー、テスト分析、利用状況、組織、ログ検索のツールを公開します。Blacksmith のセッション Cookie で認証し、組織の設定が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
21掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Blacksmith MCP
Claude を Blacksmith CI のデータに接続する MCP サーバーです。ワークフローの実行を照会し、テスト失敗を分析し、不安定なテストを検出し、使用状況を監視できます。すべて自然な会話を通じて行えます。
なぜ使うのか?
CI の失敗をデバッグするには、通常、ダッシュボードをクリックし、実行 ID をコピーして、複数のページにまたがる情報をつなぎ合わせる必要があります。この MCP を使えば、次のように尋ねるだけです。
- 「直近の CI 実行が失敗した原因は何ですか?」
- 「今週、不安定なテストはどれですか?」
- 「main と自分の 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 Code CLI
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
設定
認証
自動(推奨): Chrome で app.blacksmith.sh にログインします。MCP がセッション Cookie を自動的に取得します。
手動: BLACKSMITH_SESSION_COOKIE 環境変数にセッション Cookie の値を設定します。
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
BLACKSMITH_ORG | はい | Blacksmith の組織名 |
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 | エラーパターン(例:「Cannot read properties」)ごとに失敗をグループ化します |
compare_test_runs | 2 つの実行間の失敗を比較します(リグレッションを検出) |
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 実行が失敗した原因は何ですか?
Claude:
list_runs(status="failure", limit=1)を使用し、次にget_failed_testsを使用します直近の実行では、34 件のテストが失敗しました。主な問題は次のとおりです。
- 接続タイムアウト(12 件のテスト) -
api/のテストで、テストデータベースへの接続がタイムアウトしています- 未定義のプロパティ(8 件のテスト) - 新しいダークモードのコードで
user.settings.themeが未定義です- アサーションの失敗(14 件のテスト) - UI コンポーネントのスナップショットが一致しません
不安定なテストを検索する
あなた: 不安定なテストはどれですか?
Claude:
get_flaky_tests(days=7, min_runs=5)を使用します不安定なテストが3件見つかりました:
テスト 不安定率 パターン should handle concurrent requests40%(10回中4回) CIでは失敗し、ローカルでは成功 renders loading state20%(10回中2回) setTimeoutとの競合状態 validates auth token30%(10回中3回) ネットワークタイムアウトが断続的に発生
ブランチを比較する
あなた: 私のPRで新しいテスト失敗が発生しましたか?
Claude: PRの実行結果とベースブランチを
compare_test_runsで比較しますPRによって新たに2件の失敗が発生しました:
UserProfile.test.tsx:「Cannot read property 'avatar' of undefined」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と表示された場合、Blacksmithのセッションの有効期限が切れています。Chromeでapp.blacksmith.shに再度ログインして、もう一度お試しください。
Cookieの抽出に失敗した
Cookieの自動抽出には、以下が必要です:
- ChromeがインストールされたmacOS
- ChromeでBlacksmithにログインしていること
- ロックされたプロファイルでChromeを実行していないこと
抽出に失敗する場合は、BLACKSMITH_SESSION_COOKIEを手動で設定してください。
組織が設定されていない
list_orgsを実行して利用可能な組織を確認し、BLACKSMITH_ORGに組織名を設定してください。
APIに関する注意事項
このMCPは、ドキュメント化されていないBlacksmithの内部Web APIを使用します。このAPIはBlacksmithのWebアプリからリバースエンジニアリングされたものであり、予告なく変更される場合があります。
ライセンス
MIT
コントリビューション
コントリビューションを歓迎します!変更案について話し合うため、まずissueを作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。