複数のMCPサーバーを1つのStreamable HTTPエンドポイントに集約するプロキシサーバー。
- 複数のMCPサーバー (stdio / SSE / Streamable HTTP) を1つのエンドポイントに統合
- ツール・リソース・プロンプトを自動的に集約
- セッション管理とリクエストの自動振り分け
go build -o mcp-proxy ./cmd/mcp-proxymcp-proxy --config mcp.json --port 8080| フラグ | デフォルト | 説明 |
|---|---|---|
--config |
(必須) | mcp.json設定ファイルのパス |
--port |
8080 |
リッスンポート |
--addr |
127.0.0.1 |
リッスンアドレス |
--log-level |
info |
ログレベル (debug/info/warn/error) |
プロキシが接続するバックエンドMCPサーバーを定義します。
{
"mcpServers": {
"server-a": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
},
"server-b": {
"url": "http://localhost:3000/mcp"
},
"server-c": {
"command": "python",
"args": ["-m", "my_mcp_server"],
"env": {
"API_KEY": "xxx"
}
}
}
}このプロキシ自体をMCPサーバーとして登録するには、クライアント側の設定に以下のように記述します。
{
"mcpServers": {
"mcp-proxy": {
"command": "/path/to/mcp-proxy",
"args": ["--config", "/path/to/mcp.json"]
}
}
}{
"mcpServers": {
"mcp-proxy": {
"url": "http://127.0.0.1:8080/mcp"
}
}
}~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mcp-proxy": {
"command": "/path/to/mcp-proxy",
"args": ["--config", "/path/to/mcp.json", "--port", "8080"]
}
}
}docker build -t mcp-proxy .
docker run -p 8080:8080 -v /path/to/mcp.json:/config/mcp.json mcp-proxy --config /config/mcp.json --addr 0.0.0.0