MCP通用电桥
用于将Claude Code连接到任何MCP(模型上下文协议)服务器的高性能通用网桥。为了获得最佳性能,此网桥使用Go编写,提供无缝的stdio到网络转换,并支持多种传输协议。
特性
- 🚀 高性能:\<1ms路由延迟,100k+消息/秒吞吐量
- 🔌 通用兼容性:适用于任何MCP服务器
- 🔄 多个传输:SSE、HTTP、WebSocket(自动检测)
- 💪 生产就绪:断路器、指数回退、健康检查
- 📊 可观察对象:Prometheus指标,结构化日志记录
- 🏗️ 单一二进制:~8MB静态二进制文件,\<50MB运行时内存
- 🐳 Docker就绪:多阶段构建,极简Alpine形象
快速开始
安装
# Download latest release
curl -L https://github.com/jamesprial/mcp-universal-bridge/releases/latest/download/mcp-bridge_linux_amd64 -o mcp-bridge
chmod +x mcp-bridge
sudo mv mcp-bridge /usr/local/bin/配置Claude代码
添加到MCP配置(~/.config/claude/mcp.json 或类似):
{
"mcpServers": {
"universal": {
"command": "mcp-bridge",
"args": ["--server", "http://localhost:3000"],
"env": {
"MCP_TRANSPORT": "sse",
"MCP_LOG_LEVEL": "info"
}
}
}
}测试连接
# Test connectivity to your MCP server
mcp-bridge test --server http://localhost:3000
# Run with debug output
mcp-bridge --server http://localhost:3000 --debug
# Use configuration file
mcp-bridge --config /etc/mcp-bridge.yaml配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_SERVER_URL | MCP服务器URL | http://localhost:3000 |
MCP_TRANSPORT | 传输类型(auto/sse/http/ws) | auto |
MCP_LOG_LEVEL | 日志级别(调试/信息/警告/错误) | info |
MCP_LOG_FORMAT | 日志格式(控制台/json) | console |
MCP_METRICS_PORT | Prometheus度量端口 | 0 (残疾) |
配置文件
创建 mcp-bridge.yaml:
server:
url: "http://localhost:3000"
transport: "sse" # auto, sse, http, websocket
performance:
buffer_size: 1024
max_message_size: 10485760 # 10MB
worker_pool_size: 10
retry:
max_attempts: 10
initial_delay: 100ms
max_delay: 30s
multiplier: 2
monitoring:
metrics_port: 9090
health_port: 8080
log_level: "info"Docker使用
使用Docker Hub镜像
docker run -it --rm \
jamesprial/mcp-bridge:latest \
--server http://host.docker.internal:3000Docker Compose
version: '3.8'
services:
mcp-bridge:
image: jamesprial/mcp-bridge:latest
environment:
- MCP_SERVER_URL=http://mcp-server:3000
- MCP_TRANSPORT=sse
- MCP_LOG_LEVEL=info
- MCP_METRICS_PORT=9090
ports:
- "9090:9090" # Metrics
restart: unless-stopped从源代码构建
# Clone repository
git clone https://github.com/jamesprial/mcp-universal-bridge.git
cd mcp-universal-bridge
# Build with Docker
docker build -t mcp-bridge .
# Or build locally
go build -o mcp-bridge cmd/mcp-bridge/main.go演出
在典型的云虚拟机(4 vCPU,8GB RAM)上进行基准测试:
- 延迟:\<1ms消息路由开销
- 吞吐量:每秒100000多条消息
- 记忆:\<50MB典型使用量
- 中央处理器:1000毫秒时\<5%
- 二进制大小:~8MB(静态,无依赖关系)
监控
普罗米修斯指标
可在 http://localhost:9090/metrics:
mcp_bridge_messages_total-已处理的邮件总数mcp_bridge_message_latency_seconds-消息处理延迟mcp_bridge_active_connections-活动连接计数mcp_bridge_errors_total-按类型列出的错误计数mcp_bridge_message_size_bytes-消息大小分布
健康检查
curl http://localhost:9090/health建筑
该桥使用Go的并发原语来实现最佳性能:
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Claude │◄─────►│ MCP Bridge │◄─────►│ MCP Server │
│ Code │ stdio │ │ SSE │ │
└─────────────┘ └──────────────┘ └─────────────┘
│
┌─────▼─────┐
│ Goroutines│
├───────────┤
│ - Reader │
│ - Writer │
│ - Router │
└───────────┘关键部件:
- 标准处理程序:使用缓冲I/O管理stdin/stdout
- SSE客户端:保持持久的EventSource连接
- 消息路由器:使用sync关联请求/响应。地图
- 断路器:防止级联故障
- 指数级回退:具有抖动的智能重试
故障排除
连接问题
# Test connectivity
mcp-bridge test --server http://your-server:3000
# Enable debug logging
MCP_LOG_LEVEL=debug mcp-bridge --server http://your-server:3000
# Check metrics
curl http://localhost:9090/metrics | grep mcp_bridge_errors性能调整
对于高通量场景:
performance:
buffer_size: 4096 # Increase buffer size
worker_pool_size: 20 # More worker goroutines
connection_pool: 10 # More HTTP connections贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
git checkout -b feat/amazing-feature) - 提交更改(
git commit -m 'feat: add amazing feature') - 推送到分支(
git push origin feat/amazing-feature) - 打开拉取请求
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
