mcpField
M
mcp-audit

mcp-audit

ローカル
github.com/saagpatelセキュリティ42 週間前に更新

mcp-audit について

mcp-auditは、設定済みMCPサーバーと宣言された機能を点検するコマンドラインツールです。個人やCIで設定リスクを確認でき、静的検査と任意の接続検査を行いますが、検出結果は安全性の判定ではなく確認材料です。

主な機能

  1. 01MCP設定の静的検査
  2. 02サーバーが公開するツールの一覧
  3. 03検出項目の評価と根拠表示
  4. 04保存済みベースラインとの比較
  5. 05JSON、SARIF、HTMLレポート出力
  6. 06ローカルポリシーファイルの評価

活用シーン

  1. 01単一のMCP設定ファイルの検査
  2. 02CIでのSARIFレポート生成
  3. 03保存済みベースラインとの設定比較
  4. 04ローカルポリシーに基づく設定確認

MCP 対応

MCPサーバーの設定を確認し、任意で接続して公開ツールのメタデータを一覧できます。既定は静的検査で、接続検査ではローカルプログラムの起動や設定済みエンドポイントへの接続が発生する場合があります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"saagpatel-mcp-audit": {
"command": "uvx",
"args": [
"mcp-audits"
]
}
}
}
起動コマンドuvx mcp-audits

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

パッケージ
pypimcp-audits2.12.0

ツール

13

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
skip_connectbooleanいいえ

詳細

mcp-audit

PyPI Python CI CodeQL License: MIT

AI ツールの MCP サーバーが何にアクセスできるかを確認しましょう。

MCPAudit は MCP サーバーの設定を確認し、要求に応じてサーバーが公開するツールを一覧表示します。宣言された機能、指示のようなテキストに関するヒューリスティック、保存済みのピンからの変更を明示することで、何を調査すべきか判断できるようにします。検出結果は確認のためのシグナルです。スコアが高い場合、機能の公開範囲が広いことを示しますが、サーバーが悪意のあるものや危険なものであることを意味するわけではありません。

重要

パッケージ名は mcp-audits、コマンド名は mcp-audit です。 デフォルトのチェックは静的です。check --connect、--connect-all、および従来の scan は、設定されたローカルプログラムを起動したり、設定されたエンドポイントに接続したりする場合があります。パッケージの 検証、ダウンロード、LLM 分析は、それぞれ別途オプトインが必要です。 MCPAudit は設定を編集せず、環境変数の値ではなくキー名をレポートします。 生成されたレポートは、共有する前に確認してください。

試してみる

mcp-audit                              # static review of supported configs
mcp-audit check --config ./mcp.json    # review this file only; no connections
mcp-audit demo                         # see a bundled synthetic example
mcp-audit explain MCP007               # explain a finding offline; no config reads

uv でインストールします。

uv tool install mcp-audits

インストールせずに実行することもできます。

uvx --from mcp-audits mcp-audit demo

検出結果への対処

まず、推奨される対応を確認し、名前が挙げられている機能や証拠を調べます。 たとえば、ファイルシステムサーバーが広範囲に書き込みできる場合は、設定されている ディレクトリを制限して、レポートを再度確認します。パターンに基づく指示のチェックでは、 言い換えられたテキストや難読化されたテキストを見逃すことがあり、人による確認が必要な場合もあります。 問題がないレポートは、安全性の証明ではありません。

Review the server's configured access, narrow it if needed, then run the check again.

ガイド付きの手順についてははじめにを、スコア、検出結果、カバレッジの解釈については 結果の読み方を参照してください。仕組みでは、チェックの範囲を説明しています。

各ルールの意味、起こりうる影響、手動での修正方法、確信度の限界については、 検出結果リファレンスを参照してください。mcp-audit explain MCP013 を実行すると、 同じ項目をオフラインで表示できます。明示的に指定された --config のソースには 「明示的なファイル。Claude 形式の設定として解析」と表示されます。パーサーの識別情報だけでは、 そのファイルをどのクライアントが使用するかは特定できません。

静的なツールメタデータのチェックでは、不正な MCP ヘッダーアノテーション、 ヘッダーに割り当てられた認証情報パラメーター、外部スキーマ参照、 予期しないアイコンソースも検出します。これらのチェックは、スキーマやアイコンを取得せずに、 提供されたメタデータを検査します。

CI での使用

MCPAudit は SARIF を出力し、ローカルのポリシーファイルを評価できます。 まず設定のみの CI から始め、ワークフローでサーバーを起動する必要がある場合に限り、 接続チェックを有効にしてください。CI ガイドと ポリシーの例を参照してください。

リリースを固定した使用例では、複合 Action を使って SARIF を GitHub コードスキャンにアップロードできます。

- uses: saagpatel/[email protected]

リリースチェックリストでは、新しい公開リリースが利用可能になったときにメンテナーが例を更新できるよう、 Action の参照箇所を示しています。リポジトリで有効にする前に、Action の権限と入力を確認してください。

レビュー方法を選ぶ

目標開始点動作
出力を確認するmcp-audit demo同梱の合成入力を使用します
1 つのファイルをレビューするmcp-audit check --config FILE選択した設定ファイルを静的にチェックします
共有用カードを作成するmcp-audit checkup --config FILE --card checkup.html件数のみを含むローカル HTML プレビューを書き出します
検出されたソースを確認するmcp-audit inspectID とソースの状態を一覧表示します
1 つのサーバーを検査するmcp-audit check --connect --server ID一意に特定できる ID に接続します
複数サーバーを検査するmcp-audit check --connect-allワークステーションのサーバーに接続します。プロジェクトも対象にするには --connect-project-configs を追加します
ポリシーを自動化するmcp-audit check --policy FILEローカルポリシーを評価します
保存済みのピンをレビューするmcp-audit pin --statusベースラインの状態を表示します。pin は baseline pin の表示用エイリアスです

サーバーの ID は CLIENT:SCOPE:NAME です。選択が曖昧にならないよう、inspect に表示される正確な ID を使用してください。接続チェックでは、設定されたローカルコマンドを起動したり、エンドポイントに接続したりする場合があります。

checkup は、既定では名前を含まない、件数のみの共有用カードをローカルに書き出します。 詳しくはcheckup ガイドを参照してください。

証拠を文脈に沿って確認する

設定に基づく検出結果は、宣言されたアクセスを示します。接続して取得した一覧には、サーバーが提供するツールのメタデータが加わりますが、サーバーが後でどのように動作するかを証明するものではありません。接続した HTTP スキャンでは、認証情報を含まない server/discover リクエストを 1 回送信し、401 の場合は範囲を限定して公開されている認可メタデータを確認します。このプローブは設定内のヘッダー値を使用せず、--skip-connect を指定した場合や、接続を明示的に許可していないプロジェクトソースに対しては実行されません。これらの観察結果は、OAuth フローが完了したことを証明するものではありません。オプションのカナリアは範囲が限定されており、文書化された制限の範囲内で、対象となるツールのみを実行します。これらの観察の境界については、仕組みを参照してください。

レポートには、設定の構造、ツール名、証拠のテキストが含まれる場合があります。シークレットのマスキングはベストエフォートです(既知の問題)。共有する前にレポートを確認してください。設定は全体を解析しますが、解析中に環境変数の値は破棄され、レポートに記載されることはありません。レポートには文脈を示すためにキー名が保持されます。出力仕様では、安定したフィールドと、これらの出力の制限を説明しています。

ステータス

スタック

MCPAudit は Python 3.11 以降、uv、pytest、Ruff、mypy を使用しています。JSON、SARIF、HTML の各レポートは、バージョン管理された公開インターフェイスです。変更を提案する前に make check を実行してください。

既知のリスク

静的検出結果は、設定されたアクセスと提供されたメタデータを示しますが、サーバーが後でどのように動作するかを証明するものではありません。シークレットのマスキングはベストエフォートです。リリースに伴う互換性の変更については、3.0 境界提案を参照してください。

次のステップ

ローカルでの変更には明示的な合成フィクスチャを使用し、読み取り専用の既定値を維持し、カバレッジに関する主張は完了したチェックに基づくようにしてください。rpds-py/PyO3 のロックを更新した後、Python 3.15 のサポートを再有効化します。3.0 のパッケージ分割と非推奨サーフェスの削除は、引き続き予定されている作業です。

その他のドキュメント

ピン留め、シャドーレビュー、 検出結果の抑制、トラストパケットガイド、 MCP トラストパケット、出力仕様、および サンドボックス用フィクスチャをご覧ください。ドキュメント索引、ラボ、 maintainers/ のメンテナー向け手順、および archive/ の過去の資料も参照してください。

コメント

MCP は初めてですか?

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

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