Skip to main content
Glama
Tattzy25

MCP Server (createMcpHandler)

by Tattzy25

MCP Server (createMcpHandler)

The simplest way to run a stateless MCP server on Cloudflare Workers. Uses createMcpHandler from the Agents SDK to handle all MCP protocol details in one line.

What it demonstrates

  • createMcpHandler — the Agents SDK helper that turns an McpServer factory into a Worker-compatible fetch handler

  • Minimal setup — define tools in a factory, pass the factory to createMcpHandler, done

  • Stateless — no Durable Objects, no persistent state, each request is independent

Related MCP server: MCP Worker Server

Running

pnpm install
pnpm start

Open the browser to see the built-in tool tester, or connect with the MCP Inspector at http://localhost:5173/mcp.

How it works

import { McpServer } from "@modelcontextprotocol/server";
import { createMcpHandler } from "agents/mcp/server";
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(request, env, ctx) {
    return createMcpHandler(createServer)(request, env, ctx);
  }
} satisfies ExportedHandler;

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables running a stateless MCP server on Cloudflare Workers with minimal setup, leveraging createMcpHandler for handling MCP protocol.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables running a stateless MCP server on Cloudflare Workers with minimal setup, using a single fetch handler to expose tools through the MCP protocol.
    1
    -