本项目是用于连接和管理 Cloudflare Workers 的 MCP(Model Context Protocol)项目,可将 Cloudflare Workers 集成到 Claude Desktop 中,实现工具和服务的动态加载。
pnpm install
在 package.json 中添加以下脚本:
{
"scripts": {
"generate:docs": "ts-mdx src/index.ts -o docs.json",
"watch-docs": "watchexec npm run generate:docs"
}
}
src/index.ts 中的 JSDoc 注释,生成工具和服务列表 (docs.json)。/rpc 接口处理来自 Claude 的调用请求。WorkerEntrypoint:定义了 workers 中的接口和方法。RPC:提供 RPC 调用接口,支持同步和异步操作。LocalMCPProxy:处理工具列表请求 (tools/list) 和调用请求 (tools/call)。pnpm install
在 package.json 中添加以下脚本:
{
"scripts": {
"generate:docs": "ts-mdx src/index.ts -o docs.json",
"watch-docs": "watchexec npm run generate:docs"
}
}
import type { WorkerEntrypoint } from '@modelcontextprotocol/types'
export class MyWorker implements WorkerEntrypoint {
async greet(name: string) {
return `Hello, ${name}!`
}
}
生成的文档:
{
"MyWorker": {
"methods": [
{
"name": "greet",
"params": [
{
"type": "string",
"name": "name"
}
],
"returns": {
"type": "Promise." ,
"description": "问候消息"
}
}
]
}
}
lib/WorkerMCP.ts 提供 /rpc 接口:
export default function workerMcp() {
return new Response(`Hello from WorkerMCP!`, {
headers: { 'content-type': 'application/json' },
});
}
scripts/local-proxy.ts 启动本地代理服务器,处理 Claude 的请求:
import { MCPProxy } from '@modelcontextprotocol/sdk'
const proxy = new MCPProxy({
entrypoint: 'my-worker',
workerUrl: 'https://your.worker.url'
});
proxy.listen(3001)
worker-mcp/
├── src/ # 工作者入口文件
| └── index.ts # 主要工作者逻辑
├── lib/ # 公共 HTTP 处理器
| └── WorkerMCP.ts # 提供 `/rpc` 接口
├── scripts/ # 脚本和工具
| ├── local-proxy.ts # 本地 MCP 代理
| └── generate-docs.ts # 文档生成工具
└── package.json # 项目依赖和脚本配置
目前仅支持从 src/index.ts 生成文档,通过扫描该文件中的 JSDoc 注释,生成工具和服务列表 (docs.json)。示例代码如下:
import type { WorkerEntrypoint } from '@modelcontextprotocol/types'
export class MyWorker implements WorkerEntrypoint {
async greet(name: string) {
return `Hello, ${name}!`
}
}
生成的文档:
{
"MyWorker": {
"methods": [
{
"name": "greet",
"params": [
{
"type": "string",
"name": "name"
}
],
"returns": {
"type": "Promise." ,
"description": "问候消息"
}
}
]
}
}
lib/WorkerMCP.ts 提供 /rpc 接口,用于处理来自 Claude 的调用请求,示例代码如下:
export default function workerMcp() {
return new Response(`Hello from WorkerMCP!`, {
headers: { 'content-type': 'application/json' },
});
}
scripts/local-proxy.ts 启动本地代理服务器,将 MCP 请求转发到远程工作者,处理 Claude 的请求,示例代码如下:
import { MCPProxy } from '@modelcontextprotocol/sdk'
const proxy = new MCPProxy({
entrypoint: 'my-worker',
workerUrl: 'https://your.worker.url'
});
proxy.listen(3001)
src/index.ts 生成文档。d.ts 文件和 Zod 类型中提取信息。欢迎尝试本项目!如果有任何问题或建议,请通过 GitHub 提交问题或拉取请求。我们期待你的反馈和贡献!