MCP Nexus-Cloudflare员工

一键将MCP Nexus部署到Cloudflare的免费层。这为Tavily和Brave Search API提供了一个统一的MCP服务器,并自动轮换API密钥。
特性
- 零成本托管 Cloudflare Workers免费版
- D1数据库 用于持久存储(自动配置)
- 加密的API密钥 使用Web Crypto API
- 包括管理UI -用于管理密钥和令牌的完整web界面
- 7个MCP工具:数据搜索、数据提取、数据抓取、数据地图、数据研究、勇敢搜索、勇敢搜索
部署
选项1:一键部署
单击上面的按钮并按照提示进行操作。您将被要求:
- 授权Cloudflare访问您的GitHub(将创建分叉)
- 配置机密:
- ADMIN_API_TOKEN:管理员API访问的令牌(使用生成 openssl rand -hex 32) - KEY_ENCRYPTION_SECRET:用于加密API密钥的密钥(使用生成 openssl rand -base64 32)
选项2:手动部署
# Clone the repo
git clone https://github.com/ykq007/mcp-nexus.git
cd mcp-nexus/packages/worker
# Install dependencies
npm install
# Create D1 database
npx wrangler d1 create mcp-nexus-db
# Copy the database_id from output to wrangler.jsonc
# Set secrets
npx wrangler secret put ADMIN_API_TOKEN
npx wrangler secret put KEY_ENCRYPTION_SECRET
# Run migrations and deploy
npm run deploy部署后设置
部署之后,您需要添加API密钥并创建客户端令牌。
1.添加Tavilly API密钥
curl -X POST https://your-worker.workers.dev/admin/api/tavily-keys \
-H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"label": "Primary Key", "key": "tvly-xxxxx"}'2.添加勇敢的API密钥(可选)
curl -X POST https://your-worker.workers.dev/admin/api/brave-keys \
-H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"label": "Primary Key", "key": "BSAxxxxx"}'3.创建客户端令牌
curl -X POST https://your-worker.workers.dev/admin/api/tokens \
-H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"description": "Claude Desktop"}'保存返回的 token -它只显示一次。
MCP客户端配置
克劳德桌面/克莱恩
{
"mcpServers": {
"mcp-nexus": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-proxy", "https://your-worker.workers.dev/mcp"],
"env": {
"MCP_HEADERS": "Authorization: Bearer YOUR_CLIENT_TOKEN"
}
}
}
}直接HTTP
curl -X POST https://your-worker.workers.dev/mcp \
-H "Authorization: Bearer YOUR_CLIENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'API终点
| 端点 | 身份验证 | 描述 |
|---|---|---|
POST /mcp | 客户端令牌 | MCP JSON-RPC端点 |
GET /health | 无 | 健康检查 |
GET /admin/api/tavily-keys | 管理员令牌 | 列出Tavily密钥 |
POST /admin/api/tavily-keys | 管理员令牌 | 添加Tavily密钥 |
DELETE /admin/api/tavily-keys/:id | 管理员令牌 | 删除Tavily密钥 |
GET /admin/api/brave-keys | 管理员令牌 | 列出Brave密钥 |
POST /admin/api/brave-keys | 管理员令牌 | 添加Brave密钥 |
DELETE /admin/api/brave-keys/:id | 管理员令牌 | 删除Brave密钥 |
GET /admin/api/tokens | 管理令牌 | 列出客户端令牌 |
POST /admin/api/tokens | 管理令牌 | 创建客户端令牌 |
DELETE /admin/api/tokens/:id | 管理员令牌 | 撤销客户端令牌 |
GET /admin/api/settings | 管理员令牌 | 获取设置 |
PUT /admin/api/settings | 管理员令牌 | 更新设置 |
GET /admin/api/usage | 管理员令牌 | 查看使用日志 |
本地开发
# Install dependencies
npm install
# Create local D1 database
npm run db:migrate:local
# Start dev server
npm run dev建筑
┌─────────────────────────────────────────────────────────┐
│ Cloudflare Workers │
├─────────────────────────────────────────────────────────┤
│ Hono Router │
│ ├── /mcp (MCP JSON-RPC) │
│ ├── /admin/api/* (Admin API) │
│ └── /health │
├─────────────────────────────────────────────────────────┤
│ Services │
│ ├── Key Pool (rotation, cooldown) │
│ ├── Tavily Client │
│ └── Brave Client │
├─────────────────────────────────────────────────────────┤
│ D1 Database │
│ ├── tavily_keys (encrypted) │
│ ├── brave_keys (encrypted) │
│ ├── client_tokens (hashed) │
│ ├── server_settings │
│ └── usage_logs │
└─────────────────────────────────────────────────────────┘许可证
麻省理工学院
