mcp-gway
MCP Gateway
複数のMCP(Model Context Protocol)サーバーを単一のHTTP/SSEエンドポイントの背後に集約するスタンドアロンCLIゲートウェイで、Code Mode を備えています。複数のMCPサーバーを使用する際、LLMの入力トークン使用量を最大92%削減します。
特徴
マルチサーバー集約 — 複数のMCPサーバー(HTTP、SSE、Stdio、Streamable HTTP)に接続し、単一のエンドポイントを通じて公開します
Code Mode — LLMがすべてのスキーマを事前に読み込むことなくツールを動的に発見・使用できる4つのメタツール
OAuth 2.0サポート — 動的クライアント登録(RFC 7591)とトークン保存を備えた組み込みOAuthフロー
密閉型サンドボックス — 安全なコード実行のためのStarlarkベースのサンドボックス
MCPプロトコル準拠 — Claude Desktop、Cursor、およびMCP互換のクライアントで動作します
Related MCP server: ToolMux
インストール
pip install mcp-gwayまたはmiseを使用する場合:
mise install
uv syncクイックスタート
# Add an MCP server
mcp-gway add youtube --type http --url http://localhost:3001/mcp
# Add a stdio server
mcp-gway add filesystem --type stdio --command npx --args '["-y", "@anthropic/mcp-filesystem"]'
# Add a server requiring OAuth
mcp-gway add supabase --type streamable-http --url https://mcp.supabase.com/mcp
# List all servers
mcp-gway list
# Start the gateway
mcp-gway serve --port 8080Claude Desktopから接続
Claude Desktopの設定(~/Library/Application Support/Claude/claude_desktop_config.json)に追加します:
{
"mcpServers": {
"gateway": {
"url": "http://localhost:8080/mcp"
}
}
}コマンド
コマンド | 説明 |
| MCPサーバーを追加し、 |
| MCPサーバーを削除します |
| サーバーのツールを更新します |
| 接続されているすべてのサーバーを一覧表示します |
| サーバーのツールシグネチャを表示します |
| 接続を更新し、ツールを再発見します |
| ゲートウェイサーバーを起動します |
Code Mode
接続すると、ゲートウェイは4つのメタツールを公開します:
ツール | 説明 |
| 利用可能なすべての |
| スタブから関数シグネチャを読み取ります |
| ツールの詳細なドキュメントを取得します |
| サンドボックス化されたStarlarkインタープリターでコードを実行します |
OAuth認証
OAuthを必要とするサーバー(例:Supabase)の場合:
# Trigger OAuth flow
mcp-gway refresh supabase --auth
# Or store token manually
mkdir -p ~/.config/mcp-gway/tokens
echo '{"access_token": "YOUR_TOKEN"}' > ~/.config/mcp-gway/tokens/supabase.json開発
# Install dependencies
mise install
uv sync
# Run tests
uv run pytest -v
# Lint and format
uv run ruff check src/ tests/
uv run ruff format src/ tests/アーキテクチャ
┌─────────────────────────────────────────────────────────┐
│ MCP Gateway │
├─────────────────────────────────────────────────────────┤
│ CLI (click) │ HTTP/SSE Server (Starlette) │
│ - add │ - POST /mcp (JSON-RPC) │
│ - remove │ - GET /mcp (SSE stream) │
│ - list │ - POST /mcp/messages │
│ - refresh │ │
├─────────────────────────────────────────────────────────┤
│ Code Mode (4 meta-tools) │ Starlark Sandbox │
│ - listToolFiles │ - Hermetic execution │
│ - readToolFile │ - Server injection │
│ - getToolDocs │ │
│ - executeToolCode │ │
├─────────────────────────────────────────────────────────┤
│ Registry (.pyi files) │ OAuth2 (RFC 7591) │
│ - servers/*.pyi │ - Dynamic registration│
│ - Tool signatures │ - Token storage │
└─────────────────────────────────────────────────────────┘
│ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐
│ Server1 │ │ Server2 │ │ Server3 │
│ (HTTP) │ │ (SSE) │ │ (Stdio) │
└─────────┘ └─────────┘ └─────────┘ライセンス
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Self-hosted federated MCP gateway: one OAuth 2.1 MCP server in front of N apps, user-level scopes.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAggregates multiple MCP servers into a single endpoint, enabling LLM clients to access tools, resources, and prompts from various backends through one connection.9 npmMIT
- AlicenseBqualityCmaintenanceAggregates multiple MCP servers via a single interface with token optimization and multiple operating modes (Gateway, Meta, Proxy, Search, Code).78MIT
- AlicenseNot gradedqualityAmaintenanceCentralizes management and routing of multiple MCP servers, exposing them to AI clients via HTTP/SSE endpoints with configurable visibility, sharing, and smart routing.1,706 npmApache 2.0
- AlicenseNot gradedqualityBmaintenanceCentralized management and routing of multiple MCP servers via unified Streamable HTTP/SSE endpoints, with granular group visibility, smart routing, and authentication.1,706 npmApache 2.0