Building a Remote MCP Server on Cloudflare (Without Auth)
@rita3ko
Overview
What is Building a Remote MCP Server on Cloudflare (Without Auth)?
This example demonstrates how to deploy a remote MCP server that requires no authentication on Cloudflare Workers. It is intended for developers who want to quickly stand up an MCP server and connect it to remote MCP clients like the Cloudflare AI Playground or Claude Desktop.
How to use Building a Remote MCP Server on Cloudflare (Without Auth)?
Deploy by clicking the "Deploy to Workers" button or running npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless. This creates a server at a URL like remote-mcp-server-authless.<account>.workers.dev/sse. Customize by adding tools inside the init() method of src/index.ts using this.server.tool(...).
Key features of Building a Remote MCP Server on Cloudflare (Without Auth)
- Deployable with one click to Cloudflare Workers
- No authentication required for client connections
- Supports custom tool definitions via MCP tool API
- Uses Server-Sent Events (SSE) transport
- Works with Cloudflare AI Playground and Claude Desktop (via mcp-remote proxy)
Use cases of Building a Remote MCP Server on Cloudflare (Without Auth)
- Quickly prototyping MCP tools without setting up authentication
- Connecting a lightweight MCP server to the Cloudflare AI Playground
- Integrating MCP tools into local desktop clients like Claude Desktop
- Testing remote MCP server functionality in a serverless environment
FAQ from Building a Remote MCP Server on Cloudflare (Without Auth)
How does this differ from an authenticated MCP server?
This server intentionally omits authentication, making setup simpler but less secure. It is intended for development/testing or internal use where auth is not required.
What are the runtime requirements?
The server runs on Cloudflare Workers. Deployment requires a Cloudflare account and optionally Node.js/npm for local creation via the CLI.
Where does the MCP server's data live?
The server itself is stateless; any tool state or data is handled inside the Cloudflare Worker’s runtime and is not persisted beyond a request unless explicitly stored by a tool.
What transport protocol does this server use?
The server communicates over Server-Sent Events (SSE) at the /sse endpoint.
Can I add authentication later?
The README covers only the no-auth version. Adding authentication would require modifying the worker and is outside the scope of this example.