Cloudflare Workers 版本的 Cbeta MCP 服务器,提供 CBETA 佛经数据库的 MCP 工具支持。
本项目是将 Python FastAPI 版本的 CbetaMCP 迁移到 Cloudflare Workers 的版本。
Cloudflare Workers 提供的 *.workers.dev 域名在某些网络环境下无法正常访问。
https://your-worker.your-subdomain.workers.dev ❌ 无法调用
https://cbeta.yourdomain.com ✅ 自定义域名
https://cbeta-mcp.yourdomain.com ✅ 子域名
你需要在 Cloudflare 中为自己的 Workers 绑定自定义域名后才能正常使用。
本项目需要自己部署到 Cloudflare Workers,并绑定自定义域名。请按以下步骤操作:
- Fork 本项目到你的 GitHub
- 克隆到本地:
git clone https://github.com/YOUR_USERNAME/CbetaMCP.git cd CbetaMCP - 安装依赖:
npm install
- 登录 Cloudflare:
npx wrangler login
- 部署:
npm run deploy
workers.dev 域名无法使用,必须绑定自己的域名。
- 登录 Cloudflare Dashboard
- 选择你的 Workers 项目
- 进入 Settings > Triggers > Custom Domains
- 点击 Add Custom Domain
- 输入你的域名,例如:
cbeta.yourdomain.commcp.yourdomain.comcbeta-mcp.yourdomain.com
- 你的域名必须使用 Cloudflare 的 DNS
- 在 Cloudflare 添加域名后,会提供 DNS 记录
- 在你的域名注册商处修改 DNS 为 Cloudflare 提供的地址
# 测试你的自定义域名
curl https://cbeta.yourdomain.com/mcp -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test"}}}'看到返回 JSON 数据即表示成功。
部署并绑定自定义域名后,你会得到这样的地址:
https://cbeta.yourdomain.com
注意:不要使用 Cloudflare 提供的 *.workers.dev 地址,那个无法调用。
本项目包含 mcp-bridge.js 文件,它作为 MCP 客户端与 Cloudflare Workers 之间的桥梁。你需要配置两个环境变量:
| 环境变量 | 说明 | 示例 |
|---|---|---|
SERVER_URL |
必需 - 你的 Cloudflare Workers 自定义域名地址 | https://cbeta.yourdomain.com/mcp |
MCP_BRIDGE_PATH |
可选 - mcp-bridge.js 的路径,默认为 ./mcp-bridge.js |
/absolute/path/to/mcp-bridge.js |
方式一:使用默认相对路径(推荐)
确保 mcp-bridge.js 与 MCP 配置文件在同一目录:
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "https://cbeta.yourdomain.com/mcp"
}
}
}
}workers.dev
方式二:使用环境变量指定路径
先设置环境变量:
# Linux/Mac
export MCP_BRIDGE_PATH="/path/to/cbeta-mcp/mcp-bridge.js"
export SERVER_URL="https://cbeta.yourdomain.com/mcp"
# Windows PowerShell
$env:MCP_BRIDGE_PATH="C:/path/to/cbeta-mcp/mcp-bridge.js"
$env:SERVER_URL="https://cbeta.yourdomain.com/mcp"然后配置 MCP 客户端:
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "https://cbeta.yourdomain.com/mcp"
}
}
}
}- Cloudflare Workers
- TypeScript
- Zod (数据验证)
- MCP (Model Context Protocol)
npm installnpm run devnpm run deploy部署完成后,你需要在 MCP 客户端中配置该 MCP 服务器。
由于 Cloudflare Workers 只支持 HTTP 传输,而 MCP 客户端通常使用 stdio,所以需要 mcp-bridge.js 作为中间桥梁。
下载/克隆项目后,你会得到以下文件:
CbetaMCP/
├── mcp-bridge.js # ⭐ 桥接脚本(使用此文件)
├── src/ # 源代码(无需修改)
├── package.json # 项目配置
├── wrangler.toml # Workers 配置
└── README.md # 本文档
你只需要关注 mcp-bridge.js 文件,其他是部署到 Cloudflare 所需的代码。
mcp-bridge.js 支持多种路径写法:
| 方式 | 示例 | 适用场景 |
|---|---|---|
| 相对路径(推荐) | "./mcp-bridge.js" |
脚本与 MCP 配置文件同目录 |
| 绝对路径(Linux/Mac) | "/home/user/CbetaMCP/mcp-bridge.js" |
指定完整路径 |
| 绝对路径(Windows) | "C:/Users/name/CbetaMCP/mcp-bridge.js" |
Windows 系统(使用正斜杠) |
| 用户目录 | "~/CbetaMCP/mcp-bridge.js" |
存放在用户主目录下 |
以下配置适用于所有 MCP 客户端。只需将 SERVER_URL 替换为你自己的 Workers 地址,并根据实际情况调整 mcp-bridge.js 的路径。
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "https://cbeta.yourdomain.com/mcp"
}
}
}
}args: mcp-bridge.js 的路径(相对或绝对路径)SERVER_URL: 你的 Cloudflare Workers 自定义域名地址(不是 workers.dev)
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "http://localhost:8787/mcp"
}
}
}
}注意:本地开发使用 localhost,生产环境必须使用自定义域名。
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "https://your-worker-name.your-subdomain.workers.dev/mcp"
}
}
}
}Settings > Features > MCP Servers:
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "https://cbeta.yourdomain.com/mcp"
}
}
}
}MCP Server 配置:
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "https://cbeta.yourdomain.com/mcp"
}
}
}
}提示:Cline 支持使用环境变量 ${env:VAR_NAME}
MCP 配置面板:
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "https://cbeta.yourdomain.com/mcp"
}
}
}
}配置方法:
- 打开 OpenCode 设置
- 找到 MCP Servers 配置
- 添加以下配置:
{
"mcpServers": {
"cbeta": {
"command": "node",
"args": ["./mcp-bridge.js"],
"env": {
"SERVER_URL": "https://cbeta.yourdomain.com/mcp"
}
}
}
}- 保存并刷新配置
配置完成后,你可以在对话中直接调用 CBETA 工具,例如:
- "搜索心经相关内容"
- "查找《金刚经》的详细信息"
- "列出所有禅宗典籍"
AI 助手会自动调用相应的 MCP 工具来获取 CBETA 佛经数据。
你也可以直接通过 HTTP POST 请求调用 MCP 服务:
curl -X POST https://cbeta.yourdomain.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'调用工具示例:
curl -X POST https://cbeta.yourdomain.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_cbeta_keyword",
"arguments": {
"keyword": "般若"
}
}
}'POST /mcp- MCP 协议接口tools/list- 列出所有可用工具tools/call- 调用指定工具
search_cbeta_keyword- 关键词搜索search_cbeta_work- 典籍搜索search_cbeta_author- 作者搜索search_cbeta_category- 分类搜索
catalog_cbeta_sutra- 经文目录catalog_cbeta_author- 作者目录catalog_cbeta_dynasty- 朝代目录
work_cbeta_info- 典籍信息work_cbeta_content- 典籍内容work_cbeta_toc- 目录结构
本项目使用 CBETA API: https://api.cbetaonline.cn/
MIT