Silentfail について
SilentFailは、対応クライアントのMCP環境を診断するコマンドラインツール兼MCPサーバーです。サーバーの稼働状況やツールを検査し、トークンコストや名前の競合を調べ、設定とスキーマのセキュリティリスクをスキャンします。
主な機能
- 01MCPクライアント設定の検出
- 02サーバーの稼働状況と起動時間の確認
- 03推定した入力値でツールをテスト
- 04トークンコストの測定と競合の検出
- 05セキュリティリスクのスキャン
活用シーン
- 01ローカルMCP環境で停止したサーバーを特定
- 02利用前にツールの動作を検証
- 03トークン負荷とツール名の重複を確認
- 04サーバー設定のプロンプトインジェクションパターンを検査
MCP 対応
MCPサーバーとして、SilentFailはMCPサーバーのスキャンとダッシュボード表示のツールを提供します。診断やJSON出力を行うコマンドラインツールとしても実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーは失敗しています。まだ気づいていないだけです。
接続するツールは、入力を始める前からトークンを消費します。壊れたサーバーは、何も知らせずに失敗します。 SilentFail は、ヘルスチェック、トークン監査、セキュリティスキャンを一度のスキャンで実行し、問題を見つけます。
問題点
Claude、Cursor、VS Code に MCP サーバーを接続すると、ログも警告も手がかりもないまま、サーバーが壊れることがあります。どのサーバーが遅いのか、停止しているのか、コンテキストウィンドウを使い切っているのかもわかりません。
接続されたサーバーはそれぞれ、トークンコストが発生します。会話を始める前に、Claude はすべてのツールスキーマを読み込みます。20 個以上のツールを持つサーバーが 5 つあれば、ただ接続しているだけで5,000 トークン以上を消費することがあります。また、そうしたサーバーの 1 つに、プロンプトインジェクションを含む悪意のあるツールの説明があっても、気づくことはないでしょう。
SilentFail の機能
| 検出 | Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、プロジェクトレベルのファイルにあるすべての MCP 設定を検出します |
| 接続 | 各サーバーを起動し、起動時間を測定して、すべてのツールを一覧表示します |
| テスト | 推論した適切なパラメーターを使って各ツールを呼び出し、実際に動作することを確認します |
| 監査 | サーバーごと、ツールごとの正確なトークンコストを計算します |
| 特定 | サーバー間でツール名が競合している箇所を見つけます |
| スキャン | 50 種類以上のセキュリティパターンを検出します。プロンプトインジェクション、データ窃取、危険なコマンド、エンコードされたペイロードなどが対象です |
| レポート | CLI、チャット、ビジュアルダッシュボードで、わかりやすく実行可能な結果を出力します |
クイックスタート
git clone https://github.com/decksaga/silentfail.git
cd silentfail
npm install
npm run build
SilentFail は、MCP サーバー(Claude が自分でスキャン)またはCLI(ターミナルから実行)の 2 つのモードで動作します。
モード 1:MCP サーバー(推奨)
Claude Desktop の設定に SilentFail を追加し、Claude に自分の環境を診断させます。
claude_desktop_config.json
{
"mcpServers": {
"silentfail": {
"command": "node",
"args": ["/absolute/path/to/silentfail/dist/server.js"]
}
}
}
このファイルはどこにありますか?
| OS | パス |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/claude/claude_desktop_config.json |
その後、Claude Desktop を再起動して、次のように尋ねます。
「MCP サーバーをスキャンして」
Claude はスキャンツールを呼び出して、診断レポート全体を取得し、ユーザーが使った言語で提示します。初回の利用時に、チャットまたはビジュアル Web ダッシュボードのどちらで結果を表示するかを尋ねます。選んだ設定は記憶されます。
公開されるツール
| ツール | 説明 |
|---|---|
scan_mcp_servers | 完全な診断を実行します。ヘルス、トークン、競合、セキュリティ、推奨事項が対象です。各ツールの動作を確認するには、test_tools: true を設定します。 |
open_silentfail_dashboard | スキャンを実行し、localhost:3777 でインタラクティブな Web ダッシュボードを開きます |
モード 2:CLI
ターミナルから直接実行して、手早く診断したり、CI に統合したりできます。
silentfail # Quick health check
silentfail --test # Full scan + call each tool to verify
silentfail --dashboard # Open visual web dashboard
silentfail --json # JSON output for scripts/CI
silentfail --help # All options
silentfail をグローバルコマンドとして使うには、次を実行します。
npm link
出力例
SilentFail — Scan Report
──────────────────────────────────────────────────
OVERVIEW
──────────────────────────────────────────────────
Configs found: 3 (Claude Desktop, Claude Code, Cursor)
Servers: 4 healthy, 1 failed
Total tools: 23
Schema tokens: ~4,812 (consumed before you type anything)
Conflicts: 1
Scan time: 6204ms
market-pulse OK
Response: 412ms
Tokens: ~651 (8 tools, ~81 per tool)
Tools:
get_price (110 tok) passed
get_stock_price (94 tok) passed
get_market_summary (69 tok) passed
broken-server ERROR
Error: Script not found: /old/path/server.js
TOKEN BUDGET
──────────────────────────────────────────────────
browser-tools ████████████░░░░░░░░ 2,340 tok (49%)
file-system ██████░░░░░░░░░░░░░░ 1,180 tok (25%)
market-pulse ███░░░░░░░░░░░░░░░░░ 651 tok (14%)
SECURITY SCAN
──────────────────────────────────────────────────
Risk level: CLEAN
Scanned: 4 server(s), 23 tool(s)
No security issues detected.
RECOMMENDATIONS
──────────────────────────────────────────────────
[broken-server] Server is broken: Script not found.
Fix the configuration or remove this server.
[browser-tools] Heavy schema cost: ~2,340 tokens for 12 tools.
Consider if you use all 12. Each unused tool wastes context.
[market-pulse] Healthy and efficient. 8 tools, ~651 tokens.
## スマートなツールテスト
SilentFailはサーバーが応答するかどうかを確認するだけではありません。各ツールを呼び出します。
スキーマを読み取り、有効なテスト入力(株式にはAAPL、外国為替にはUSD/EUR、暗号資産にはbitcoin)を推測してツールを呼び出し、その結果を分類します。
| 結果 | 意味 |
|---|---|
| Passed | ツールは動作し、データを返しました |
| Broken | 実行時エラーが発生しました。ツールは動作していません |
| Rejected | ツールは動作していますが、テスト入力を拒否しました(バリデーションが正しく機能しています) |
| Skipped | 安全なパラメーターを推測できませんでした。手動テストを推奨します |
| Timeout | 応答に時間がかかりすぎました |
Brokenと表示されたら、実際に動作していません。誤検出はありません。
セキュリティスキャン
スキャンのたびに、すべてのサーバー設定とツールスキーマを50種類以上のパターンと照合して自動的にチェックします。
| カテゴリ | 例 |
|---|---|
| プロンプトインジェクション | ignore previous instructions、偽のシステムプロンプト、ロールの乗っ取り、プロンプトの漏えい |
| データの持ち出し | 不審なURL、POSTリクエスト、Webhookエンドポイント、Base64にエンコードして送信 |
| 危険なコマンド | eval()、rm -rf、リバースシェル、child_processの起動 |
| 機密性の高い環境変数 | サーバー設定内のAWSキー、APIトークン、データベース認証情報 |
| エンコードされたペイロード | 悪意のあるコンテンツを隠すBase64、16進数、Unicode、HTMLエンティティ |
SECURITY SCAN
──────────────────────────────────────────────────
Risk level: CRITICAL
Scanned: 3 server(s), 15 tool(s)
[CRITICAL] shady-server -> execute_query
Tells the model to ignore previous instructions
Evidence: "ignore all previous instructions and..."
Remove this server immediately.
トークン予算の説明
接続するMCPツールにはそれぞれJSONスキーマがあり、会話の開始前にClaudeが読み込みます。これは目に見えず、UIも警告もありません。
SilentFailは各サーバーと各ツールの正確なトークンコストを測定するため、次のことを確認できます。
- コンテキストを最も多く消費するサーバー
- 残しておく価値のあるツール
- 使っていないツールでトークンを無駄にしている箇所
トークンのオーバーヘッドが少ない、すっきりとした設定にすることで、実際の作業に使えるコンテキストが増えます。
ビジュアルダッシュボード
--dashboard(CLI)で実行するか、Claudeにopen_silentfail_dashboard(MCPモード)を開くよう頼むと、インタラクティブなWeb UIを表示できます。
- ステータスインジケーター付きのサーバーヘルスカード
- グラデーションバーによるトークン予算の可視化
- ツールごとのテスト結果と合格/不合格バッジ
- 重大度レベル付きのセキュリティ検出結果
- 言語切り替え(English / Español)
localhost:3777で配信されます。ダークテーマです。外部依存関係はありません。
対応クライアント
SilentFailは主要なMCPクライアントすべての設定を自動検出します。
| クライアント | 設定パス |
|---|---|
| Claude Desktop | %APPDATA%/Claude/claude_desktop_config.json |
| Claude Code | ~/.claude/settings.json |
| Cursor | ~/.cursor/mcp.json |
| VS Code | ~/.vscode/mcp.json |
| Windsurf | ~/.windsurf/mcp.json |
| プロジェクトレベル | .mcp.json、.claude/settings.json |
アーキテクチャ
Discovery Connect Test Tools Security Report
┌─────────────┐ ┌──────────────┐ ┌───────────────┐ ┌──────────────┐ ┌──────────────┐
│ Find configs │──>│ Spawn each │─>│ Infer params │>│ 50+ patterns │─>│ CLI output │
│ across all │ │ MCP server │ │ from schema │ │ Injection, │ │ MCP report │
│ clients │ │ via stdio │ │ Call & verify │ │ exfil, etc. │ │ Dashboard │
└─────────────┘ └──────────────┘ └───────────────┘ └──────────────┘ └──────────────┘
主要ファイル:
src/
discovery.ts — Config auto-detection across all clients
scanner.ts — Server connection, tool listing, testing
security.ts — Pattern-based security analysis (50+ rules)
server.ts — MCP server mode (Claude Desktop integration)
dashboard.ts — Web dashboard with i18n (EN/ES)
index.ts — CLI entry point
types.ts — TypeScript interfaces
FAQ
SilentFail自体もスキャンしますか?
いいえ。MCPサーバーとして実行すると、再帰を避けるため、SilentFailは自動的にスキャン対象から自身を除外します。
ツールテストを実行しても安全ですか?
はい。SilentFailは読み取り専用の最小限のテスト入力(株式ティッカー、通貨コード)でのみツールを呼び出します。破壊的な操作を送信することはありません。安全なパラメーターを推測できない場合、そのツールはスキップします。
CIで使用できますか?
はい。機械可読な出力にはsilentfail --test --jsonを使用してください。自動チェック用にJSONを解析できます。
必要なNodeのバージョンは?
Node 18以降です。ESモジュールとMCP SDKを使用します。
ライセンス
MIT — 好きなようにお使いください。
@decksagaが開発
推測するのはやめて、スキャンを始めましょう。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。