MCP城堡🚀
集中式MCP服务器管理 -通过具有Unix套接字和HTTP/SSE传输的单个集线器路由所有MCP服务器
它做什么
MCP Citadel没有为每个客户端(Claude、Warp、自定义应用程序)生成18个MCP服务器:
- 启动所有MCP服务器一次
- 提供双传输端点:
- UNIX套接字 对于本地客户端(默认) - HTTP/SSE 用于远程访问(可选)
- 将邮件路由到相应的服务器
节省内存
之前:
- 3个客户端×18个服务器=54个进程
- 内存:~5.4GB
之后:
- 1个集线器+18台服务器=19个进程
- 内存:约1.8GB
- 节省:67%(3.6GB)
快速开始
# List configured servers
./target/release/mcp-citadel servers
# Start the hub
./target/release/mcp-citadel start --foreground
# In another terminal, test with netcat
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{"server":"github"}}' | nc -U /tmp/mcp-citadel.sock安装
# Build release binary
cargo build --release
# Install system-wide
sudo cp target/release/mcp-citadel /usr/local/bin/
# Verify
mcp-citadel --help配置
MCP Citadel会自动读取您的Claude Desktop配置:
~/Library/Application Support/Claude/claude_desktop_config.json所有18+MCP服务器将自动加载!
建筑
┌─────────────────┐
│ Claude/Warp │
│ (Client) │
└────────┬────────┘
│
↓
┌────────────────────┐
│ MCP Citadel │ ← Single process
│ /tmp/mcp-citadel.sock│
└────────┬───────────┘
│
├→ github-mcp
├→ tavily-mcp
├→ firecrawl-mcp
├→ ...18 servers
└→ taskmaster-ai客户端使用情况
选项1:客户端适配器(推荐-零配置!)
客户端适配器提供透明路由。更新您的Claude桌面配置:
{
"mcpServers": {
"github": {
"command": "mcp-client",
"args": ["github"]
},
"tavily": {
"command": "mcp-client",
"args": ["tavily-mcp"]
}
}
}就是这样! 适配器会自动执行以下操作:
- 连接到集线器
- 将服务器名称注入到消息中
- 将响应转发回客户端
- 无需更改消息格式!
选项2:与socat直接连接
更新客户端MCP配置以指向集线器:
{
"mcpServers": {
"hub": {
"command": "socat",
"args": ["UNIX-CONNECT:/tmp/mcp-citadel.sock", "STDIO"]
}
}
}然后在MCP消息中指定服务器:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {
"server": "github"
}
}或者使用方法前缀:
{
"jsonrpc": "2.0",
"id": 1,
"method": "github/tools/list"
}特性
✅ 纯Rust-超快,1.2MB二进制文件\ ✅ 与Tokio异步/等待\ ✅ 从Claude Desktop自动加载配置\ ✅ 双重运输 -Unix套接字+HTTP/SSE(MCP规范2025-06-18)\ ✅ 智能消息路由\ ✅ 并发客户处理\ ✅ 优雅的错误处理\ ✅ 客户端适配器 -透明代理(619KB)\ ✅ 后台模式 -带PID管理的后台进程\ ✅ 健康监测 -自动重启崩溃的服务器\ ✅ 状态跟踪 -正常运行时间、服务器数量、指标\ ✅ HTTP/SSE传输 -用于远程访问的流式HTTP\ ✅ 会话管理 -基于UUID的安全会话\ ✅ 原产地验证 -DNS重新绑定保护
演出
- 启动: \ # Connect to specific server via hub
## HTTP/SSE传输
MCP Citadel支持 **流式HTTP** 用于远程访问的传输(MCP规范2025-06-18):
Enable HTTP transport
mcp-citadel start --foreground --enable-http
Test with curl
curl -X POST http://127.0.0.1:3000/mcp \ -H "Content-Type: application/json" \ -H "MCP-Protocol-Version: 2025-06-18" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{...}}'
**安全:** HTTP传输绑定到 `127.0.0.1` 默认情况下,它会验证Origin标头以防止DNS重新绑定攻击。看 [HTTP_TRANSPORT.md](HTTP_TRANSPORT.md) 获取完整文档。
## 发展
Run in dev mode
cargo run -- start --foreground
Run with HTTP transport
cargo run -- start --foreground --enable-http
Run tests
cargo test
Build release
cargo build --release
## 许可证
麻省理工学院
## 作者
凯文·希尔