| name | mcp-cloudflare-builder |
| model | sonnet |
| description | Builds production-ready remote MCP servers on Cloudflare Workers with typed tools, OAuth authentication, and Wrangler deployment. Use when: 'build MCP server on Cloudflare', 'remote MCP', 'deploy MCP to Workers', 'MCP OAuth authentication', 'expose tools via MCP'. |
| category | skill-forge |
| triggers | ["build MCP server on Cloudflare","remote MCP","deploy MCP to Workers","MCP OAuth authentication","expose tools via MCP"] |
| tier | 1 |
| agents | ["primary"] |
| tool_dependencies | ["file_system"] |
| inputs | [{"name":"server_name","type":"string","description":"Name for the MCP server (used in wrangler.toml and package.json)","required":true},{"name":"auth_mode","type":"string","description":"Authentication mode — \"public\" (no auth) or \"oauth\" (GitHub, Google, etc.)","required":false}] |
| outputs | [{"name":"mcp_server","type":"ref","format":"directory","description":"Cloudflare Worker project with typed tool definitions, entry point, and wrangler.toml ready for deployment"}] |
MCP Cloudflare Builder
Scaffolds and deploys production-ready Model Context Protocol servers on Cloudflare Workers.
Description
Creates remote MCP servers using the McpAgent Durable Object pattern on Cloudflare Workers. Covers tool definition with Zod validation, public vs. OAuth-protected modes, local testing with MCP Inspector, Wrangler deployment, and client connection. Distinct from mcp-builder (which covers general MCP server concepts) and mcp-server-builder (which scaffolds from OpenAPI specs) — this skill is Cloudflare-specific and deployment-complete.
When to Use
- User wants a remote (not stdio) MCP server
- User needs to expose tools to Claude Desktop or other MCP clients over HTTPS
- User wants MCP authentication via OAuth (GitHub, Google, Auth0, etc.)
- User is deploying on Cloudflare Workers specifically
Workflow
Step 1: Scaffold the Project
Public server (no auth):
npm create cloudflare@latest -- my-mcp-server \
--template=cloudflare/ai/demos/remote-mcp-authless
cd my-mcp-server && npm start
Server runs at http://localhost:8788/mcp.
OAuth-protected server:
npm create cloudflare@latest -- my-mcp-server \
--template=cloudflare/ai/demos/remote-mcp-github-oauth
cd my-mcp-server
Step 2: Define Tools
Tools are functions MCP clients can call. Define them in McpAgent.init():
import { McpAgent } from "agents/mcp";
import { z } from "zod";
export class MyMCP extends McpAgent {
server = new Server({ name: "my-mcp", version: "1.0.0" });
() {
..(
,
{ : z.(), : z.() },
({ a, b }) => ({
: [{ : , : (a + b) }],
})
);
..(
,
{ : z.() },
({ city }) => {
response = ();
data = response.();
{ : [{ : , : .(data) }] };
}
);
}
}