MCP服务器工具

在Cloudflare Workers上运行无状态MCP服务器的最简单方法,使用Agents SDK的`createMcpHandler`处理所有MCP协议细节。

  • by aryankeluskar
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 aryankeluskar/mcp-worker

使用说明

MCP服务器(创建McpHandler)

在Cloudflare Workers上运行无状态MCP服务器的最简单方法。用途 createMcpHandler 从代理SDK中,在一行中处理所有MCP协议细节。

它展示了什么

  • createMcpHandler --代理SDK帮助程序,用于包装 McpServer 转换为与Worker兼容的fetch处理程序
  • 最小设置 --在上定义工具 McpServer,传递给 createMcpHandler,完成了
  • 无状态 --没有持久对象,没有持久状态,每个请求都是独立的

跑步

npm install
npm run dev

打开浏览器查看内置工具测试仪,或连接 MCP检查员 在 http://localhost:5173/mcp.

运作原理

import { createMcpHandler } from "agents/mcp";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

function createServer() {
  const server = new McpServer({ name: "Hello MCP Server", version: "1.0.0" });
  server.registerTool(
    "hello",
    {
      description: "Returns a greeting",
      inputSchema: { name: z.string().optional() }
    },
    async ({ name }) => ({
      content: [{ type: "text", text: `Hello, ${name ?? "World"}!` }]
    })
  );
  return server;
}

export default {
  fetch: async (request, env, ctx) => {
    const server = createServer();
    return createMcpHandler(server)(request, env, ctx);
  }
};

相关示例