SelfHeal MCP について
SelfHeal MCP は、MCP サーバーにリトライ、サーキットブレーカー、呼び出しメトリクスを加えるプロキシです。一時的な障害への対処や接続先の状態確認が必要なエージェント環境向けです。
主な機能
- 01バックオフ付きの一時障害リトライ
- 02サーキットブレーカーによる接続先保護
- 03成功率、遅延、エラーの記録
- 04既存 MCP サーバーのプロキシ
- 05サーキット状態の確認とリセット
活用シーン
- 01不安定な API 呼び出しによる中断の軽減
- 02既存 MCP サーバーのプロキシ経由での公開
- 03呼び出しメトリクスと最近の障害の確認
MCP 対応
プロキシモードでは既存 MCP サーバーを仲介し、リトライとサーキットブレーカーを加えてツールを再公開します。独自の MCP ツールでは HTTP 呼び出し、サーキット制御、メトリクス、最近のエラー詳細を扱えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y selfheal-mcpSELFHEAL_CONFIGPath to selfheal.config.json (optional, defaults to cwd)SELFHEAL_MAX_RETRIESMax retry attempts per call (default: 3)SELFHEAL_CIRCUIT_THRESHOLDFailures before circuit opens (default: 5)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | いいえ | 呼び出す URL(HTTP ターゲット用) |
| body | string | いいえ | リクエストボディ(POST/PUT/PATCH 用) |
| method | enum | いいえ | HTTP メソッド(デフォルト:GET)GET | POST | PUT | PATCH | DELETE |
| target | string | はい | ターゲットサービスの識別子(サーキットブレーカーの追跡に使用) |
| headers | object | いいえ | HTTP ヘッダー |
| timeoutMs | number | いいえ | 各試行のタイムアウト(ミリ秒、デフォルト:30000) |
| description | string | はい | この呼び出しの内容を人が理解しやすい形で説明したもの |
詳細
SelfHeal MCP
MCP サーバー向けの自己修復プロキシです。あらゆる MCP ツール呼び出しをラップし、自動リトライ、サーキットブレーカーによる保護、呼び出しの可観測性を提供します。
不安定な API が原因で AI エージェントが動作しなくなることはありません。
ワンクリックでインストール: MCPize にインストール |
npx selfheal-mcp
機能
- バックオフ付きリトライ — 一時的な障害(5xx、タイムアウト、レート制限)に対する指数バックオフとジッター
- サーキットブレーカー — ターゲットごとのサーキットブレーカーにより、停止したサービスへの過剰なリクエストを防止
- 呼び出しメトリクス — 成功率、レイテンシ、エラー頻度をツールとターゲットごとに分類
- プロキシモード — 既存の MCP サーバーを透過的にラップ
- 設定不要 — 単体でそのまま動作し、プロキシモードでは設定ファイルを使用
クイックスタート
スタンドアロンモード
Claude Desktop / Claude Code の設定に追加します。
{
"mcpServers": {
"selfheal": {
"command": "npx",
"args": ["-y", "selfheal-mcp"]
}
}
}
次に、wrap_call を使って自己修復機能付きの HTTP リクエストを実行します。
Use the wrap_call tool to GET https://api.example.com/data with target "example-api"
プロキシモード
selfheal.config.json を作成します。
{
"mode": "proxy",
"targets": [
{
"name": "my-server",
"transport": "streamable-http",
"url": "https://my-mcp-server.com/mcp"
}
]
}
{
"mcpServers": {
"selfheal": {
"command": "npx",
"args": ["-y", "selfheal-mcp"],
"env": {
"SELFHEAL_CONFIG": "/path/to/selfheal.config.json"
}
}
}
}
my-server のすべてのツールが、自己修復機能を組み込んだ状態で再公開されます。
ツール
| ツール | 説明 |
|---|---|
wrap_call | リトライとサーキットブレーカーを使って HTTP 呼び出しを実行 |
circuit_status | 任意のターゲットの健全性を確認 |
circuit_reset | 問題を修正した後、サーキットブレーカーをリセット |
metrics | 成功率、レイテンシ、主なエラー |
recent_errors | 詳細情報付きの最近の失敗 |
プロキシモードで追加されるツール
| ツール | 説明 |
|---|---|
selfheal_metrics | すべてのプロキシ経由の呼び出しに関するメトリクス |
selfheal_circuits | すべてのターゲットのサーキット状態 |
selfheal_recent_errors | すべてのターゲットで発生した最近のエラー |
設定
環境変数
| 変数 | デフォルト値 | 説明 |
|---|---|---|
SELFHEAL_CONFIG | ./selfheal.config.json | 設定ファイルのパス |
SELFHEAL_MAX_RETRIES | 3 | 最大リトライ回数 |
SELFHEAL_BASE_DELAY_MS | 1000 | バックオフの基本遅延時間 |
SELFHEAL_MAX_DELAY_MS | 30000 | 遅延時間の上限 |
SELFHEAL_CIRCUIT_THRESHOLD | 5 | サーキットが開くまでの失敗回数 |
SELFHEAL_CIRCUIT_COOLDOWN_MS | 120000 | ハーフオープン状態でのテストまでのクールダウン時間 |
仕組み
Agent → SelfHeal MCP → [Retry + Circuit Breaker] → Target API/MCP Server
↓
Metrics Collector
- リクエストの受信 — エージェントがツールを呼び出します
- サーキットの確認 — ターゲットで失敗が規定回数を超えている場合、ただちにリクエストを拒否します
- リトライ付きで実行 — 呼び出しを試行し、一時的なエラーが発生した場合は指数バックオフで再試行します
- メトリクスの記録 — 成功/失敗、所要時間、試行回数を記録します
- サーキットの更新 — ターゲットごとの連続失敗回数を追跡します
インストール
MCPize(推奨)
ホスティング管理機能付きのワンクリックインストール:MCPize にインストール
npm
npx selfheal-mcp
PyPI
該当しません — これは TypeScript サーバーです。Python の代替製品については、LeadEnrich MCP をご覧ください。
ライセンス
MIT — Freedom Engineers によって開発されました
関連製品
- SiteHealth MCP — ウェブサイトの包括的な健全性監査
- LeadEnrich MCP — 段階的なリード情報のエンリッチメント
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。