使用说明
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重新绑定保护
演出
- 启动: <1秒
- 延迟时间: <1ms开销
- 内存: ~2MB集线器+服务器
- 吞吐量: 10000+毫秒/秒
CLI命令
mcp-citadel servers # List configured servers
mcp-citadel start # Start hub as daemon (background)
mcp-citadel start --foreground # Start hub in foreground
mcp-citadel stop # Stop daemon
mcp-citadel status # Show status (PID, uptime, server count)
# HTTP transport
mcp-citadel start --foreground --enable-http # Enable HTTP on port 3000
mcp-citadel start --foreground --enable-http --http-port 8080 # Custom port
# Client adapter
mcp-client <server-name> # 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 获取完整文档。
发展
# 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
许可证
麻省理工学院
作者
凯文·希尔