使用说明
项目简介
'mcp-workers-ai' 是一个轻量级的 MCP(Model Context Protocol)服务器 SDK,专为在 Cloudflare Workers 环境中运行而设计。它简化了在 Cloudflare Workers 上构建 MCP 服务器的过程,主要用于向大型语言模型(LLM)提供工具调用功能。该 SDK 允许开发者轻松集成和管理各种工具,供 LLM 在推理过程中调用,从而增强 LLM 的能力。
主要功能点
- 工具加载与管理: 允许动态加载和管理各种工具,扩展 LLM 的功能边界。
- 工具调用: 支持接收和处理来自 LLM 的工具调用请求,并执行相应的工具。
- Cloudflare Workers 集成: 无缝集成 Cloudflare Workers 平台,利用其 Serverless 特性,实现高可用和弹性伸缩的 MCP 服务。
- 简化开发流程: 提供易于使用的 API,降低在 Cloudflare Workers 上构建 MCP 服务器的复杂性。
安装步骤
-
安装 npm 包: 在你的 Cloudflare Workers 项目中,使用 npm 或 yarn 安装 'mcp-workers-ai' 包:
yarn add mcp-workers-ai # 或 npm install -S mcp-workers-ai -
配置 Cloudflare Workers 环境变量 (可选): 某些工具可能需要环境变量进行配置,例如 'GITLAB_PERSONAL_ACCESS_TOKEN' 用于 GitLab 工具。在你的 'wrangler.toml' 文件中配置 '[vars]' 部分:
[vars] GITLAB_PERSONAL_ACCESS_TOKEN = "YOUR_GITLAB_PERSONAL_ACCESS_TOKEN"
服务器配置
由于 'mcp-workers-ai' 是一个 SDK,它本身并不提供独立的服务器启动命令。你需要将其集成到 Cloudflare Workers 的 'fetch' 函数中。以下是一个配置示例,展示了如何在 'wrangler.toml' 中配置 Cloudflare Worker,并加载和使用工具:
name = "your-mcp-worker-name" # 你的 Worker 名称,自定义 main = "src/index.ts" # 入口文件,通常是 src/index.ts [ai] binding = "AI" # Cloudflare AI binding 名称,用于 LLM 推理 [vars] GITLAB_PERSONAL_ACCESS_TOKEN = "YOUR_GITLAB_PERSONAL_ACCESS_TOKEN" # 工具所需的任何环境变量 [alias] "@modelcontextprotocol/sdk/server/index.js" = "mcp-workers-ai/sdk/server/index.js" # 可选,用于路径别名简化 "@modelcontextprotocol/sdk/server/stdio.js" = "mcp-workers-ai/sdk/server/stdio.js" # 可选,用于路径别名简化
配置信息 (JSON 格式,用于 MCP 客户端):
{ "serverName": "cloudflare-workers-mcp-server", "command": "wrangler", "args": [ "dev" // 或 "publish" 用于部署 // 如果需要指定配置文件,可以添加 "--config wrangler.toml" ], "description": "Cloudflare Workers MCP Server (Tool-focused)", "transport": "HTTP" // 客户端应通过 HTTP 与 Cloudflare Worker 交互 }
参数注释:
- 'serverName': MCP 服务器的名称,自定义即可。
- 'command': 启动服务器的命令,这里使用 'wrangler' 是 Cloudflare Workers 的 CLI 工具。
- 'args': 'wrangler' 命令的参数。 'dev' 用于本地开发, 'publish' 用于部署到 Cloudflare Workers。
- 'description': 服务器的描述信息,方便客户端识别。
- 'transport': 指明客户端与服务器通信的传输协议,Cloudflare Workers 通常通过 HTTP 协议对外提供服务。
注意: MCP 客户端需要配置能够访问你的 Cloudflare Worker URL 的方式,例如通过 'wrangler dev' 提供的本地 URL 或部署后 Cloudflare 分配的域名。
基本使用方法
-
编写 Cloudflare Worker 代码 (例如 'src/index.ts'):
import { loadTools, callTool } from "mcp-workers-ai"; export default { async fetch(request: Request, env: any): Promise<Response> { // 设置工具所需的环境变量 (例如从 Cloudflare Workers 环境变量中获取) process.env.GITLAB_PERSONAL_ACCESS_TOKEN = env.GITLAB_PERSONAL_ACCESS_TOKEN; // 加载工具,例如 GitLab 工具 const tools = await loadTools([ import("@modelcontextprotocol/server-gitlab/dist/"), // 可以加载更多工具... ]); const prompt = await request.text(); // 从请求体中获取用户 prompt // 调用 Cloudflare Workers AI 进行 LLM 推理,并传入工具列表 const response = await env.AI.run( "@hf/nousresearch/hermes-2-pro-mistral-7b", // LLM 模型 ID { messages: [{ role: "user", content: prompt }], tools, } ); // 处理工具调用 if (response.tool_calls && response.tool_calls.length > 0) { const selected_tool = response.tool_calls[0]; const toolResult = await callTool(selected_tool); // 调用 MCP 工具执行器 // ... (后续处理工具调用结果,例如再次调用 LLM) ... return new Response("Tool called and processed."); // 简化的返回示例 } else { return new Response(response.response); // 返回 LLM 的普通响应 } }, }; -
部署或本地运行 Cloudflare Worker: 使用 'wrangler dev' 在本地开发环境中运行,或使用 'wrangler publish' 部署到 Cloudflare Workers。
-
MCP 客户端与 Worker 交互: MCP 客户端需要配置 Worker 的 URL 作为服务器地址,并按照 MCP 协议发送请求,例如工具列表请求或工具调用请求。客户端通常会发送 HTTP 请求到你的 Cloudflare Worker URL,Worker 的 'fetch' 函数会处理这些请求并返回响应。
注意事项
- 'mcp-workers-ai' 主要关注工具功能的实现,可能不包含完整的 MCP 服务器所有功能(例如资源管理、Prompt 模板等),请根据实际需求评估。
- 你需要安装并配置相应的工具包 (例如 '@modelcontextprotocol/server-gitlab') 才能使用对应的工具。
- 确保 Cloudflare Workers 环境配置正确,包括 AI binding 和环境变量等。
信息
分类
AI与计算