mcp-server-health-monitor について
mcp-server-health-monitorは、MCPサーバーのプロトコルレベルの稼働確認と履歴管理を行うMCPサーバーです。開発者向けに、list_toolsで対象を確認し、監視データをローカルのSQLiteに保存します。
主な機能
- 01list_toolsによるプロトコル確認
- 02クライアント設定からサーバーを自動検出
- 03ツールスキーマの変更検出
- 04SQLiteへの遅延・稼働履歴の保存
- 05HTMLステータスダッシュボードの生成
- 06バックグラウンドでの定期ポーリング
活用シーン
- 01設定済みMCPサーバーの応答確認
- 02遅延増加やサーバー劣化の調査
- 03更新後のツールスキーマ変更の検出
MCP 対応
MCPサーバーとして、稼働確認、状態、履歴、サーバー登録、更新検出、ダッシュボード出力のツールを公開します。対象サーバーにはlist_toolsを読み取り専用で呼び出して確認します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー ヘルスモニター
npm mcp-server-health-monitor パッケージ
HTTP だけではなく、プロトコルを通じて動作する、MCP ネイティブのヘルスモニタリングです。ポートに ping を送る代わりに、各サーバーで list_tools を呼び出します。これはエージェントが使用するものと同じハンドシェイクであり、ステータスが緑色なら、サーバーが実際に MCP リクエストを処理できる状態であることを意味します。すべてのヘルス履歴はローカルの SQLite に保存されるため、外部の監視サービスは必要ありません。
ツールのリファレンス | 設定 | コントリビューション | トラブルシューティング
主な機能
- 自動検出:既存の MCP 設定ファイル(Claude Desktop、Cursor、VS Code)を追加設定なしで読み込みます。
- 非侵襲的なプローブ:対象サーバーで
list_toolsのみを呼び出します。読み取り専用で、副作用はありません。 - バージョン差分の検出:チェック間でツールスキーマを比較し、サーバーが更新されたことを検出します。
- 履歴トレンド:レイテンシ履歴を SQLite に保存します。保存された履歴から p50/p95 をオンデマンドで算出し、障害になる前に性能低下を把握できます。
- HTML ダッシュボード:サーバーごとの稼働時間をスパークラインで表示する、自己完結型のヘルスダッシュボードを生成します。
- バックグラウンドポーリング:デーモンとして実行されるため、必要なときにいつでも最新のヘルスデータを取得できます。
汎用稼働監視ツールではなく、これを選ぶ理由
汎用稼働監視ツール(UptimeRobot、Pingdom、BetterStack)は、ポートが開いているか、HTTP エンドポイントが 200 を返すかをチェックします。MCP サーバーにはそれだけでは不十分です。サーバーが稼働中でも、MCP プロトコルのネゴシエーションに失敗したり、壊れたツールスキーマを返したりすることがあります。
| mcp-server-health-monitor | 汎用稼働監視ツール | |
|---|---|---|
| プローブ方法 | MCP list_tools 呼び出し — 実際のプロトコルをテストします | HTTP ping または TCP ポートチェック |
| スキーマ差分の検出 | バージョン間でツールのシグネチャが変化したことを検出します | プロトコルを認識しない限り不可能です |
| 設定の自動検出 | Claude Desktop、Cursor、VS Code の設定を自動的に読み込みます | サーバーごとに URL を手動で入力 |
| データの保存場所 | ローカルの SQLite。外部サービスは不要 | ヘルスデータはベンダーのクラウドに保存 |
| 費用 | 無料、セルフホスト可能 | 無料プランには制限あり。履歴/アラートには有料プランが必要 |
MCP サーバーが本当に正常であることを知りたい場合、つまり単に「プロセスが実行中」であること以上を確認したい場合は、このツールが最適です。
要件
- Node.js v20.19 以降。
- npm。
はじめに
以下の設定を MCP クライアントに追加します。
{
"mcpServers": {
"health-monitor": {
"command": "npx",
"args": ["-y", "mcp-server-health-monitor@latest"]
}
}
}
モニターは、登録先と同じ設定ファイルから他の MCP サーバーを自動検出します。追加の設定は必要ありません。
MCP クライアントの設定
Amp · Claude Code · Cline · Cursor · VS Code · Windsurf · Zed
最初のプロンプト
すべてが動作していることを確認するには、MCP クライアントで以下を入力します。
Check the health of all my MCP servers.
クライアントには、各サーバーの現在のレイテンシとヘルス状態を示すステータステーブルが表示されます。
ツール
ヘルスチェック(3 つのツール)
health_check_all—list_toolsを通じて、設定済みのすべてのサーバーを並列にプローブし、レイテンシを測定して結果を保存します。省略可能なtimeout_msパラメーターを受け付けます(デフォルト:5000)。get_server_status— レイテンシ、最終確認時刻、過去 24 時間のエラー数、最新のエラーメッセージ、p50/p95 のレイテンシパーセンタイルなど、サーバーごとの詳細を返します。server_nameが必要です。list_degraded— オフラインのサーバー、またはレイテンシがしきい値を超えているサーバーを絞り込みます。省略可能なlatency_thresholdによる上書きを受け付けます。
履歴(1 つのツール)
get_history— 特定のサーバーの生のヘルスチェック履歴を、最新のものから順に返します。server_nameが必要です。省略可能なlimitを受け付けます(デフォルト:50、最大:500)。
サーバーレジストリ(2 個のツール)
configure_server— 監視対象として新しい MCP サーバーを登録します。この方法で追加したサーバーは~/.mcp/extra-servers.jsonに保存され、自動検出されたサーバーと統合されます。必須:name、command。任意:args、env。remove_server— 手動で登録したサーバーを監視対象から削除します。configure_serverで追加したサーバーだけに影響し、自動検出されたサーバーには影響しません。nameが必要です。
更新(1 個のツール)
check_updates— 各プローブでツールスキーマをハッシュ化し、最後に保存されたハッシュと比較してバージョンの不一致を検出します。サーバーごとにhas_changed、previous_hash、current_hash、changed_atを返します。
エクスポート(1 個のツール)
export_dashboard— 概要カード、サーバーごとの状態テーブル(p50/p95 レイテンシ付き)、インライン SVG の稼働時間スパークラインを含む、自己完結型の単一ファイル HTML ダッシュボードを生成します。省略可能なoutput_pathを指定すると、ディスクに書き込みます。
サーバーレジストリの手動登録
MCP 設定ファイルからの自動検出に加えて、configure_server ツールを使用すると、Claude Desktop の設定に含まれていないサーバーを登録できます。手動登録したサーバーは ~/.mcp/extra-servers.json(正常性データベースと同じ場所)に書き込まれ、各プローブで自動検出されたサーバーと統合されます。
Add a server named "my-internal-tool" running with command "node" and args ["/opt/tools/server.js"]
手動登録したサーバーの監視を停止するには:
Remove the server named "my-internal-tool" from monitoring
Claude Desktop の設定から検出されたサーバーは remove_server で削除できません。削除するには、MCP 設定ファイルを直接編集してください。
設定
--interval / --interval-seconds
各 MCP サーバーをポーリングする間隔(秒)です。
型:number
デフォルト:60
--latency-threshold
サーバーを劣化状態と判定するレイテンシのしきい値(ミリ秒)です。
型:number
デフォルト:1000
--db / --db-path
正常性の履歴を保存する SQLite データベースファイルのパスです。
型:string
デフォルト:~/.mcp/health.db
--daemon
バックグラウンドポーリングデーモンとして実行します。正常性データはオンデマンドではなく、継続的に収集されます。
型:boolean
デフォルト:false
--startup-grace-seconds
新しく起動したサーバーを異常と見なすまでの猶予期間(秒)です。
型:number
デフォルト:10
JSON 設定の args プロパティでフラグを渡します:
{
"mcpServers": {
"health-monitor": {
"command": "npx",
"args": ["-y", "mcp-server-health-monitor@latest", "--interval=30", "--latency-threshold=500"]
}
}
}
掲載先
- MCP Registry に掲載されています —
mcp-server-health-monitorを検索してください。 - MCP Market に掲載されています —
mcp-server-health-monitorを検索してください。
検証
新しいバージョンを公開する前に、MCP Inspector でサーバーを検証し、すべてのツールが正しく公開され、プロトコルのハンドシェイクが成功することを確認してください。
対話型 UI(ブラウザーを開きます):
npm run build && npm run inspect
CLI モード(スクリプト/CI 向け):
# List all tools
npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
# List resources and prompts
npx @modelcontextprotocol/inspector --cli node dist/index.js --method resources/list
npx @modelcontextprotocol/inspector --cli node dist/index.js --method prompts/list
# Call a tool (example — replace with a relevant read-only tool for this plugin)
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name health_check_all
# Call a tool with arguments
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name health_check_all --tool-arg key=value
公開前に実行して、ツール登録やランタイム起動のリグレッションを検出してください。
コントリビューション
プローブモジュールは src/probes/ にあります。各プローブは status、latencyMs、および省略可能な message を含む ProbeResult を返す必要があります。すべてのプローブは読み取り専用にしてください。監視対象のサーバーで副作用を引き起こしてはいけません。
npm install && npm test
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。