mcpField
S
Silentfail

Silentfail

ローカル
github.com/decksaga開発ツール123 週間前に更新

Silentfail について

SilentFailは、対応クライアントのMCP環境を診断するコマンドラインツール兼MCPサーバーです。サーバーの稼働状況やツールを検査し、トークンコストや名前の競合を調べ、設定とスキーマのセキュリティリスクをスキャンします。

主な機能

  1. 01MCPクライアント設定の検出
  2. 02サーバーの稼働状況と起動時間の確認
  3. 03推定した入力値でツールをテスト
  4. 04トークンコストの測定と競合の検出
  5. 05セキュリティリスクのスキャン

活用シーン

  1. 01ローカルMCP環境で停止したサーバーを特定
  2. 02利用前にツールの動作を検証
  3. 03トークン負荷とツール名の重複を確認
  4. 04サーバー設定のプロンプトインジェクションパターンを検査

MCP 対応

MCPサーバーとして、SilentFailはMCPサーバーのスキャンとダッシュボード表示のツールを提供します。診断やJSON出力を行うコマンドラインツールとしても実行できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"silentfail": {
"command": "npx",
"args": [
"-y",
"silentfail"
]
}
}
}
起動コマンドnpx -y silentfail

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmsilentfail

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SILENTFAIL — MCP サーバーは失敗しています。まだ気づいていないだけです。



MCP サーバーは失敗しています。まだ気づいていないだけです。

接続するツールは、入力を始める前からトークンを消費します。壊れたサーバーは、何も知らせずに失敗します。 SilentFail は、ヘルスチェック、トークン監査、セキュリティスキャンを一度のスキャンで実行し、問題を見つけます。


README の画像 README の画像 README の画像 README の画像 README の画像




問題点

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が開発

推測するのはやめて、スキャンを始めましょう。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。