使用说明

项目简介

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 客户端的兼容性和互操作性。

安装步骤

  1. 安装 SDK: 在你的 Cloudflare Workers 项目中,使用 npm 或 yarn 安装 'mcp-workers-ai' SDK:

    yarn add mcp-workers-ai
    # 或
    npm install -S mcp-workers-ai
  2. 加载工具: 在你的 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"),
      // ... 其他工具
    ]);
  3. 处理 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' 或自定义域名。

基本使用方法

  1. 部署你的 Cloudflare Worker 项目到 Cloudflare Workers。
  2. 获取你的 Cloudflare Worker 的 URL。
  3. 在你的 MCP 客户端中,配置服务器连接信息,将 'address' 设置为你的 Worker URL。
  4. 客户端即可通过 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与计算