MCP Server with Cloudflare Workers

MCP Server with Cloudflare Workers

一个开放标准服务器实现,它使 AI 助手能够通过模型上下文协议直接访问 API 和服务,并使用 Cloudflare Workers 构建以实现可扩展性。

Category
访问服务器

README

基于 Cloudflare Workers 的 MCP 服务器

简介

模型上下文协议 (MCP) 是一种开放标准,它使 AI 代理和助手能够与服务进行交互。 通过设置 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

运行 setup 命令来配置 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> {
  /**
   * 来自您的 MCP 服务器的友好问候。
   * @param name {string} 用户的姓名。
   * @return {string} 个性化的问候语。
   */
  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 方法: AI 助手可以调用的示例 MCP 函数。

添加 API 调用

您可以通过与外部 API 集成来扩展您的 MCP 服务器。 这是一个获取天气数据的示例:

export default class WeatherWorker extends WorkerEntrypoint<Env> {
  /**
   * 获取给定位置的天气数据。
   * @param location {string} 城市或邮政编码。
   * @return {object} 天气详情。
   */
  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 文档


推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选