使用说明
MCP Swarm v1
具有自动扩展、请求队列、健康监控和警报功能的动态MCP服务器编排。
一个独立的Go服务器,管理MCP(模型上下文协议)服务器进程池——按需生成它们,通过轮询负载平衡路由工具调用,并根据队列深度自动扩展。代理通过HTTP SSE会话连接,通过标准MCP JSON-RPC协议访问工具。
建筑学
main.go Entry point — config, DB init, HTTP server, graceful shutdown
manager.go Core orchestrator — pool management, health checks, scaling, GC
server.go HTTP server — SSE connect, JSON-RPC routing, management tools
queue.go Per-server FIFO queue with round-robin instance routing
spawn.go Transport-specific process spawning (STDIO, SSE, HTTP)
config.go Environment-driven configuration with validation
db.go SQLite persistence for dynamic server configs
search.go Parallel MCP registry search (official, npm, Smithery)
alerts.go Webhook alerting for connect/disconnect/health events
pids.go PID file tracking for orphan process recovery
logger/ Structured JSON logging with rotation (lumberjack)
metrics/ Atomic counters, EWMA rates, histograms, timers
worker/ Generic goroutine pool with panic recovery + auto-restart
主要特点
- 动态服务器注册 --通过管理工具在运行时添加/删除MCP服务器
- 自动缩放 --队列深度驱动的扩展,空闲终止扩展和冷却
- 健康监测 --具有自动重新连接功能的每实例健康检查
- 请求排队 --具有轮询负载平衡的每服务器FIFO队列
- 状态隔离 --有状态服务器的每个代理隔离实例
- 参考计数GC --基于冷启动时间的自适应TTL,休眠再生
- 代理访问控制 --无限制(所有工具+管理)与限制模式
- 注册表搜索 --跨3个MCP注册表的并行搜索
管理工具
| 工具 | 说明 |
|---|---|
search_registry |
在MCP注册表中搜索可用服务器 |
add_server |
在运行时注册新的MCP服务器 |
remove_server |
删除具有软引用计数删除的服务器 |
list_servers |
列出所有正在运行的服务器及其状态和实例计数 |
tool_detail |
获取特定工具的完整模式(支持批处理数组) |
快速开始
cp .env.example .env
# edit .env with your configuration (see docs/deployment.md)
go build -o bin/mcp-swarm .
./bin/mcp-swarm
配置
看 .env.example 对于所有变量。关键问题:
| 变量 | 默认值 | 用途 |
|---|---|---|
SWARM_PORT |
3100 | HTTP侦听端口 |
SWARM_HOST |
127.0.0.1 | 绑定地址 |
SWARM_AUTH_TOKEN |
(无) | 管理工具的承载令牌 |
MAX_SERVER_INSTANCES |
4 | 每个池的最大实例数 |
MIN_POOL_SIZE |
2 | 最小温暖实例 |
文档
许可证
麻省理工学院——见 许可证
