使用说明
项目简介
mcp-workers-ai 是一个专门为 Cloudflare Workers 环境设计的 MCP 服务器 SDK。它提供了一套便捷的工具,用于在 Cloudflare Workers 上快速搭建和部署 MCP 服务器,核心功能是支持 LLM 客户端通过 MCP 协议调用和执行各种工具,扩展 LLM 的能力边界。
主要功能点
- 工具加载: 提供 'loadTools' 函数,可以动态加载和注册来自不同来源(例如 npm 包)的工具,方便集成各种第三方服务和功能。
- 工具调用: 提供 'callTool' 函数,允许 LLM 客户端通过标准的 MCP 协议调用已注册的工具,并获取执行结果。
- Cloudflare Workers 部署: 专为 Cloudflare Workers 环境设计,可以充分利用 Workers 的serverless特性,实现低成本、高可用的 MCP 服务器部署。
- MCP 协议支持: 遵循 Model Context Protocol (MCP) 协议规范,确保与各种 MCP 客户端的兼容性和互操作性。
安装步骤
-
安装 SDK: 在你的 Cloudflare Workers 项目中,使用 npm 或 yarn 安装 'mcp-workers-ai' SDK:
yarn add mcp-workers-ai # 或 npm install -S mcp-workers-ai -
加载工具: 在你的 Worker 代码中,使用 'loadTools' 函数加载需要使用的工具。例如,加载 GitLab 和 Slack 工具:
import { loadTools } from "mcp-workers-ai" // 确保在加载工具前设置必要的环境变量,例如 GitLab Personal Access Token process.env.GITLAB_PERSONAL_ACCESS_TOKEN = env.GITLAB_PERSONAL_ACCESS_TOKEN; const tools = await loadTools([ import("@modelcontextprotocol/server-gitlab/dist/"), import("@modelcontextprotocol/server-slack"), // ... 其他工具 ]); -
处理 LLM 请求: 在你的 Worker 的 'fetch' 函数中,接收 LLM 客户端的请求,并将加载的 'tools' 传递给 LLM 推理请求。当 LLM 返回工具调用指令时,使用 'callTool' 函数执行相应的工具。
import { loadTools, callTool } from "mcp-workers-ai" export default { async fetch(request: Request, env: any): Promise<Response> { // ... (设置环境变量,加载 tools 代码见上方) ... const prompt = await request.text(); const response = await env.AI.run( "@hf/nousresearch/hermes-2-pro-mistral-7b", // 示例模型 { messages: [{ role: "user", content: prompt }], tools, // 将加载的 tools 传递给 LLM }, ); if (response.tool_calls && response.tool_calls.length > 0) { const selected_tool = response.tool_calls[0]; const res = await callTool(selected_tool) // 调用工具 // ... (处理工具调用结果并返回给 LLM) ... } else { return new Response(response.response); } } };
服务器配置
对于 MCP 客户端,配置连接到此 MCP 服务器时,你需要提供 Cloudflare Worker 的 URL 作为服务器地址。由于此实现是基于 Cloudflare Workers 的 serverless 函数,不需要配置启动命令和参数。MCP 客户端直接通过 HTTP 请求与 Worker 的 URL 进行通信。
MCP 客户端配置示例 (JSON 格式):
{ "serverName": "Cloudflare Workers MCP Server", "transport": "http", "address": "https://your-worker-url.workers.dev" // 替换为你的 Cloudflare Worker URL }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义,用于在客户端标识服务器。
- 'transport': 传输协议,对于 Cloudflare Workers 部署的 MCP 服务器,通常使用 'http' 或 'https'。
- 'address': MCP 服务器的地址,请替换为你的 Cloudflare Worker 的 URL。 这通常是你在 Cloudflare Workers 仪表板中获得的 URL,例如 'https://your-worker-name.your-cloudflare-account.workers.dev' 或自定义域名。
基本使用方法
- 部署你的 Cloudflare Worker 项目到 Cloudflare Workers。
- 获取你的 Cloudflare Worker 的 URL。
- 在你的 MCP 客户端中,配置服务器连接信息,将 'address' 设置为你的 Worker URL。
- 客户端即可通过 MCP 协议与你的 Cloudflare Workers MCP 服务器通信,并调用已加载的工具。
例如,使用 curl 模拟客户端请求:
curl https://your-worker-url.workers.dev \ -d "create a file called 'joke.txt' in my svensauleau/test project with your favorite joke on the main branch. Use the commit message 'added unit tests'"
(请替换 'https://your-worker-url.workers.dev' 为你实际的 Worker URL)
注意: 你需要根据实际使用的工具配置相应的环境变量(例如 'GITLAB_PERSONAL_ACCESS_TOKEN'),并在 Cloudflare Workers 的环境变量配置中进行设置。
信息
分类
AI与计算