Existing documentation URL(s)
https://developers.cloudflare.com/agents/model-context-protocol/apis/handler-api/#example
What changes are you suggesting?
Change this example:
import { McpServer } from "@modelcontextprotocol/server";
import { createMcpHandler } from "agents/mcp/server";
import { z } from "zod";
function createServer() {
const server = new McpServer({
name: "hello-server",
version: "1.0.0",
});
server.registerTool(
"hello",
{
description: "Return 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;
to this:
import { McpServer } from "@modelcontextprotocol/server";
import { createMcpHandler } from "agents/mcp/server";
import { z } from "zod";
function createServer() {
const server = new McpServer({
name: "hello-server",
version: "1.0.0",
});
server.registerTool(
"hello",
{
description: "Return a greeting",
inputSchema: z.object({
name: z.string().optional().describe("Name to greet"),
}),
},
async ({ name }) => ({
content: [{ type: "text", text: `Hello, ${name ?? "World"}!` }],
}),
);
return server;
}
Additional information
Type signature confirms we need to wrap the raw object in zod.
Existing documentation URL(s)
https://developers.cloudflare.com/agents/model-context-protocol/apis/handler-api/#example
What changes are you suggesting?
Change this example:
to this:
Additional information
Type signature confirms we need to wrap the raw object in zod.