关于 MCP Server with Cloudflare Workers
这是使用 `workers-mcp` 在 Cloudflare Workers 上构建 MCP 服务的指南与示例,介绍如何将方法和 API 调用作为工具开放,并进行本地测试、部署和共享密钥认证。
主要功能
- 01基于 Worker 配置 MCP 服务
- 02将方法开放为 MCP 工具
- 03连接外部 API
- 04通过本地代理测试
- 05使用 Wrangler 部署
- 06共享密钥认证
适用场景
- 01向 AI 助手开放 API
- 02在本地测试 Worker MCP 服务
- 03将 MCP 服务部署到 Cloudflare Workers
MCP 相关
使用 `workers-mcp` 配置 Cloudflare Workers 以支持 MCP,并将 Worker 方法开放为工具。MCP 客户端可通过本地代理测试连接,也可连接已部署的 Worker。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
使用 Cloudflare Workers 构建 MCP 服务
简介
模型上下文协议(MCP)是一种开放标准,可让 AI Agent 和助手与服务交互。通过搭建 MCP 服务,你可以让 AI 助手直接访问你的 API。
Cloudflare Workers 与 workers-mcp 软件包相结合,可为构建 MCP 服务提供强大且可扩展的解决方案。
前提条件
开始之前,请确保你已准备好:
- 一个 Cloudflare 账户
- 已安装 Node.js
- 已安装 Wrangler CLI(
npm install -g wrangler)
开始使用
第 1 步:创建新的 Cloudflare Worker
首先,初始化一个新的 Cloudflare Worker 项目:
npx create-cloudflare@latest my-mcp-worker
cd my-mcp-worker
然后,登录你的 Cloudflare 账户:
wrangler login
第 2 步:配置 Wrangler
在 wrangler.toml 文件中填写正确的账户信息:
name = "my-mcp-worker"
main = "src/index.ts"
compatibility_date = "2025-03-03"
account_id = "your-account-id"
安装 MCP 工具
要启用 MCP 支持,请安装 workers-mcp 软件包:
npm install workers-mcp
运行设置命令来配置 MCP:
npx workers-mcp setup
此操作将:
- 添加所需的依赖项
- 设置用于测试的本地代理
- 配置 Worker 以符合 MCP 规范
编写 MCP 服务代码
更新 src/index.ts 以定义你的 MCP 服务:
import { WorkerEntrypoint } from 'cloudflare:workers';
import { ProxyToSelf } from 'workers-mcp';
export default class MyWorker extends WorkerEntrypoint<Env> {
/**
* A friendly greeting from your MCP server.
* @param name {string} The name of the user.
* @return {string} A personalized greeting.
*/
sayHello(name: string) {
return `Hello from an MCP Worker, ${name}!`;
}
/**
* @ignore
*/
async fetch(request: Request): Promise<Response> {
return new ProxyToSelf(this).fetch(request);
}
}
核心组件:
- WorkerEntrypoint:管理传入请求并公开方法。
- ProxyToSelf:确保符合 MCP 协议。
- sayHello 方法:示例 MCP 函数,AI 助手可以调用它。
添加 API 调用
你可以通过集成外部 API 来扩展 MCP 服务。以下是获取天气数据的示例:
export default class WeatherWorker extends WorkerEntrypoint<Env> {
/**
* Fetch weather data for a given location.
* @param location {string} The city or ZIP code.
* @return {object} Weather details.
*/
async getWeather(location: string) {
const response = await fetch(`https://api.weather.example/v1/${location}`);
const data = await response.json();
return {
temperature: data.temp,
conditions: data.conditions,
forecast: data.forecast
};
}
async fetch(request: Request): Promise<Response> {
return new ProxyToSelf(this).fetch(request);
}
}
部署 MCP 服务
设置好 Worker 后,将其部署到 Cloudflare:
npx wrangler deploy
部署完成后,你的 Worker 即可使用,AI 助手可以发现并使用你的 MCP 工具。
如需更新 MCP 服务,请重新部署:
npm run deploy
测试 MCP 服务
要在本地测试 MCP 设置:
npx workers-mcp proxy
此命令会启动一个本地代理,以便 MCP 客户端(例如 Claude Desktop)连接。
安全
要保护 MCP 服务,请使用 Wrangler Secrets:
npx wrangler secret put MCP_SECRET
此操作会添加共享密钥身份验证机制,以防止未经授权的访问。
总结
恭喜!你已成功使用 Cloudflare Workers 构建并部署 MCP 服务。现在可以为其扩展更多功能,并向 AI 助手提供新的工具。
如需了解详情,请查看 Cloudflare MCP 文档。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。