M
MCP Worker
tutorial for CBC meeting 3/16
Created 3/17/2026
Updated about 3 hours ago
README
Repository documentation and setup instructions
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 wraps anMcpServerinto a Worker-compatible fetch handler- Minimal setup — define tools on an
McpServer, pass it tocreateMcpHandler, done - Stateless — no Durable Objects, no persistent state, each request is independent
Running
npm install
npm run dev
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 { 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);
}
};
Related examples
mcp— stateful MCP server withMcpAgentand Durable Objectsmcp-worker-authenticated— adding OAuth authenticationmcp-client— connecting to MCP servers as a client
Quick Setup
Installation guide for this server
Install Package (if required)
npx @modelcontextprotocol/server-mcp-worker
Cursor configuration (mcp.json)
{
"mcpServers": {
"aryankeluskar-mcp-worker": {
"command": "npx",
"args": [
"aryankeluskar-mcp-worker"
]
}
}
}
Author Servers
Other servers by aryankeluskar