Skip to content

hiing/CbetaMCP

Repository files navigation

Cbeta MCP Workers

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,并绑定自定义域名。请按以下步骤操作:

1. Fork 并部署

  1. Fork 本项目到你的 GitHub
  2. 克隆到本地:
    git clone https://github.com/YOUR_USERNAME/CbetaMCP.git
    cd CbetaMCP
  3. 安装依赖:
    npm install
  4. 登录 Cloudflare:
    npx wrangler login
  5. 部署:
    npm run deploy

2. 绑定自定义域名(⚠️ 关键步骤)

workers.dev 域名无法使用,必须绑定自己的域名。

步骤 1:添加自定义域名到 Cloudflare

  1. 登录 Cloudflare Dashboard
  2. 选择你的 Workers 项目
  3. 进入 Settings > Triggers > Custom Domains
  4. 点击 Add Custom Domain
  5. 输入你的域名,例如:
    • cbeta.yourdomain.com
    • mcp.yourdomain.com
    • cbeta-mcp.yourdomain.com

步骤 2:确保域名在 Cloudflare 托管

  • 你的域名必须使用 Cloudflare 的 DNS
  • 在 Cloudflare 添加域名后,会提供 DNS 记录
  • 在你的域名注册商处修改 DNS 为 Cloudflare 提供的地址

步骤 3:验证域名生效

# 测试你的自定义域名
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 数据即表示成功。

3. 获取你的 Workers 地址

部署并绑定自定义域名后,你会得到这样的地址:

https://cbeta.yourdomain.com

注意:不要使用 Cloudflare 提供的 *.workers.dev 地址,那个无法调用。

3. 配置 MCP 客户端

本项目包含 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 install

开发

npm run dev

部署

npm run deploy

配置与使用

部署完成后,你需要在 MCP 客户端中配置该 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,生产环境必须使用自定义域名。


Claude Desktop

配置文件位置:

  • 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"
      }
    }
  }
}

Cursor

Settings > Features > MCP Servers:

{
  "mcpServers": {
    "cbeta": {
      "command": "node",
      "args": ["./mcp-bridge.js"],
      "env": {
        "SERVER_URL": "https://cbeta.yourdomain.com/mcp"
      }
    }
  }
}

Cline

MCP Server 配置:

{
  "mcpServers": {
    "cbeta": {
      "command": "node",
      "args": ["./mcp-bridge.js"],
      "env": {
        "SERVER_URL": "https://cbeta.yourdomain.com/mcp"
      }
    }
  }
}

提示:Cline 支持使用环境变量 ${env:VAR_NAME}


Windsurf

MCP 配置面板:

{
  "mcpServers": {
    "cbeta": {
      "command": "node",
      "args": ["./mcp-bridge.js"],
      "env": {
        "SERVER_URL": "https://cbeta.yourdomain.com/mcp"
      }
    }
  }
}

OpenCode

配置方法:

  1. 打开 OpenCode 设置
  2. 找到 MCP Servers 配置
  3. 添加以下配置:
{
  "mcpServers": {
    "cbeta": {
      "command": "node",
      "args": ["./mcp-bridge.js"],
      "env": {
        "SERVER_URL": "https://cbeta.yourdomain.com/mcp"
      }
    }
  }
}
  1. 保存并刷新配置

调用示例

配置完成后,你可以在对话中直接调用 CBETA 工具,例如:

  • "搜索心经相关内容"
  • "查找《金刚经》的详细信息"
  • "列出所有禅宗典籍"

AI 助手会自动调用相应的 MCP 工具来获取 CBETA 佛经数据。

直接 HTTP 调用

你也可以直接通过 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": "般若"
      }
    }
  }'

API 端点

  • 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

本项目使用 CBETA API: https://api.cbetaonline.cn/

许可证

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •