mcpField
M
MCP Gateway

MCP Gateway

ローカル
lasso.security開発ツール39740 週間前に更新

MCP Gateway について

MCP Gateway は、LLM と他の MCP サーバーの間に位置するプラグインベースのゲートウェイです。複数の MCP サーバーを束ね、機密情報のマスキングやサーバーの評判スキャン、ツール呼び出しの記録を行います。セキュリティを重視するエージェント環境を構築する開発者を対象としています。

主な機能

  1. 01mcp.json を読み込み、プロキシ対象サーバーのライフサイクルを管理
  2. 02リクエストとレスポンスの機密情報をマスキング
  3. 03get_metadata と run_tool による統一的な検出と実行
  4. 04サーバーの評判とツール説明を調べるセキュリティスキャナー
  5. 05xetrack によるツール呼び出しのトレーシング

活用シーン

  1. 01Cursor や Claude で複数の MCP サーバーを共通のガードレールのもとで管理
  2. 02ファイル読み取り時にトークンなどの認証情報が漏えいすることの防止
  3. 03MCP ツール呼び出しログの監査と分析

MCP 対応

MCP サーバーとして動作し、get_metadata と run_tool を公開するとともに、設定された他の MCP サーバーの機能をプロキシします。クライアントの設定ファイルからサーバー一覧を読み込み、その起動も管理します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

PyPI バージョン Python のバージョン ライセンス

MCP Gateway

概要

README の画像

MCP Gateway は、Model Context Protocol(MCP)サーバー向けの高度な仲介ソリューションであり、AI インフラストラクチャを一元化して強化します。

MCP Gateway は、LLM と他の MCP サーバーの間に立つ仲介役として機能します。次のことを行います。

  1. 📄 ルートディレクトリにある mcp.json ファイルからサーバー設定を読み込みます。
  2. ⚙️ 設定された MCP サーバーのライフサイクルを管理します。
  3. 🛡️ リクエストとレスポンスを傍受し、機密情報をサニタイズします。
  4. 🔗 プロキシされたすべての MCP を検出して操作するための統一インターフェースを提供します。
  5. 🔒 セキュリティスキャナー - MCP サーバーを読み込む前に、サーバーの評判とセキュリティリスクを分析します。

インストール

Python(推奨)

mcp-gateway パッケージをインストールします。

pip install mcp-gateway

--mcp-json-path - mcp.json または claude_desktop_config.json を指定する必要があります。
--plugin または -p - 有効にするプラグインを指定します(複数回指定できます)。

使用方法

この例では、トークンマスキング用の基本的なガードレールと、filesystem MCP 用の xetrack トレースプラグインを有効にします。

mcp-gateway --mcp-json-path ~/.cursor/mcp.json -p basic -p xetrack

「servers」キーの下に MCP サーバー設定を追加すると、Gateway の配下にさらに MCP を追加できます。

Cursor の例:
{
  "mcpServers": {
      "mcp-gateway": {
          "command": "mcp-gateway",
          "args": [
              "--mcp-json-path",
              "~/.cursor/mcp.json",
              "--plugin",
              "basic",
              "--plugin",
              "xetrack"
          ],
          "servers": {
              "filesystem": {
                  "command": "npx",
                  "args": [
                      "-y",
                      "@modelcontextprotocol/server-filesystem",
                      "."
                  ]
              }
          }
      }
  }
}
Claude の例:

<PYTHON_PATH> を取得します

which python
{
  "mcpServers": {
      "mcp-gateway": {
          "command": "<python path>",
          "args": [
            "-m",
            "mcp_gateway.server",
            "--mcp-json-path",
            "<path to claude_desktop_config>",
            "--plugin",
            "basic"
          ],
          "servers": {
              "filesystem": {
                  "command": "npx",
                  "args": [
                      "-y",
                      "@modelcontextprotocol/server-filesystem",
                      "."
                  ]
              }
          }
      }
  }
}
Docker

このリポジトリをクローンした後、イメージをビルドします

docker build -t mcp/gateway .
{
  "mcpServers": {
      "mcp-gateway": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "--mount", "type=bind,source=/Users/oro/Projects/playground/mcp-gateway,target=/app",
            "-i",
            "-v", "/Users/oro/.cursor/mcp.json:/config/mcp.json:ro",
            "-e", "LASSO_API_KEY=<LASSO_API_KEY>",
            "-v", "mcp-gateway-logs:/logs",
            "mcp/gateway:latest",
            "--mcp-json-path", "/config/mcp.json",
            "--plugin", "basic",
            "--plugin", "lasso"
          ],
          "servers": {
              "filesystem": {
                  "command": "npx",
                  "args": [
                      "-y",
                      "@modelcontextprotocol/server-filesystem",
                      "."
                  ]
              }
          }
      }
  }
}

この例では、Docker に環境変数や引数を渡す方法と、filesystem MCP 用のストレージをマウントする方法を示すために、lasso と基本的なガードレールを使用します。 Docker イメージは、特定のプラグインが必要とするオプションの依存関係(例:presidio)を含めてビルドできます。
docker build コマンドで INSTALL_EXTRAS ビルド引数を使用してください。必要な追加機能をカンマ区切りの文字列で指定します(例:"presidio,xetrack")。

クイックスタート

機密情報のマスキング

MCP Gateway はレスポンス内の機密トークンを自動的にマスキングし、必要な機能を維持しながら認証情報の漏えいを防ぎます。

  1. 機密情報を含むファイルを作成します。

    echo 'HF_TOKEN = "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"' > tokens.txt
    
  2. エージェントが MCP Gateway を通じてこのファイルの読み取りを要求した場合:

    • sonnet 3.7 でのテストを推奨します
    Use your mcp-gateway tools to read the ${pwd}/tokens.txt and return the HF_TOKEN
    

出力:

Hugging Face トークンのマスキング例

使用方法

このリポジトリのルートで python_env 設定を使用して、MCP Gateway サーバーを起動します。

mcp-gateway -p basic -p presidio

次のコマンドを使用してサーバーをデバッグすることもできます。

LOGLEVEL=DEBUG mcp-gateway --mcp-json-path ~/.cursor/mcp.json -p basic -p presidio

ツール

MCP が他の MCP サーバーへのプロキシを作成するために使用するツールは次のとおりです。

  • get_metadata - LLM が適切なツールやリソースを選択できるよう、利用可能なすべてのプロキシ対象 MCP に関する情報を提供します。
  • run_tool - リクエストとレスポンスをサニタイズした後、任意のプロキシ対象 MCP の機能を実行します。

プラグイン

貢献

プラグインシステムの仕組み、独自のプラグインの作成方法、または貢献方法の詳細については、プラグインシステムのドキュメントを参照してください。

ガードレール

MCP Gateway は、セキュリティと機能を強化するさまざまなプラグインに対応しています。組み込みのガードレールプラグインの概要は次のとおりです。

名前PII のマスキングトークン/シークレットのマスキングカスタムポリシープロンプトインジェクション有害なコンテンツ
basic❌✅❌❌❌
presidio✅❌❌❌❌
lasso✅✅✅✅✅

注: presidio プラグインを使用するには、別途インストールする必要があります:pip install mcp-gateway[presidio]。

Basic
mcp-gateway -p basic

基本的なシークレットのマスキング

  • azure クライアントシークレット
  • github トークン
  • github oauth
  • gcp api キー
  • aws アクセストークン
  • jwt トークン
  • gitlab セッション Cookie
  • huggingface アクセストークン
  • microsoft teams webhook
  • slack アプリトークン
Presidio
mcp-gateway -p presidio

Presidio は、識別と匿名化を行うパッケージです。

  • クレジットカード
  • IP
  • メールアドレス
  • 電話番号
  • SSN
  • その他
Lasso
mcp-gateway -p lasso
前提条件
  • Lasso Security に登録して、Lasso API キーを取得してください。

Lasso Security の高度な AI セーフティガードレールを使用するには、次のように mcp.json の設定を更新します。

  1. 環境変数に LASSO_API_KEY=<YOUR-API-KEY> を追加するか、「env」セクションに追加します。
  2. その他の MCP サーバー設定を servers キーの下に挿入します。

例:

{
  "mcpServers": {
      "mcp-gateway": {
          "command": "mcp-gateway",
          "args": [
              "--mcp-json-path",
              "~/.cursor/mcp.json",
              "-p",
              "lasso"
          ],
          "env": {
              "LASSO_API_KEY": "<lasso_token>"
          },
          "servers": {
              "filesystem": {
                  "command": "npx",
                  "args": [
                      "-y",
                      "@modelcontextprotocol/server-filesystem",
                      "."
                  ]
              }
          }
      }
  }
}
機能

🔍 常時監視により、MCP のやり取りを完全に可視化します。

🛡️ セキュリティを最優先した組み込みの保護機能により、プロンプトインジェクションや機密データの漏洩など、生成 AI 固有の脅威をリアルタイムで軽減します。

✨ 柔軟な自然言語を使って、ビジネス固有のニーズに合わせたセキュリティポリシーを作成できます。

⚡ どのようなデプロイ方式でも、すばやく簡単にインストールできます。直感的で使いやすいダッシュボードを使って、数分で MCP との間のデータフローを監視できます。

Lasso のガードレールは、リクエストとレスポンスを処理する前に、Lasso の API を通じてコンテンツを確認し、セキュリティ違反がないかチェックします。

詳しくは、当社のウェブサイトをご覧ください 👉 Lasso Security。

トレーシング

Xetrack

xetrack は、ML 実験やベンチマークの追跡、構造化データの監視を行う軽量なパッケージです。

これを使用して、ログ(loguru)または duckdb と sqlite で、ツール呼び出しのデバッグと監視を行えます。 .

mcp-gateway -p xetrack

前提条件

pip install xetrack

パラメーター
  • XETRACK_DB_PATH - sqlite データベースの場所です。
    • すべてのログは events テーブルに登録されます。
    • MCP のレスポンスから複雑なオブジェクトが返される場合は、取得方法について xetrack の アセットをご覧ください。
  • XETRACK_LOGS_PATH - ログの保存場所です。
  • FLATTEN_ARGUMENTS - 引数をフラット化します。デフォルトは true です。
  • FLATTEN_RESPONSE - レスポンスをフラット化します。デフォルトは true です。
  • ログの保存場所を gitignore に追加することをおすすめします。
  • データベースファイルの管理には DVC の使用をおすすめします。
クイックスタート
{
    "mcpServers": {
        "mcp-gateway": {
            "command": "mcp-gateway",
            "args": [
                "--mcp-json-path",
                "~/.cursor/mcp.json",
                "-p",
                "xetrack"
            ],
            "env": {
                "XETRACK_DB_PATH": "tracing.db",
                "XETRACK_LOGS_PATH": "logs/"                
            },
            "servers": {
                "filesystem": {
                    "command": "npx",
                    "args": [
                        "-y",
                        "@modelcontextprotocol/server-filesystem",
                        "."
                    ]
                }
            }
        }
    }
}

filesystem の list_directory ツールをパス "." で使用すると、logs/<date>.log で呼び出しパラメーターを確認できます。

データベースのクエリには、xetrack cli を使って調べることができます。

$ xt tail tracing.db --json --n=1
[
    {
        "timestamp": "2025-04-17 17:12:48.233126",
        "track_id": "mottled-stingray-0411",
        "meta": "f3be31e09667745f",
        "paths": null,
        "call_id": "deab617e-0a45-4950-9de9-3fb549810cf2",
        "capability_name": "list_directory",
        "content_type": "text",
        "content_annotations": "f3be31e09667745f",
        "response_type": "CallToolResult",
        "server_name": "filesystem",
        "capability_type": "tool",
        "isError": 0,
        "content_text": "[DIR] .cursor\n[DIR] .git\n[FILE] .gitignore\n[DIR] .pytest_cache\n[DIR] .venv\n[FILE] LICENSE\n[FILE] MANIFEST.in\n[FILE] README.md\n[DIR] docs\n[DIR] logs\n[DIR] mcp_gateway\n[FILE] pyproject.toml\n[FILE] requirements.txt\n[DIR] tests\n[DIR] tmp",
        "path": ".",
        "prompt": null
    }
]

Python を使用する場合

from xetrack import Reader

df = Reader("tracing.db").to_df()

duckdb cli と UI を使用する場合

$ duckdb --ui
D INSTALL sqlite; LOAD sqlite; ATTACH 'tracing.db' (TYPE sqlite);
D SELECT server_name,capability_name,path,content_text FROM db.events LIMIT 1;

┌─────────────┬─────────────────┬─────────┬────────────────────────────────────┐
│ server_name │ capability_name │  path   │            content_text            │
│   varchar   │     varchar     │ varchar │              varchar               │
├─────────────┼─────────────────┼─────────┼────────────────────────────────────┤
│ filesystem  │ list_directory  │ .       │ [DIR] .cursor\n[DIR] .git\n[FILE…  │
└─────────────┴─────────────────┴─────────┴────────────────────────────────────┘

もちろん、別の MCP サーバーを使って SQLite データベースにクエリを実行することもできます 😊

スキャナー

セキュリティスキャナーは、MCP サーバーを読み込む前に潜在的なセキュリティリスクを分析し、レピュテーション分析とツールの説明のスキャンを通じて、追加の保護レイヤーを提供します。

mcp-gateway --scan -p basic

機能:

  • 🔍 レピュテーション分析 - マーケットプレイス(Smithery、NPM)と GitHub のデータを使用してサーバーのレピュテーションを評価します
  • 🛡️ ツールの説明のスキャン - 隠された指示、機密ファイルのパターン、悪意のあるアクションを検出します
  • ⚡ 自動ブロック - レピュテーションスコア(しきい値:30)とセキュリティ分析に基づき、リスクのある MCP をブロックします
  • 📝 設定の更新 - スキャン結果で MCP 設定ファイルを自動的に更新します

クイックスタート

初期設定:

{
    "mcpServers": {
        "mcp-gateway": {
            "command": "mcp-gateway",
            "args": [
                "--mcp-json-path",
                "~/.cursor/mcp.json",
                "--scan"
            ],
            "servers": {
                "filesystem": {
                    "command": "npx",
                    "args": [
                        "-y",
                        "@modelcontextprotocol/server-filesystem",
                        "."
                    ]
                }
            }
        }
    }
}

初回の実行後、スキャナーは設定済みのすべての MCP サーバーを分析し、設定に blocked ステータスを追加します。

{
    "mcpServers": {
        "mcp-gateway": {
            "command": "mcp-gateway",
            "args": [
                "--mcp-json-path",
                "~/.cursor/mcp.json",
                "--scan"
            ],
            "servers": {
                "filesystem": {
                    "command": "npx",
                    "args": [
                        "-y",
                        "@modelcontextprotocol/server-filesystem",
                        "."
                    ],
                    "blocked": "passed"
                }
            }
        }
    }
}

ステータス値:

  • "passed" - サーバーはすべてのセキュリティチェックに合格しており、安全に使用できます
  • "blocked" - サーバーはセキュリティチェックに合格せず、読み込みがブロックされます
  • "skipped" - サーバーのスキャンはスキップされました(手動での上書き)
  • null - サーバーはまだスキャンされていないか、以前ブロックされていたサーバーが安全と判断されました

注記: 安全だと確信できる場合は、ブロックされたサーバーを手動で "skipped" に変更できます。

動作の仕組み

エージェントは、中央ルーター兼管理システムとして機能する MCP Gateway と直接やり取りします。基盤となる各 MCP は個別にラップされ、管理されます。

主な機能

汎用的なガードレール

  • リクエストとレスポンスの両方に設定可能なセキュリティフィルターを適用します。
  • 情報がエージェントに届く前に、機密データの漏えいを防ぎます。
  • ネイティブ機能にかかわらず、接続されたすべての MCP で一貫して機能します。

統合された可視性

  • すべての MCP を単一のインターフェースで確認できる包括的なダッシュボードを提供します。
  • MCP のリスクスコアによるインテリジェントなリスク評価を含みます。
  • リアルタイムのステータス監視とパフォーマンス指標を提供します。

セキュリティスキャナー

  • MCP サーバーのレピュテーションとツールの説明を分析し、読み込み前にセキュリティリスクを検出します。

高度なトラッキング

  • 各ガードレールのすべてのリクエストとレスポンスの詳細なログを保持します。
  • 有料トークンが必要な MCP 向けに、コスト評価ツールを提供します。
  • 最適化のために、使用状況の分析とパターンの特定を行います。
  • 他の MCP にリクエストを転送する前に、機密情報をサニタイズします。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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