mcpaudit について
mcpauditは、stdioのMCPサーバーを検査する決定論的なCLI兼MCPサーバーです。ハンドシェイク、ツール情報とスキーマ、エラー処理を検証し、根拠付きのスコアレポートを生成します。
主な機能
- 01MCPハンドシェイクの検査
- 02ツール名と説明の検証
- 03入力スキーマの整合性確認
- 04存在しないツールへのエラー応答を検査
- 05根拠付きスコアレポートの生成
活用シーン
- 01公開前のMCPサーバー監査
- 02クライアント設定内のサーバー検査
- 03CIに再現可能なMCPチェックを追加
- 04tools/list応答のオフライン検証
MCP 対応
mcpauditはクライアントと同様にstdioのMCPサーバーを起動して監査し、MCPクライアント設定も検査できます。また、自身のMCPサーバーは、サーバー、設定、tools/list配列を監査するツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 5 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| env | object | いいえ | サーバープロセスに追加する環境変数 |
| args | array | いいえ | コマンド引数。例:["-y", "@reneturcios/shipcheck", "mcp"] |
| command | string | はい | サーバーの起動コマンド。例:npx または node |
| timeoutMs | number | いいえ | 各ステップのタイムアウト時間(ミリ秒)。デフォルトは 60000 |
詳細
mcpaudit
任意の MCP サーバーを指定すると、スコアとその根拠が得られます。
MCP Registry には、これまで誰にも監査されたことのないサーバーが増えています。サーバーが説明のないツール(そのため、モデルが正しく呼び出せません)、互いに矛盾するスキーマ(存在しない required フィールドなど)、あるいは最も危険なケースとして、存在しないツールを呼び出しても何事もなかったかのように成功を返す場合があります。こうした問題は、本番環境でユーザーのエージェントが奇妙な動作をするまで表面化しません。
mcpaudit は、実際のクライアントと同じ方法でサーバーを起動し、ハンドシェイク全体を実行して、すべてのツールを検査し、意図的に不正な呼び出しを行います。そして、名前付きの、証拠に裏付けられた問題を含むスコア付きレポートを1つ出力します。監査では LLM を一切使用しないため、すべてのチェックは決定論的で再現可能です。
チェック項目
| チェック | 検証内容 |
|---|---|
| ハンドシェイク | サーバーが initialize を完了するか、またその所要時間 |
| プロトコルバージョン | ネゴシエートされたバージョンが存在し、このビルドで認識されるものか |
| サーバー情報 | serverInfo.name と serverInfo.version が存在するか |
| ツール名 | 存在し、一意で、MCP の文字数・長さのガイドラインに従っているか |
| 説明 | すべてのツールに、名前を繰り返すだけではない、ひとこと以上の説明があるか |
| 入力スキーマ | スキーマが存在し、オブジェクトスキーマであり、有効な properties と、実際に存在する required フィールドを備えているか |
| パラメーターのドキュメント | パラメーターの説明がすべて欠けているツールにフラグを付けます。モデルは説明から意味を推測します |
| エラー処理 | 存在しないツールの呼び出しに対し、サーバーを終了させることなく、適切なエラーをすばやく返すか |
| プロンプト/リソース | ツールがないサーバーが、そのことだけで失敗扱いされることはありません。プロンプト/リソースを公開している場合、mcpaudit はそれらを一覧表示し、そのサーバーの実態に即して監査します |
スコアリング:100点から開始し、エラーごとに8点、警告ごとに3点減点します。判定:PASS(問題なし)、WARN(動作しますが、問題によってユーザー離れや正確性の低下につながります)、FAIL(エラー重大度の問題あり)、UNREACHABLE(ハンドシェイクが完了しなかった場合。推測したスコアではなく、起動エラーとともに報告されます)。
mcpaudit は stdio サーバーを監査します。リモート(HTTP)サーバー(url を含む設定エントリー、またはコマンドとして渡された URL)は、その説明とともに UNREACHABLE と報告されます。黙ってスキップされたり、起動されたりすることはありません。
0.1.1 の新機能です。最初の本番環境検証バッテリー(25以上の外部サーバーをそれぞれ3回実行し、結果を生のグラウンドトゥルースと照合して手作業で確認)を受けて、-- で始まるサーバー引数はそのまま渡されるようになりました(「使い方」を参照)。プロンプト/リソースのみのサーバーも合格します。ステップごとのデフォルトタイムアウトは60秒なので、npx/uvx のコールドスタートがサーバーの停止と誤認されません。また、--json は常に解析可能なドキュメントを1つ出力します。
使い方
CLI
# Audit a server by its launch command
npx @reneturcios/mcpaudit audit npx -y @reneturcios/shipcheck mcp
npx @reneturcios/mcpaudit audit node dist/cli.js mcp
# Audit every server in an MCP client config (or one named entry)
npx @reneturcios/mcpaudit audit --config ~/.claude/claude_desktop_config.json
npx @reneturcios/mcpaudit audit --config ./mcp.json --server greenlight
# Server arguments that start with -- pass through untouched
npx @reneturcios/mcpaudit audit uvx mcp-server-git --repository /path/to/repo
# Use a literal -- to force everything after it into the server command
# (even flags that share a name with mcpaudit's own, like --timeout)
npx @reneturcios/mcpaudit audit node server.js -- --timeout 5000
# Quoted command line, machine-readable output, custom timeout
npx @reneturcios/mcpaudit audit --cmdline "npx -y @scope/pkg mcp" --json --timeout 30000
# Offline: validate a tools/list dump without launching anything
npx @reneturcios/mcpaudit tools tools.json
出力例:
mcpaudit npx -y @reneturcios/shipcheck mcp: PASS (score 100/100, grade A)
server: shipcheck 0.1.0 · protocol 2025-11-25 · 3 tool(s) · initialize 1813ms · tools/list 16ms
error handling: bad tool call returned a proper error
No issues found.
PASS: handshake, schemas, and error handling all check out.
(これは、最初の MCP Server Index のシードからの実際の実行結果です。2026-10-22。 初期化時間は起動時点から計測され、npx のコールドスタート時間を含み、その旨もレポートに記載されます。初期化の遅さがスコアに影響するのは、起動後にサーバー自体の処理が遅い場合に限られます。tools/list が5秒以内に応答するなら、30秒以上の初期化時間は、スコア対象外の起動経路の証拠として報告されます。その時間はランチャーや初回ダウンロードに費やされたものだからです。)
終了コード:PASS/WARN は0、FAIL/UNREACHABLE は1、使用方法のエラーは2です。CI ですぐに使えます。
MCP サーバー
MCP クライアントの設定に追加します。
{
"mcpServers": {
"mcpaudit": {
"command": "npx",
"args": ["-y", "@reneturcios/mcpaudit", "mcp"]
}
}
}
ツール:
audit_server:コマンドと引数(および任意の環境変数、タイムアウト)を指定して、1つのサーバーを起動・監査します。audit_config:設定ファイル内のすべてのサーバー、または名前を指定した1つのエントリーを監査します。audit_tools:tools/list 配列をオフラインで検証します。
Docker
docker run -i ghcr.io/cloudcorprecords/mcpaudit mcp
docker run --rm ghcr.io/cloudcorprecords/mcpaudit audit node server.js mcp
MCP Server Index
mcpaudit は、拡大を続ける公開データセット MCP Server Index を支えるエンジンです。このデータセットには、実際に公開された MCP サーバーのスコア付き監査結果が収録されており、公開バイナリを使って実行し、サーバーのリリースに合わせて更新されます。シードとなる、作者自身のツールファミリーは、他者を監査する前に自分自身を監査するという考えから最初に監査されました。100-packages workspace にあり、展開のたびに拡大していきます。
ツールキット
mcpaudit は、同じ作者が開発する小規模で単一目的の開発者向けツール群として計画されている Wave 1、package 4 です。すべて同じ方法で構築されており、CLI と MCP サーバーを提供する 1 つのバイナリ、証拠を伴う決定論的なチェック、そして回答を捏造しないことを特徴とします。
- greenlight:オープンソースへの貢献に向けた事前チェックです。この issue は実際にマージ可能でしょうか?
- shipcheck:リリースの検証です。git タグ、GitHub リリース、npm、MCP Registry、GHCR のすべてが一致しなければ、NO-GO となります。
- cidiff:PR のベースとヘッドの CI の差分を確認します。
- reprocheck:失敗を先に確認する再現性検証ツールです。
- prwatch:オープン中の PR に関する注意事項レポートです。
- claimcheck:フォーク上の古いクレームの状態と、保留中の修正を確認します。
- gatefile:隠れた貢献条件を抽出し、機械可読な contribution-gates.json にします。
- pkgverdict:npm パッケージのインストール前判定を行います。GO、RISKY、FAKE、MISSING のいずれかを返します。
開発
npm install
npm run build
npm test # validator/scoring unit tests + live probes against fixture servers
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。