MCPVetter について
MCPVetterは、MCPサーバーを管理する人やAI生成コードを確認する人向けのローカル監査ツールです。設定のセキュリティリスクをスキャンし、許可を得てサーバーの説明を調べ、ツールのフィンガープリントの変化を追跡します。
主な機能
- 01MCP設定のオフライン静的スキャン
- 02ツール、プロンプト、リソースのライブ確認
- 03シークレット、過剰なアクセス、汚染された説明の検出
- 04サーバーツールのフィンガープリント変更追跡
- 05証拠を伏せ字にしたテキスト・JSONレポート
- 06ローカルMCPサーバーとしての実行
活用シーン
- 01利用前のMCPサーバー設定監査
- 02サーバーツール説明の不審な内容の確認
- 03サーバー更新後のツール変更の確認
- 04CIでのセキュリティスキャン実行
MCP 対応
MCPVetterはMCPサーバー設定を監査し、ローカルMCPサーバーとしても実行できます。ライブスキャンでは許可後にstdioサーバーを起動して一覧を読み取りますが、ツールは呼び出しません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcpvetter.com/mcpclaude mcp add --transport http com-mcpvetter-mcpvetter https://mcpvetter.com/mcp{"mcpServers":{"com-mcpvetter-mcpvetter":{"type":"http","url":"https://mcpvetter.com/mcp"}}}Cursor で開く{"servers":{"com-mcpvetter-mcpvetter":{"type":"http","url":"https://mcpvetter.com/mcp"}}}VS Code で開く{"mcpServers":{"com-mcpvetter-mcpvetter":{"type":"http","url":"https://mcpvetter.com/mcp"}}}{"mcpServers":{"com-mcpvetter-mcpvetter":{"serverUrl":"https://mcpvetter.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
mcpvetter
AI アシスタントが使用する MCP サーバーを監査します。漏えいしたシークレット、バージョンが固定されていないパッケージや偽装パッケージ、リスクのある起動コマンド、暗号化されていないリモートサーバー、過度に広いファイルアクセス権限、汚染されたツールの説明、隠れた Unicode、ツールの乗っ取り、通知されないツールの変更を検出します。
npx mcpvetter scan # discover + static scan, offline
npx mcpvetter scan --live # also read each server's tool descriptions (asks first)
ローカルで動作し、アカウントもテレメトリーも不要です。静的スキャンでは MCP 設定ファイルのみを読み取ります。設定ファイルを変更することはありません。
検出結果の例
■ github
[HIGH] Plain-text secret in MCP config MCP-SECRET-001 · confidence high · static
server: github file: .mcp.json
Evidence: env GITHUB_PERSONAL_ACCESS_TOKEN=ghp_…[redacted 40 chars] (GitHub token)
Why it matters: Anything that can read this file, including other tools, backups, sync
folders, and anyone the file is shared or committed with, gets a working credential.
Fix: Rotate the credential first (removing it does not un-leak it), then reference it
from the environment or a secret store instead of the literal value. Claude Code and
Claude Desktop expand "${VAR}" in .mcp.json, Cursor expands "${env:VAR}", and VS Code
supports "${input:...}" prompts or an "envFile".
すべての検出結果には、安定した ID、重大度と信頼度、それぞれ個別の評価、秘匿化された証拠、平易な説明、具体的な修正方法が含まれます。各ルールのチェック内容と方法は、mcpvetter.com/rules および src/scanner/rules で公開されています。
検出されるクライアント
Claude Code(~/.claude.json、.mcp.json)、Claude Desktop、Cursor(~/.cursor/mcp.json、.cursor/mcp.json)、VS Code(mcp.json、settings.json、.vscode/mcp.json)、Windsurf、Gemini CLI。--config <file> を指定して実行することもできます。
コマンド
mcpvetter scan [--live] [--yes] [--config <file>]... [--json [file]] [--summary] [--fail-on <severity>]
mcpvetter list inventory only
mcpvetter explain MCP-POISON-001 explain a finding
mcpvetter rules every rule and what it checks
mcpvetter suppress <ID> --server <name> --reason "<why>"
mcpvetter accept <server> --reason "<why>" accept a server's new tool fingerprint
mcpvetter serve run as a local MCP server (stdio)
終了コード:0 は --fail-on(デフォルトは high)以上の検出結果がない場合、1 はその基準以上の検出結果がある場合、2 はスキャンを完了できなかった場合です。そのまま CI で使用できます。
抑制した項目は常にレポートに一覧表示されるため、共有レポートで隠すことはできません。
--live について
ツールの説明を読み取るには、MCPVetter は stdio サーバーをそれぞれ起動する必要があります。これは AI クライアントが起動のたびに行うのと同じです。各サーバーの起動前に確認を求め、最小限の環境に設定ファイルで宣言された環境変数を加えて実行し、initialize、tools/list、prompts/list、resources/list のみを呼び出します。ツールを呼び出すことはありません。最初に承認されたプローブでは、各サーバーのツールのフィンガープリントを ~/.mcpvetter/fingerprints.json に記録します。以降のプローブでは、変更があれば「ラグプル」として変更前後の差分とともに報告します。
AI アシスタント内で使用する
Claude Code:
claude mcp add mcpvetter -- npx -y [email protected] serve
Cursor/VS Code/Claude Desktop(mcpServers または servers):
{ "mcpServers": { "mcpvetter": { "command": "npx", "args": ["-y", "[email protected]", "serve"] } } }
続けて、「MCP の設定を監査して」と尋ねます。
アカウントなしで無料で利用できます:check_mcp_setup、explain_finding。API キー(MCPVETTER_API_KEY。無料プランは mcpvetter.com/account で利用できます)を使用すると、review_code、secure_pattern、start_lab、check_lab、team_posture を利用できます。コードレビューはお使いのマシン上で実行されます。履歴のために送信されるのはルール ID と件数のみです。プランについては mcpvetter.com/pricing をご覧ください。
プライバシー
- 静的解析はお使いのマシン上で実行されます。API キーがない場合、MCPVetter はネットワークリクエストを行いません。
- API キーを使用する場合、送信されるのはルール ID、重大度、件数のみです。コード、証拠、ファイルパス、サーバー名は送信されません。
- レポートではデフォルトでシークレットの値が秘匿化されます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。