Secure MCP Gateway
Enkrypt AI Secure MCP Gatewayとは?
Enkrypt AI Secure MCP Gatewayは、MCPクライアントとMCPサーバーの間に位置するミドルウェアです。MCPサーバーとクライアントの両方として動作し、認証、動的なツールの自動検出、キャッシュ、および保護ルールなどの機能を提供します。Enkrypt AI Secure MCP Gatewayをどのように使用するか?
ユーザーは、設定ファイルを使用してMCPサーバーを設定し、Enkrypt APIを介して保護することができます。インストール後、MCPクライアントはゲートウェイに接続し、保護されたMCPサービスにアクセスできます。適用シナリオ
開発テスト環境や企業レベルのアプリケーション統合など、MCPサーバーへの安全なアクセスが必要なシナリオに適しています。主要機能
認証一意のキーを使用して認証を行い、MCPサービスには承認されたユーザーのみがアクセスできるようにします。
動的なツールの自動検出MCPサーバーが提供するツールを自動的に検出し、MCPクライアントに提供します。
保護ルール入力と出力の両方で保護ルールを適用し、悪意のあるリクエストや違反コンテンツを防止します。
キャッシュツールと設定情報をローカルまたは外部にキャッシュし、パフォーマンスを向上させます。
ログ記録すべてのリクエストとレスポンスを記録し、監視とデバッグを容易にします。
利点と制限
利点
強力な認証と保護機能を提供する
動的なツールの自動検出とキャッシュをサポートし、パフォーマンスを向上させる
設定と使用が容易で、複数のMCPサーバーをサポートする
制限
設定には一定の技術知識が必要です
一部の高度な機能はまだ開発中です
リモートMCPサーバーのサポートは限られています
使い方
リポジトリをクローンする
GitHubからEnkrypt AI Secure MCP Gatewayのリポジトリをクローンします。
仮想環境を設定する
仮想環境を作成してアクティブ化し、依存関係をインストールします。
インストールスクリプトを実行する
setup.shまたはsetup.batスクリプトを実行して、必要なコンポーネントをインストールします。
設定ファイルを編集する
enkrypt_mcp_config.jsonファイルを編集して、MCPサーバーの設定を追加します。
クライアントを再起動する
Claude Desktopまたは他のMCPクライアントを再起動して、変更を有効にします。
使用例
EchoサーバーをテストするEchoサーバーを使用して、MCPゲートウェイの基本機能をテストします。
GitHub MCPサーバーを保護するEnkrypt Guardrailsを使用してGitHub MCPサーバーを保護し、悪意のあるリクエストを防止します。
よくある質問
保護ルールを有効にするにはどうすればいいですか?
設定ファイルでenkrypt_guardrails_enabledをtrueに設定し、Enkrypt APIキーを追加します。
新しいMCPサーバーを追加するにはどうすればいいですか?
enkrypt_mcp_config.jsonファイルのmcp_config配列に新しいサーバー設定を追加します。
キャッシュをクリアするにはどうすればいいですか?
'clear cache'コマンドを使用するか、キャッシュファイルを手動で削除します。
関連リソース
Enkrypt AI公式ドキュメント
Enkrypt AIの完全なドキュメントとAPIリファレンスです。
GitHubリポジトリ
Enkrypt AI Secure MCP Gatewayのソースコードとサンプルです。
Enkrypt AI公式ウェブサイト
Enkrypt AIの管理画面とAPIキー取得ページです。
インストール
以下のコマンドをクライアントにコピーして設定
{
"mcpServers": {
"Enkrypt Secure MCP Gateway": {
"command": "C:\\Users\\PC\\Documents\\GitHub\\enkryptai\\enkrypt-secure-mcp-gateway\\.venv\\Scripts\\uv.EXE",
"args": [
"run",
"--with",
"aiohttp",
"--with",
"asyncio",
"--with",
"cryptography",
"--with",
"flask",
"--with",
"flask-cors",
"--with",
"mcp[cli]",
"--with",
"pyjwt",
"--with",
"python-dateutil",
"--with",
"python-json-logger",
"--with",
"redis",
"--with",
"requests",
"mcp",
"run",
"C:\\Users\\PC\\Documents\\GitHub\\enkryptai\\enkrypt-secure-mcp-gateway\\src\\gateway.py"
],
"env": {
"ENKRYPT_GATEWAY_KEY": "3_V8WZxKJp24alEui542WX6wVcgexH5EIBqZl1EssxDcFS9K4TVwZCmB9i_8KEQ5"
}
}
}
}
注意:あなたのキーは機密情報です。誰とも共有しないでください。
## 🚀 Enkrypt AI Secure MCP Gateway
*Enkrypt AI Secure MCP Gatewayは、認証、自動ツール検出、キャッシュ、ガードレール強制機能を備えたセキュアなMCPゲートウェイです。これは、MCPクライアントとMCPサーバーの間に位置し、クライアントとサーバーの両方の役割を果たします。*

## 🚀 クイックスタート
Enkrypt AI Secure MCP Gatewayを使用することで、MCPクライアントとMCPサーバー間の通信を安全に管理することができます。以下に、ゲートウェイのセットアップ手順を説明します。
## ✨ 主な機能

Enkrypt AI Secure MCP Gatewayは、以下の機能を提供します。
1. **認証**:ユニークキーを使用してゲートウェイとの認証を行います。EnkryptガードレールでMCPを保護する場合は、Enkrypt APIキーも使用します。
2. **使いやすさ**:すべてのMCPサーバーをローカルの設定ファイルまたはEnkrypt(近日公開予定)で構成し、ゲートウェイでそれらを名前で使用することができます。
3. **動的ツール検出**:ゲートウェイはMCPサーバーから動的にツールを検出し、MCPクライアントに利用可能にします。
4. **ツール呼び出しの制限**:MCPサーバーのすべてのツールにアクセスできる必要がない場合は、ゲートウェイ設定で明示的にツールを指定することで、許可されたツールのみをMCPクライアントがアクセスできるように制限することができます。
5. **キャッシュ**:ユーザーのゲートウェイ設定と、さまざまなMCPサーバーから検出されたツールを、ローカルまたはKeyDBなどの外部キャッシュサーバーにキャッシュして、パフォーマンスを向上させます。
6. **ガードレール**:各MCPサーバーに対して、入力側(MCPサーバーにリクエストを送信する前)と出力側(MCPサーバーからレスポンスを受信した後)の両方でガードレールを構成することができます。
7. **ロギング**:ゲートウェイからのすべてのリクエストとレスポンスを、ローカルのMCPログに記録し、またEnkrypt(近日公開予定)に転送して監視します。これにより、アカウントで行われたすべての呼び出し、使用されたサーバー、呼び出されたツール、ブロックされたリクエストなどを確認することができます。
### ガードレール

**入力保護**:トピック検出、NSFWフィルタリング、毒性検出、インジェクション攻撃防止、キーワード検出、ポリシー違反検出、バイアス検出、およびPII削除(システムプロンプト保護、著作権保護など、今後さらに機能が追加されます)。
**出力保護**:すべての入力保護に加えて、遵守チェックと関連性検証(幻覚検出など、今後さらに機能が追加されます)。入力時に削除された場合は、レスポンスを自動的に元に戻します。
## 📦 インストール
### 前提条件
<details>
<summary><strong>依存関係 🔗 </strong> 🔽</summary>
<br>
- `Git 2.43` 以上
- システムに `Python 3.11` 以上がインストールされており、`python` または `python3` コマンドでコマンドラインからアクセス可能であること
- システムに `pip 25.0.1` 以上がインストールされており、`pip` または `python -m pip` コマンドでコマンドラインからアクセス可能であること
- システムに `uv 0.7.9` 以上がインストールされており、`uv` または `python -m uv` コマンドでコマンドラインからアクセス可能であること
<br>
<details>
<summary><strong>バージョンを確認 🔍 </strong> 🔽</summary>
<br>
- Python、pip、uvがインストールされていることを確認します。
- 以下のコマンドのいずれかが失敗した場合は、それぞれのドキュメントを参照して適切にインストールしてください。
```bash
# ------------------
# Python
# ------------------
python --version
# 出力例
Python 3.13.3
# インストールされていない場合は、公式ウェブサイトからPythonをインストールし、再度バージョンを確認してください。
# ------------------
# pip
# ------------------
pip --version
# 出力例
pip 25.0.1 from C:\Users\PC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\pip (python 3.13)
# インストールされていない場合は、以下を試してから再度バージョンを確認してください。
python -m ensurepip
# ------------------
# uv
# ------------------
uv --version
# uvが直接見つからない場合は、"python -m" で実行します。
# これが機能する場合は、以降のすべてのuvコマンドの前に "python -m" を使用してください。
python -m uv --version
# 出力例
uv 0.7.9 (13a86a23b 2025-05-30)
# インストールされていない場合は、以下を試してから再度バージョンを確認してください。
python -m pip install uv
- Claude Desktop を 公式ウェブサイト からMCPクライアントとしてインストールし、ログインしてください。
- Linuxを使用しており、非公式バージョン のClaude Desktopを実行できない場合は、サポートされているMCPクライアント を使用してゲートウェイをテストすることができます。mcp cli
mcp install
コマンドをサポートしていない場合は、スクリプトコードを確認し、サポートされているコマンドを手動で実行してください。
- Linuxを使用しており、非公式バージョン のClaude Desktopを実行できない場合は、サポートされているMCPクライアント を使用してゲートウェイをテストすることができます。mcp cli
- リクエストをプロキシするMCPサーバーに必要なその他の依存関係。
- それぞれのMCPサーバーの指示に従って、依存関係をインストールしてください。
- 例:
Node.js
、npx
、docker
など。
- (オプション)KeyDBなどのキャッシュサーバーをインストールして実行する(外部でキャッシュを行い、ローカルでは行わない場合)。
Enkryptガードレールによるオプションの保護 🔒 🔽
EnkryptガードレールでMCPを保護する場合は、以下のことを行う必要があります。
- アカウントを持っていない場合は、新しいアカウントを作成してください。無料です! 🆓 クレジットカードは不要です 💳🚫
- Enkryptダッシュボード設定 から取得できる
ENKRYPT_API_KEY
。 - ガードレールでMCPを保護するには、デフォルトのサンプルガードレール
Sample Airline Guardrail
を使用して始めることができます。または、独自のカスタムガードレールを作成することもできます。 - カスタムガードレールを構成するには、Enkrypt AIアプリにログインするか、API/SDKを使用する必要があります。
ローカルインストール
1. リポジトリをクローンし、仮想環境をセットアップし、依存関係をインストールする
- リポジトリをクローンします。
git clone https://github.com/enkryptai/secure-mcp-gateway
cd secure-mcp-gateway
仮想環境をアクティブ化 ⚡ 🔽
# ------------------
# uv
# ------------------
uv init
# 出力例
Initialized project `enkrypt-secure-mcp-gateway`
# ------------------
# 仮想環境を作成
# ------------------
uv venv
# 出力例
Using CPython 3.13.3 interpreter at: C:\Users\PC\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\python.exe
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate
# ------------------
# 仮想環境をアクティブ化
# ------------------
# Windowsの場合、以下を実行します。
.\.venv\Scripts\activate
# Linux/Macの場合、以下を実行します。
source ./.venv/Scripts/activate
# アクティブ化後、ターミナルのファイルパスの前に (enkrypt-secure-mcp-gateway) が表示されるはずです。
# 例:
# (enkrypt-secure-mcp-gateway) C:\Users\PC\Documents\GitHub\enkryptai\secure-mcp-gateway>
# ------------------
# 仮想環境にpipをインストール
# ------------------
python -m ensurepip
# ------------------
# 仮想環境にuvをインストール
# ------------------
python -m pip install uv
- Pythonの依存関係をインストールします。
uv pip install -r requirements.txt
- mcp cliが正常にインストールされたことを確認します。
mcp version
# 出力例
MCP version 1.9.2
2. セットアップスクリプトを実行する
- このスクリプトは、
example_enkrypt_mcp_config.json
ファイルに基づいて、ルートディレクトリにenkrypt_mcp_config.json
ファイルを作成します。 UNIQUE_GATEWAY_KEY
とUNIQUE_UUID
を自動生成された値に置き換え、DUMMY_MCP_FILE_PATH
をテストMCPファイルtest_mcps/echo_mcp.py
の実際のパスに置き換えます。- また、Claude DesktopにMCPクライアントをインストールします。
- 注意:セットアップスクリプトを実行した後、Claude Desktopを再起動して、ゲートウェイが動作していることを確認してください。
# Linux/Macでは以下を実行します。
cd scripts
chmod +x *.sh
./setup.sh
# Windowsでは以下を実行します。
cd scripts
setup.bat
# 現在、Claude Desktopを再起動して、ゲートウェイが動作していることを確認します。
出力例 ℹ️ 🔽
-------------------------------
Setting up Enkrypt Secure MCP Gateway enkrypt_mcp_config.json config file
-------------------------------
1 file(s) copied.
Generated unique gateway key: 3_V8WZxKJp24alEui542WX6wVcgexH5EIBqZl1EssxDcFS9K4TVwZCmB9i_8KEQ5
Generated unique uuid: b8ac738a-7a2c-4030-8966-20fa1d91af3c
DUMMY_MCP_FILE_PATH: C:\Users\PC\Documents\GitHub\enkryptai\enkrypt-secure-mcp-gateway\test_mcps\echo_mcp.py
-------------------------------
Setup complete. Please check the enkrypt_mcp_config.json file in the root directory and update with your MCP server configs as needed.
-------------------------------
-------------------------------
Installing Enkrypt Secure MCP Gateway with gateway key and dependencies
-------------------------------
mcp is installed. Proceeding with installation...
ENKRYPT_GATEWAY_KEY: 3_V8WZxKJp24alEui542WX6wVcgexH5EIBqZl1EssxDcFS9K4TVwZCmB9i_8KEQ5
Package names only: flask flask-cors redis requests aiohttp python-json-logger python-dateutil cryptography pyjwt asyncio mcp[cli]
Dependencies string for the cli install command: --with flask --with flask-cors --with redis --with requests --with aiohttp --with python-json-logger --with python-dateutil --with cryptography --with pyjwt --with asyncio --with mcp[cli]
Running the cli install command: mcp install gateway.py --env-var ENKRYPT_GATEWAY_KEY=3_V8WZxKJp24alEui542WX6wVcgexH5EIBqZl1EssxDcFS9K4TVwZCmB9i_8KEQ5 --with flask --with flask-cors --with redis --with requests --with aiohttp --with python-json-logger --with python-dateutil --with cryptography --with pyjwt --with asyncio --with mcp[cli]
Initializing Enkrypt Secure MCP Gateway Common Utilities Module
Initializing Enkrypt Secure MCP Gateway Module
--------------------------------
SYSTEM INFO:
Using Python interpreter: C:\Users\PC\Documents\GitHub\enkryptai\enkrypt-secure-mcp-gateway\.venv\Scripts\python.exe
Python version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
Current working directory: C:\Users\PC\Documents\GitHub\enkryptai\enkrypt-secure-mcp-gateway\src
PYTHONPATH: Not set
--------------------------------
Initializing Enkrypt Secure MCP Gateway Client Module
Initializing Enkrypt Secure MCP Gateway Guardrail Module
Getting Enkrypt Common Configuration
config_path: C:\Users\PC\Documents\GitHub\enkryptai\enkrypt-secure-mcp-gateway\enkrypt_mcp_config.json
example_config_path: C:\Users\PC\Documents\GitHub\enkryptai\enkrypt-secure-mcp-gateway\example_enkrypt_mcp_config.json
Loading enkrypt_mcp_config.json file...
config: {'common_mcp_gateway_config': {'enkrypt_log_level': 'INFO', 'enkrypt_guardrails_enabled': False, 'enkrypt_base_url': 'https://api.enkryptai.com', 'enkrypt_api_key': 'YOUR_ENKRYPT_API_KEY', 'enkrypt_use_remote_mcp_config': False, 'enkrypt_remote_mcp_gateway_name': 'enkrypt-secure-mcp-gateway-1', 'enkrypt_remote_mcp_gateway_version': 'v1', 'enkrypt_mcp_use_external_cache': False, 'enkrypt_cache_host': 'localhost', 'enkrypt_cache_port': 6379, 'enkrypt_cache_db': 0, 'enkrypt_cache_password': None, 'enkrypt_tool_cache_expiration': 4, 'enkrypt_gateway_cache_expiration': 24, 'enkrypt_async_input_guardrails_enabled': False, 'enkrypt_async_output_guardrails_enabled': False}, 'gateways': {'3_V8WZxKJp24alEui542WX6wVcgexH5EIBqZl1EssxDcFS9K4TVwZCmB9i_8KEQ5': {'id': 'b8ac738a-7a2c-4030-8966-20fa1d91af3c', 'mcp_config': [{'server_name': 'echo_server', 'description': 'Dummy Echo Server', 'config': {'command': 'python', 'args': ['C:\\Users\\PC\\Documents\\GitHub\\enkryptai\\enkrypt-secure-mcp-gateway\\test_mcps\\echo_mcp.py']}, 'tools': {'echo': 'Echo a message'}, 'input_guardrails_policy': {'enabled': False, 'policy_name': 'Sample Airline Guardrail', 'additional_config': {'pii_redaction': False}, 'block': ['policy_violation']}, 'output_guardrails_policy': {'enabled': False, 'policy_name': 'Sample Airline Guardrail', 'additional_config': {'relevancy': False, 'hallucination': False, 'adherence': False}, 'block': ['policy_violation']}}]}}}
CONFIG:
ENKRYPT_GATEWAY_KEY: ****KEQ5
enkrypt_log_level: info
is_debug_log_level: False
enkrypt_base_url: https://api.enkryptai.com
enkrypt_use_remote_mcp_config: False
enkrypt_api_key: ****_KEY
enkrypt_tool_cache_expiration: 4
enkrypt_gateway_cache_expiration: 24
enkrypt_mcp_use_external_cache: False
enkrypt_async_input_guardrails_enabled: False
--------------------------------
External Cache is not enabled. Using local cache only.
[06/03/25 20:13:40] INFO Added server 'Enkrypt Secure MCP Gateway' to Claude config claude.py:143
INFO Successfully installed Enkrypt Secure MCP Gateway in Claude app cli.py:504
-------------------------------
Installation complete. Check the claude_desktop_config.json file as per the readme instructions and restart Claude Desktop.
-------------------------------
- 確認するには、これらの手順 に従って
claude_desktop_config.json
ファイルに移動します。- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
3. 生成された例のMCP設定ファイル
Windowsの例のファイル 🪟 ℹ️ 🔽
C:\Users\PC\AppData\Roaming\Claude\claude_desktop_config.json
{
"mcpServers": {
"Enkrypt Secure MCP Gateway": {
"command": "C:\\Users\\PC\\Documents\\GitHub\\enkryptai\\enkrypt-secure-mcp-gateway\\.venv\\Scripts\\uv.EXE",
"args": [
"run",
"--with",
"aiohttp",
"--with",
"asyncio",
"--with",
"cryptography",
"--with",
"flask",
"--with",
"flask-cors",
"--with",
"mcp[cli]",
"--with",
"pyjwt",
"--with",
"python-dateutil",
"--with",
"python-json-logger",
"--with",
"redis",
"--with",
"requests",
"mcp",
"run",
"C:\\Users\\PC\\Documents\\GitHub\\enkryptai\\enkrypt-secure-mcp-gateway\\src\\gateway.py"
],
"env": {
"ENKRYPT_GATEWAY_KEY": "3_V8WZxKJp24alEui542WX6wVcgexH5EIBqZl1EssxDcFS9K4TVwZCmB9i_8KEQ5"
}
}
}
}
4. ゲートウェイを実行するためにClaude Desktopを再起動する
- 再起動後、Claude Desktopの
設定
に移動します。
開発者
->Enkrypt Secure MCP Gateway
をクリックします。
ツールとログを確認 🧾 ℹ️ 🔽
- 検索バーの下にある設定アイコンをクリックして、利用可能なゲートウェイを確認することもできます。
Enkrypt Secure MCP Gateway
をクリックして、利用可能なツールのリストを表示します。
- Claudeに何かを依頼する際にClaudeのログを確認すると、ゲートウェイが動作していることを確認できます。
- Windowsのログパスの例:
C:\Users\PC\AppData\Roaming\Claude\logs\mcp-server-Enkrypt Secure MCP Gateway.log
- Linux/Macのログパスの例:
~/Library/Application Support/Claude/logs/mcp-server-Enkrypt Secure MCP Gateway.log
- Windowsのログパスの例:
5. 例のプロンプト
list all servers, get all tools available and echo test
- これは、
test_mcps/echo_mcp.py
にあるテストMCPサーバーecho_server
を使用します。
- これは、
その他の例 ℹ️ 🔽
- 複数のプロンプトを組み合わせて、一度に複数のツール呼び出しをトリガーすることもできます。
- 例:
echo test and also echo best
- 例:
echo "hello; ls -la; whoami"
- これは悪意のあるプロンプトかもしれませんが、ガードレールが有効になっていないため、ブロックされません。
6. 生成された例の設定ファイル
setup
スクリプトによってルートディレクトリに生成された例のenkrypt_mcp_config.json
ファイル:
{
"common_mcp_gateway_config": {
"enkrypt_log_level": "INFO",
"enkrypt_guardrails_enabled": false,
"enkrypt_base_url": "https://api.enkryptai.com",
"enkrypt_api_key": "YOUR_ENKRYPT_API_KEY",
"enkrypt_use_remote_mcp_config": false,
"enkrypt_remote_mcp_gateway_name": "enkrypt-secure-mcp-gateway-1",
"enkrypt_remote_mcp_gateway_version": "v1",
"enkrypt_mcp_use_external_cache": false,
"enkrypt_cache_host": "localhost",
"enkrypt_cache_port": 6379,
"enkrypt_cache_db": 0,
"enkrypt_cache_password": null,
"enkrypt_tool_cache_expiration": 4,
"enkrypt_gateway_cache_expiration": 24,
"enkrypt_async_input_guardrails_enabled": false,
"enkrypt_async_output_guardrails_enabled": false
},
"gateways": {
"tLIYf0YEFTIPLXDO337zPRQhmnoXnLqLUKB3XuDX1inent9vGRFvwLDJGoeaktWu": {
"id": "2536722c-e5d7-4719-97ab-2cdd4ce942c0",
"mcp_config": [
{
"server_name": "echo_server",
"description": "Dummy Echo Server",
"config": {
"command": "python",
"args": [
"C:\\Users\\PC\\Documents\\GitHub\\enkryptai\\enkrypt-secure-mcp-gateway\\test_mcps\\echo_mcp.py"
]
},
"tools": {},
"input_guardrails_policy": {
"enabled": false,
"policy_name": "Sample Airline Guardrail",
"additional_config": {
"pii_redaction": false
},
"block": [
"policy_violation"
]
},
"output_guardrails_policy": {
"enabled": false,
"policy_name": "Sample Airline Guardrail",
"additional_config": {
"relevancy": false,
"hallucination": false,
"adherence": false
},
"block": [
"policy_violation"
]
}
}
]
}
}
}
7. 必要に応じてゲートウェイの設定を編集する
- 重要:
- 設定ファイルを編集した後、Claude Desktopを再起動する必要があります。すべての新しいツールにアクセスできるようにするには、MCPクライアントにすべての新しいツールを検出させるために、プロンプト "
list all servers, get all tools available
" を使用してください。これ以降、MCPクライアントはゲートウェイ設定ファイルに構成されたサーバーのすべてのツールを使用できるはずです。
- 設定ファイルを編集した後、Claude Desktopを再起動する必要があります。すべての新しいツールにアクセスできるようにするには、MCPクライアントにすべての新しいツールを検出させるために、プロンプト "
- このゲートウェイ設定の
mcp_config
配列内に、多くのMCPサーバーを追加することができます。- ここを参照して例のサーバーを確認 することができます。
- Enkrypt MCPサーバー も試すことができます。
- 例:
{
"common_mcp_gateway_config": {...},
"gateways": {
"UNIQUE_GATEWAY_KEY_1": {
"id": "UNIQUE_UUID_1",
"mcp_config": [
{
"server_name": "MCP_SERVER_NAME_1",
"description": "MCP_SERVER_DESCRIPTION_1",
"config": {
"command": "python/npx/etc.",
"args": ["arg1", "arg2", ...],
"env": { "key": "value" }
},
// 明示的なツールを設定して、許可されたツールのみにアクセスを制限する
// 例: "tools": { "tool_name": "tool_description" }
// 例: "tools": { "echo": "Echo a message" }
// または、ツールを空にすると、ゲートウェイがすべてのツールを動的に検出します
"tools": {},
"input_guardrails_policy": {...},
"output_guardrails_policy": {...}
},
{
"server_name": "MCP_SERVER_NAME_2",
"description": "MCP_SERVER_DESCRIPTION_2",
"config": {...},
"tools": {},
"input_guardrails_policy": {...},
"output_guardrails_policy": {...}
}
]
}
}
}
ゲートウェイ設定スキーマ ℹ️ 🔽
- 別のクライアント/ユーザーに対して異なるMCPサーバーのセットが必要な場合は、
setup
スクリプトを参照して新しい一意のキー
と一意のUUID
を生成し、設定ファイルのgateways
セクションに追加することができます。- 例:
{ gateways: { UNIQUE_GATEWAY_KEY_1: {...}, UNIQUE_GATEWAY_KEY_2: {...}, ... }, ... }
- さまざまなゲートウェイ内で異なる
UNIQUE_UUID
も設定するようにしてください。
- 例:
enkrypt_log_level
をDEBUG
に設定すると、設定ファイルのcommon_mcp_gateway_config
部分でより詳細なログを取得できます。- これはデフォルトで
INFO
です。
- これはデフォルトで
- 現在、
gateways
配列内のmcp_config
配列内の各個々のMCPサーバー設定で、以下を設定することができます。server_name
: 接続するMCPサーバーの名前。description
(オプション): MCPサーバーの説明。config
: MCPサーバーのドキュメントで指示されたMCPサーバーの設定。- 一般的に、設定には以下のキーがあります。
command
: MCPサーバーを実行するコマンド。args
: コマンドに渡す引数。env
: コマンドに設定する環境変数。
- 一般的に、設定には以下のキーがあります。
tools
: MCPサーバーによって公開されるツール。- 明示的なツールを設定して、許可されたツールのみにアクセスを制限するか、ツールを空にする
tools": {}
と、ゲートウェイがすべてのツールを動的に検出します。 - ツールには、名前と説明を与える必要があります。例:
"tools": { "dummy_echo": "Echo a message" }
- 明示的なツールを設定して、許可されたツールのみにアクセスを制限するか、ツールを空にする
オプションのガードレールスキーマ 🔒 ℹ️ 🔽
common_mcp_gateway_config
でenkrypt_guardrails_enabled
をtrue
に設定します。- Enkryptダッシュボード から
enkrypt_api_key
を取得し、設定ファイルのcommon_mcp_gateway_config
セクションに追加します。 enkrypt_use_remote_mcp_config
は、EnkryptサーバーからリモートでMCPサーバー設定を取得するために使用されます(近日公開予定)。- 現時点では
false
を使用してください。 - これにより、EnkryptダッシュボードでMCPゲートウェイ設定を一元的に構成および管理することができます(近日公開予定)。
- 現時点では
- KeyDBなどの外部キャッシュサーバーが実行されている場合は、
common_mcp_gateway_config
でenkrypt_mcp_use_external_cache
をtrue
に設定することができます。common_mcp_gateway_config
でキャッシュに関連するその他の関連キーを設定します。
enkrypt_tool_cache_expiration
(時間単位) は、MCPサーバーから検出されたツールがローカルまたは外部キャッシュサーバーにキャッシュされる時間を決定します。enkrypt_gateway_cache_expiration
(時間単位) は、ゲートウェイ設定がローカルまたは外部キャッシュサーバーにキャッシュされる時間を決定します。これは、これをEnkrypt認証サーバーと統合する場合に役立ちます(近日公開予定)。enkrypt_async_input_guardrails_enabled
- デフォルトで
false
。 - 非同期モードは、元に戻せないアクションを実行するツールには推奨されません。
- ツール呼び出しがガードレール呼び出しと並行して行われるため、入力ガードレール違反が検出された場合でもブロックすることができません。
- アクションを実行せずに情報のみを返すサーバー、つまり読み取り操作のみに役立ちます。
- デフォルトで
enkrypt_async_output_guardrails_enabled
(近日公開予定)- これにより、出力側のガードレール呼び出しが非同期で行われ、時間を節約することができます。
- つまり、MCPサーバーからレスポンスを受信した後、ガードレール検出呼び出し、関連性チェック、遵守チェック、PII復元などが並行して行われます。
- 各MCPサーバー設定内で、以下を設定することができます。
input_guardrails_policy
: Enkryptガードレールを入力側で使用する予定の場合に使用します。policy_name
: EnkryptアプリまたはAPI/SDKを使用して作成したガードレールポリシーの名前。enabled
: 入力側でガードレールを有効にするかどうか。これは、例の設定ファイルではfalse
です。additional_config
: ガードレールポリシーの追加設定。pii_redaction
: MCPサーバーに送信されるリクエストでPIIを削除するかどうか。true
の場合、MCPサーバーからのレスポンスのPIIも自動的に復元されます。
block
: ブロックするガードレールのリスト。- 配列内の可能な値は次のとおりです。
topic_detector, nsfw, toxicity, pii, injection_attack, keyword_detector, policy_violation, bias
system_prompt_protection, copyright_protection
(近日公開予定)- これは、私たちのAIプロキシデプロイメント設定と似ています。私たちのドキュメントを参照
- 配列内の可能な値は次のとおりです。
output_guardrails_policy
: Enkryptガードレールを出力側で使用する予定の場合に使用します。policy_name
: EnkryptアプリまたはAPI/SDKを使用して作成したガードレールポリシーの名前。enabled
: 出力側でガードレールを有効にするかどうか。これは、例の設定ファイルではfalse
です。additional_config
: ガードレールポリシーの追加設定。relevancy
: MCPサーバーからのレスポンスの関連性をチェックするかどうか。adherence
: MCPサーバーからのレスポンスの遵守をチェックするかどうか。hallucination
: MCPサーバーからのレスポンスの幻覚をチェックするかどうか(近日公開予定)。
block
: ブロックするガードレールのリスト。- 配列内の可能な値は次のとおりです。
- 入力ブロック配列内のすべての可能な値に加えて、
adherence, relevancy
system_prompt_protection, copyright_protection, hallucination
(近日公開予定)- これは、私たちのAIプロキシデプロイメント設定と似ています。私たちのドキュメントを参照
- 入力ブロック配列内のすべての可能な値に加えて、
- 配列内の可能な値は次のとおりです。
- 重要:
- 設定ファイルを編集した後、Claude Desktopを再起動する必要があります。すべての新しいツールにアクセスできるようにするには、MCPクライアントにすべての新しいツールを検出させるために、プロンプト "
list all servers, get all tools available
" を使用してください。これ以降、MCPクライアントはゲートウェイ設定ファイルに構成されたサーバーのすべてのツールを使用できるはずです。
- 設定ファイルを編集した後、Claude Desktopを再起動する必要があります。すべての新しいツールにアクセスできるようにするには、MCPクライアントにすべての新しいツールを検出させるために、プロンプト "
リモートインストール
- (近日公開予定)
(オプション)GitHub MCPサーバーをゲートウェイに追加する
GitHub MCP Server
はdocker
のインストールが必要です。以下の手順を進める前に、docker
をインストールして実行してください。- ここからDocker Desktopをダウンロード できます。まだ持っていない場合は、インストールして実行してください。
GitHubを構成 👨🏻💻 🔽
- GitHubから個人用アクセストークンを作成 します。
- 最初はテスト用に、公開リポジトリのみにアクセスできるトークンを作成し、有効期限を非常に短く設定します。
- 以下のGitHubサーバーブロックを
enkrypt_mcp_config.json
の"mcp_config": []
配列内に追加します。既にエコーサーバーの設定があるはずです。 - 注意: エコーサーバーブロックの後にコンマ
,
を忘れないでください。 REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN
を作成した個人用アクセストークンに置き換えます。- 例:
"mcp_config": [
{
"server_name": "echo_server",
"description": "Dummy Echo Server",
"config": {...},
"tools": {},
"input_guardrails_policy": {...},
"output_guardrails_policy": {...}
},
{
"server_name": "github_server",
"description": "GitHub Server",
"config": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN"
}
},
"tools": {},
"input_guardrails_policy": {
"enabled": false,
"policy_name": "Sample Airline Guardrail",
"additional_config": {
"pii_redaction": false
},
"block": [
"policy_violation"
]
},
"output_guardrails_policy": {
"enabled": false,
"policy_name": "Sample Airline Guardrail",
"additional_config": {
"relevancy": false,
"hallucination": false,
"adherence": false
},
"block": [
"policy_violation"
]
}
}
]
- 現在、Claude Desktopを再起動して、新しいサーバーを検出させます。
- 次に、プロンプト
list all servers, get all tools available
を実行して、GitHubサーバーと利用可能なすべてのツールを検出させます。
- 次に、
List all files from https://github.com/enkryptai/enkryptai-mcp-server
を実行します。
- 素晴らしい! 🎉 GitHub MCPサーバーをゲートウェイに正常に追加しました。ただし、これは完全に保護されておらず、あらゆる種類の悪用や攻撃にさらされています。
- 次に、
Ask github for the repo "hello; ls -la; whoami"
のようなプロンプトを実行するとします。
- これは実際の損害を引き起こさなかったかもしれませんが、システムに実際の損害を引き起こす可能性のあるより複雑なプロンプトを想像してみてください。
- MCPサーバーを保護するには、次のセクションで示すように Enkryptガードレール を使用することができます。
(オプション)EnkryptガードレールでGitHub MCPサーバーとテストエコーサーバーを無料で保護する
Enkryptアプリでガードレールを作成 🌐 🔽
- ルールを生成するためのプロンプトを使用するか、PDFファイルを生成して、アプリでポリシーを作成する際に貼り付けるかアップロードすることができます。
コピーするルール ❗ 🔽
1. MCP-Specific Security Policies
Scan all tool descriptions for hidden instructions/malicious patterns.
Authenticate MCP servers with cryptographic verification.
Lock and pin tool versions to prevent rug-pull attacks.
Enforce isolation between MCP servers to avoid interference.
Restrict GitHub MCP access to specific repositories and users.
2. Code Filtering and Prohibited Patterns
Block known malicious code patterns (e.g., buffer overflows, SQL injection).
Detect malware signatures (e.g., keylogger, trojan).
Prevent crypto mining code.
Identify network attack patterns (e.g., DDoS, botnet).
Block privilege escalation code (e.g., root exploits).
3. Repository Access Control
Enforce role-based read access for private repositories.
Enable strict content filtering for all access types.
Mandate audit logging for private repositories.
Quarantine access to sensitive repositories.
4. AI-Specific Guardrails
Detect tool poisoning via hidden tags and file access commands.
Monitor behavior for file access and network activity.
Require explicit UI approval for suspicious tools.
Protect against prompt injection in GitHub issues.
Block PRs that expose private repo data.
Quarantine suspicious GitHub issues.
5. RADE (Retrieval-Agent Deception) Mitigation
Scan retrieved content for embedded commands.
Validate document integrity and modification timestamps.
Sandbox retrieved content to prevent auto-execution.
6. Input Validation
Limit prompt length (max 4096 tokens).
Block forbidden keywords (e.g., "ignore previous instructions").
Detect encoded/injection patterns (base64, hex, unicode).
7. Model Behavior Constraints
Limit code generation by complexity and size.
Restrict certain languages (e.g., shell scripts, assembly).
Monitor API/system calls and network activity.
Enforce strict context boundaries across repositories.
ルールを生成するために使用したプロンプト 💡 🔽
Give numbered list of security rules in plain text for configuring AI guardrails for a GitHub server on the rules and policies it needs to follow to prevent malicious use of the GitHub services
- 次に、
Research latest GitHub MCP hacks and abuses people are trying and update the rules to prevent those. Keep research to the most severe topics
と言います。 - 次に、
Only keep essential security rules to reduce size. Remove unwanted sections like post incident, compliance, audit, etc which cannot be used while prevention
と言います。 - 作成した後、ガードレールを構成する際に、これらのルールを使用することができます。
- Enkryptアプリ に移動し、OTPまたはGoogleまたはMicrosoftアカウントでログインします。
ポリシー
をクリックします。
新しいポリシーを追加
をクリックします。
- 名前を
GitHub Safe Policy
に設定し、ポリシールールを貼り付けて、保存
をクリックします。
- これは、
Policy violation
ガードレールにルールが適用された保存されたポリシーの外観です。
- 現在、ホームに戻るか、左側のサイドバーにマウスをホバーして
ガードレール
をクリックします。 - 右上の
新しいガードレールを追加
ボタンをクリックします。
- 名前を
GitHub Guardrail
に設定し、Injection Attack
をオフに切り替えます。
ガードレールを構成
サイドパネルを下にスクロールし、Policy Violation
をオンに切り替え、新しく作成したポリシーを選択し、必要に応じて説明が必要
をチェックします。
- 現在、右下の
保存
ボタンをクリックして、ガードレールを保存します。
- 新しく追加されたガードレールがガードレールのリストに表示されます。
Enkrypt APIキーを取得 🔑 🔽
- 現在、Enkryptアプリから無料のAPIキーを取得する必要があります。左側のサイドバーにマウスをホバーして展開し、
設定
をクリックします。- また、直接 https://app.enkryptai.com/settings に移動することもできます。
- 現在、難読化されたAPIキーの横にある
コピー
アイコンをクリックして、キーをクリップボードにコピーします。
APIキーとガードレールを設定ファイルに追加 🔑 🔽
- 現在、アプリから必要なすべての情報が揃いました。APIキーを
enkrypt_mcp_config.json
ファイルに追加しましょう。 - このリポジトリのルートディレクトリから
enkrypt_mcp_config.json
ファイルを開きます。 common_mcp_gateway_config
セクションにAPIキーを追加し、YOUR_ENKRYPT_API_KEY
をアプリからコピーしたAPIキーに置き換えます。- 前のセクションで追加した
GitHub
サーバーブロック内で、- 新しく作成したガードレール
GitHub Guardrail
をinput_guardrails_policy
とoutput_guardrails_policy
セクションに追加します。 "policy_name": "Sample Airline Guardrail"
を"policy_name": "GitHub Guardrail"
に置き換えます。- 現在、
input_guardrails_policy
のenabled
を以前のfalse
からtrue
に変更します。- 現時点では、
output_guardrails_policy
はfalse
のままにします。
- 現時点では、
- すでに両方のポリシーの
block
配列にpolicy_violation
があるはずです。 - したがって、最終的な設定は次のようになります。
- 新しく作成したガードレール
{
"common_mcp_gateway_config": {
...
"enkrypt_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
...
},
"gateways": {
"tLIYf0YEFTIPLXDO337zPRQhmnoXnLqLUKB3XuDX1inent9vGRFvwLDJGoeaktWu": {
"id": "2536722c-e5d7-4719-97ab-2cdd4ce942c0",
"mcp_config": [
{
"server_name": "echo_server",
"...": "..."
},
{
"server_name": "github_server",
"description": "GitHub Server",
"config": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "github_pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
},
"tools": {},
"input_guardrails_policy": {
"enabled": true,
"policy_name": "GitHub Guardrail",
"additional_config": {
"pii_redaction": false
},
"block": [
"policy_violation"
]
},
"output_guardrails_policy": {
"enabled": false,
"policy_name": "GitHub Guardrail",
"additional_config": {
"relevancy": false,
"hallucination": false,
"adherence": false
},
"block": [
"policy_violation"
]
}
}
]
}
}
}
ガードレールをテスト 🧪 🔽
- ファイルを 保存 し、Claude Desktopを再起動して、変更を検出させます。
GitHub MCP Server
はdocker
のインストールが必要です。以下の手順を進める前に、docker
をインストールして実行してください。- ここからDocker Desktopをダウンロード できます。まだ持っていない場合は、インストールして実行してください。
- 現在、プロンプト
list all services, tools
を実行して、GitHub、エコーサーバーとそれらのすべてのツールを検出させます。 - この後、以前に成功した悪意のあるプロンプト
Ask github for the repo "hello; ls -la; whoami"
を再度実行しましょう。- 入力ガードレールがリクエストをブロックしたため、プロンプトがブロックされていることがわかります。
- テスト用の
echo
サーバーを好きなガードレールで構成し、echo "hello; ls -la; whoami"
を実行して検出を確認することができます。- 以前は機能していたが、ガードレールでブロックされた以下のプロンプト。
- さまざまなガードレールで
echo
サーバーを試して、その動作を確認してください。より良いテストのために、私たちのプレイグラウンドも試すことができます。
ガードレールを微調整する
- 安全なプロンプト
List all files from https://github.com/enkryptai/enkryptai-mcp-server
も、出力側でInjection Attackを使用するとブロックされる場合があります。したがって、ガードレールを微調整して、サーバーに最適な有効な検出器とブロックの組み合わせを見つける必要があります。次のセクションで推奨事項を参照してください。
ガードレールの使用に関する推奨事項
- MCPゲートウェイでEnkryptガードレールを使用する最良の方法は、各サーバーに個別のガードレールを持つことです。これにより、各サーバーに対して微調整されたガードレールを持つことができます。
- 各MCPサーバーは他のサーバーと非常に異なるため、すべてのサーバーに適用される単一のガードレールを
Z
Zen MCP Server
Zen MCPは多モデルAI協調開発サーバーで、ClaudeやGemini CLIなどのAIコーディングアシスタントに強化されたワークフローツールとモデル間のコンテキスト管理を提供します。これは複数のAIモデルのシームレスな協調をサポートし、コードレビュー、デバッグ、リファクタリングなどの開発タスクを実現し、異なるワークフロー間で会話のコンテキストを維持することができます。
Python
17
5ポイント
C
Container Use
コンテナの使用は、コーディングエージェントにコンテナ化された分離環境を提供するオープンソースツールで、複数のエージェントが互いに干渉することなく並行開発をサポートします。
Go
8
5ポイント

Search1api
Search1API MCPサーバーは、Model Context Protocol (MCP)に基づくサーバーで、検索とクローリング機能を提供し、複数の検索サービスとツールをサポートします。
TypeScript
334
4ポイント

Duckduckgo MCP Server
認証済み
DuckDuckGo検索MCPサーバーは、ClaudeなどのLLMにウェブ検索とコンテンツ取得サービスを提供します。
Python
817
4.3ポイント

MCP Alchemy
認証済み
MCPアルケミーは、Claude Desktopと複数のデータベースを接続するツールで、SQLクエリ、データベース構造分析、データレポート生成をサポートします。
Python
321
4.2ポイント

Postgresql MCP
FastMCPライブラリに基づくPostgreSQLデータベースのMCPサービスで、指定されたテーブルのCRUD操作、スキーマ検査、およびカスタムSQLクエリ機能を提供します。
Python
101
4ポイント

MCP Scan
MCP-Scanは、MCPサーバー用のセキュリティスキャンツールで、提示注入、ツール汚染、クロスドメインアップグレードなどの一般的なセキュリティホールを検出します。
Python
612
5ポイント

Agentic Radar
エージェンティックレーダーは、エージェントシステムを分析・評価するセキュリティスキャナーで、開発者、研究者、セキュリティ専門家がエージェントシステムのワークフローを理解し、潜在的なホールを特定するのに役立ちます。
Python
548
5ポイント
厳選MCPサービス

Gmail MCP Server
Claude Desktop用に設計されたGmail自動認証MCPサーバーで、自然言語でのやり取りによるGmailの管理をサポートし、メール送信、ラベル管理、一括操作などの完全な機能を備えています。
TypeScript
296
4.5ポイント

Edgeone Pages MCP Server
EdgeOne Pages MCPは、MCPプロトコルを通じてHTMLコンテンツをEdgeOne Pagesに迅速にデプロイし、公開URLを取得するサービスです。
TypeScript
268
4.8ポイント

Context7
Context7 MCPは、AIプログラミングアシスタントにリアルタイムのバージョン固有のドキュメントとコード例を提供するサービスで、Model Context Protocolを通じてプロンプトに直接統合され、LLMが古い情報を使用する問題を解決します。
TypeScript
5.2K
4.7ポイント

Baidu Map
認証済み
百度マップMCPサーバーは国内初のMCPプロトコルに対応した地図サービスで、地理コーディング、ルート計画など10個の標準化されたAPIインターフェースを提供し、PythonとTypescriptでの迅速な接続をサポートし、エージェントに地図関連の機能を実現させます。
Python
719
4.5ポイント

Gitlab MCP Server
認証済み
GitLab MCPサーバーは、Model Context Protocolに基づくプロジェクトで、GitLabアカウントとのやり取りに必要な包括的なツールセットを提供します。コードレビュー、マージリクエスト管理、CI/CD設定などの機能が含まれます。
TypeScript
87
4.3ポイント

Unity
認証済み
UnityMCPはUnityエディターのプラグインで、モデルコンテキストプロトコル (MCP) を実装し、UnityとAIアシスタントのシームレスな統合を提供します。リアルタイムの状態監視、リモートコマンドの実行、ログ機能が含まれます。
C#
559
5ポイント

Magic MCP
Magic Component Platform (MCP) はAI駆動のUIコンポーネント生成ツールで、自然言語での記述を通じて、開発者が迅速に現代的なUIコンポーネントを作成するのを支援し、複数のIDEとの統合をサポートします。
JavaScript
1.7K
5ポイント

Sequential Thinking MCP Server
MCPプロトコルに基づく構造化思考サーバーで、思考段階を定義することで複雑な問題を分解し要約を生成するのに役立ちます。
Python
290
4.5ポイント