mcp slim guard について
MCP Slim Guard は、ホストと認可済みのアップストリームツールの間に入る軽量な MCP セキュリティプロキシです。アップストリームを呼び出す前に元のスキーマで引数を検証し、大きな結果も再実行せずに正確に復元できます。アルファ版であり、ツールへのアクセス範囲を制限したいチーム向けです。
主な機能
- 01Native、Compact、Extreme の3つのホストモード
- 02許可・拒否ルールによるツール認可
- 03元のスキーマに基づく引数検証
- 04result_ref による結果の正確な復元
- 05認可済みカタログに限定した検索
活用シーン
- 01Claude Code や Codex に対するMCP ツールアクセスの制限
- 02特権ツール呼び出し前の引数検証
- 03再実行せずに大きなツール結果を分割して読み取り
MCP 対応
認可されたアップストリームツールを MCP クライアントに公開する MCP サーバーとして動作し、結果を読み取るための read_result ツールも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Slim Guard
MCP Slim Guard は、ホストが認可済みの上流ツールにアクセスするための明確な方法を 1 つ提供します。入力スキーマをそのまま保ち、上流を呼び出す前に呼び出しを検証し、上流を再度呼び出すことなく、大きすぎる結果を正確に復元できます。
モードを選択する
| モード | ホストに表示される内容 | 最適な用途 |
|---|---|---|
| Native | 認可済みの元のツール名と完全なスキーマ、および read_result | Codex を含む、標準的な MCP カタログを適切に扱えるホスト |
| Compact | find_tool、call_tool、read_result。検索結果には、一致したツールそれぞれの完全な元のスキーマが含まれます | 小規模で予測しやすいホスト向けインターフェース |
| Extreme | Compact と同じツールインターフェースとスキーマ。十分に大きな結果に限り、復元可能な短い初回配信を行います | 初回結果を小さくする価値がある、コンテキストに応じて動作するホスト |
start のデフォルトは Compact です。Codex のデフォルトのインストールプランは Native です。Claude Code のデフォルトは Compact です。Claude Code では Compact と Extreme のインストールプランをサポートしており、Native はサポートしていません。
すべてのモードで、同じ許可/拒否認可が適用されます。Compact と Extreme では、検索結果は最大 3 件で、それぞれに元の必須フィールド、列挙値、ネストされたスキーマが含まれます。上流サーバーに接続する前に、呼び出しは元のスキーマに照らして検証されます。
find_tool は、不明なフィールドや 256 Unicode コードポイントを超えるクエリをローカルで拒否します。検索対象は現在認可されているカタログのみで、認可されていないエントリにはフォールバックしません。
クイックスタート
0.1.1-alpha.2 はソース候補で、まだ npm に公開されていません。この候補をレビュー済みのチェックアウトから実行します。
npm ci
npm run build
npm link
cd /path/to/project-with-mcp-config
mcp-slim-guard init
mcp-slim-guard validate
# Run the default Compact mode.
mcp-slim-guard start
init は、バージョン 2 の mcp-slim-guard.yml を書き込みます。このファイルには上流とセキュリティの設定のみが含まれます。モードは YAML ではなく、ホストコマンドで選択してください。
# Inspect a host-specific plan without changing host files.
mcp-slim-guard plan --host codex
mcp-slim-guard plan --host claude-code --mode extreme
# Verify the configured runtime without changing Host configuration or calling a business Tool.
mcp-slim-guard verify --host codex
# Apply a reviewed plan.
mcp-slim-guard install --host codex --mode native
ホストのエントリ
Codex で標準的な認可済み MCP カタログを使う場合は、Native を使用してください。
[mcp_servers.slim_guard]
command = "mcp-slim-guard"
args = ["start", "--mode", "native"]
cwd = "/absolute/path/to/project"
Claude Code では、デフォルトで Compact を使用してください。
{
"mcpServers": {
"slim-guard": {
"command": "mcp-slim-guard",
"args": ["start", "--mode", "compact"],
"cwd": "/absolute/path/to/project"
}
}
}
詳しい設定手順と検証手順については、ホストのセットアップを参照してください。
設定
version: 2
tools:
allow:
- "upstream_*"
deny:
- "*_delete_*"
ssrf:
mode: block
block_private_ips: true
allow_domains: []
block_domains: []
rate_limit:
default: "60/min"
injection_detection:
enabled: true
sensitivity: medium
mode: block
audit:
output: file
filePath: mcp-slim-guard-audit.log
servers:
upstream:
command: npx
args: ["-y", "@your/mcp-server"]
バージョン 1 の設定は意図的にサポートしていません。削除された compressor セクションは、自動的に移行するのではなく、拒否されます。
無効な呼び出しを修正する
引数が認可済みツールの元のスキーマと一致しない場合、Slim Guard は、スキーマエラーを特定し、上流ツールが呼び出されていないことを確認する structuredContent を含む、通常の MCP ツールエラーを返します。引数を修正して再試行してください。送信された引数の値がエラーに含まれることはありません。
結果の復元
応答を復元可能な形で配信する必要がある場合、最初の応答には result_ref が含まれます。query を指定して read_result を使用すると、最大 3 件のサイズ制限付きローカルフラグメントを検索できます。または、query を省略し、next_cursor に従って正確なスナップショットを復元できます。どちらの方法でも同じ不変のキャプチャを使用し、上流ツールを再度呼び出すことはありません。query と cursor は併用しないでください。Native と Compact では標準の配信境界を使用します。Extreme では、初回に配信される応答が正確な応答のサイズの半分以上である場合に限り、より小さな境界を使用します。それ以外の場合は、正確な応答をそのまま通過させます。
エビデンスとチェック
このリポジトリには、24 タスクのモード比較、結果復元のフィクスチャ、100 ツール/8,000 行のストレスフィクスチャが含まれています。現在のアーティファクトを次のコマンドで実行してください。
npm run build
npm run bench:task
npm run bench:compression
npm run bench:stress
npm run bench:compression:verify
各レポートはモードごとに異なり、ローカルで生成されます。以前のアルファ版ベンチマークの数値を、この製品ラインの主張として扱わないでください。
開発
npm run build
npm run typecheck
npm run lint
npm test
npm run verify:package-boundary
npm run smoke:package
このプロジェクトはアルファ版です。権限が必要なツールで使用する前に、認可パターンとアップストリームの設定を確認してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。