MCPGate
MCPGate
軽量なMCPゲートウェイ — MCPツールを集約、フィルタリング、監視します。
MCPGateは、MCPクライアント(Claude Desktop、Claude Code、Cursor、VS Code)と複数のMCPサーバーの間に配置されます。単一の統合されたMCPエンドポイントを提供しつつ、どのツールを公開するかをきめ細かく制御できます。
特徴
ツール集約 — 複数のMCPサーバーを接続し、すべてのツールを1つのエンドポイント経由で公開
ツールフィルタリング — シンプルなYAML設定により、サーバーごとに特定のツールを許可/ブロック
ツールプレフィックス — 自動名前空間化(
github.create_issueなど)により競合を回避Webダッシュボード — サーバー、ツール、リクエストログを表示するリアルタイムステータスページ
デュアルトランスポート — Stdio(Claude Desktop)またはHTTP/SSE(リモートクライアント)
監査ログ — すべてのツール呼び出しをタイミング付きで記録。PostgreSQLによる永続化も可能
セルフホスト — Railway、Dockerへのデプロイ、またはローカル実行が可能
クイックスタート
ローカル(stdio — Claude Desktop用)
npx mcp-gate start --config mcpgate.yamlclaude_desktop_config.jsonに追加します:
{
"mcpServers": {
"mcpgate": {
"command": "npx",
"args": ["-y", "mcp-gate", "start", "--config", "/path/to/mcpgate.yaml"]
}
}
}ローカル(HTTP — ダッシュボード付き)
npx mcp-gate start --config mcpgate.yaml
# Dashboard at http://localhost:3000
# MCP endpoint at http://localhost:3000/mcpDocker
docker compose up
# Dashboard at http://localhost:3000
# Includes PostgreSQL for persistent audit trailまたはスタンドアロン:
docker run -p 3000:3000 \
-e MCPGATE_CONFIG=$(cat mcpgate.yaml | base64 -w 0) \
-e GITHUB_TOKEN=$GITHUB_TOKEN \
ghcr.io/mprezz/mcpgateRailway
永続的な監査ログのためにPostgreSQLプラグインを追加してください。MCPGateはDATABASE_URLを自動的に検出します。
設定
mcpgate.yamlを作成します:
gateway:
name: "my-gateway"
transport: "stdio" # stdio | http | both
port: 3000
toolPrefix: true # prefix tools with server name
servers:
- name: "github"
transport: "stdio"
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_TOKEN: "${GITHUB_TOKEN}"
tools:
allow:
- "create_issue"
- "search_repos"
- name: "filesystem"
transport: "stdio"
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]
tools:
block:
- "write_file"
- "delete_file"
logging:
level: "info"詳細なリファレンスについてはmcpgate.example.yamlを参照してください。
ツールフィルタリング
各サーバーはallowまたはblockをサポートしています(これらは相互排他的です):
allow— これらのツールのみが公開されます(ホワイトリスト)block— これらを除くすべてのツールが公開されます(ブラックリスト)指定なし — すべてのツールが公開されます
認証
HTTPトランスポートを保護するためにベアラートークンを追加します:
gateway:
auth:
token: "${MCPGATE_AUTH_TOKEN}"認証が設定されている場合:
すべてのエンドポイントで
Authorization: Bearer <token>ヘッダーが必要になります/healthは公開されたままになります(Railway/Dockerのヘルスチェック用)MCPクライアントは、トランスポート設定のカスタムヘッダー経由でトークンを渡します
認証が設定されていない場合、すべてのエンドポイントはオープンになります(ローカル/プライベート利用向け)。
環境変数の補間
YAML内で${VAR}または${VAR:-default}を使用して環境変数を参照できます:
env:
GITHUB_TOKEN: "${GITHUB_TOKEN}"
API_URL: "${API_URL:-https://api.example.com}"ダッシュボード
HTTPモードで実行すると、MCPGateはルートURLでWebダッシュボードを提供します:
/— アップストリームサーバー、ツール、リクエストログを表示するステータスページ/api/status— プログラムアクセス用のJSON API/health— ヘルスチェックエンドポイント(Railway/Docker用)/mcp— MCPプロトコルエンドポイント(ストリーミング可能なHTTP)
ストレージ
MCPGateは、すべてのツール呼び出しをタイミングおよびエラー情報とともに記録します。
デフォルト — インメモリ(設定不要、再起動時に消失)
PostgreSQL —
DATABASE_URL環境変数を設定(テーブルは自動的に作成されます)
# Local development with Docker Compose
docker compose up postgres -d
export DATABASE_URL=postgresql://mcpgate:mcpgate@localhost:5432/mcpgate
npx mcp-gate start --config mcpgate.yaml環境変数
変数 | 必須 | デフォルト | 説明 |
| いいえ |
| HTTPポート(Railwayはこれを自動設定します) |
| いいえ | — | Base64エンコードされたYAML設定(Railway/Docker用) |
| いいえ | — | PostgreSQL接続文字列(永続的な監査ログを有効化) |
| いいえ |
|
|
| いいえ | — | HTTP認証用ベアラートークン(YAML内で |
開発
git clone https://github.com/mprezz/mcpgate.git
cd mcpgate
npm install
npm run dev # development with hot reload
npm run build # compile TypeScript
npm run test # run tests (vitest)
npm run lint # eslint
npm run typecheck # tsc --noEmitアーキテクチャ
Client (Claude, Cursor)
│
▼ stdio or HTTP/SSE
┌──────────────────────────────┐
│ MCPGate │
│ │
│ ┌─────────────────────┐ │
│ │ Tool Registry │ │ ← filters + namespaces tools
│ └─────────────────────┘ │
│ ┌─────────────────────┐ │
│ │ Tool Router │ │ ← routes calls to correct server
│ └─────────────────────┘ │
│ ┌─────────────────────┐ │
│ │ Upstream Manager │ │ ← manages server connections
│ └─────────────────────┘ │
│ ┌─────────────────────┐ │
│ │ Storage │ │ ← memory or PostgreSQL
│ └─────────────────────┘ │
└──────────────────────────────┘
│ │ │
▼ ▼ ▼
Server A Server B Server C
(GitHub) (Filesystem) (Custom)ライセンス
Apache 2.0 — LICENSEを参照
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/martin-santiago/mcpgate'
If you have feedback or need assistance with the MCP directory API, please join our Discord server