Skip to main content
Glama
wtrippe0909

Remote MCP Server Authless

by wtrippe0909

Remote MCP Server on Cloudflare (Without Auth)

A remote MCP server with no authentication, deployed on Cloudflare Workers.

Public endpoint: /mcp exposes three demo tools only: add, calculate, and greet. It has no access to any external service or credentials.

Get started

Deploy to Workers:

Deploy to Workers

Or create a local copy from the template:

npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless

Once deployed, the server is at https://<your-worker>.<your-account>.workers.dev/mcp.

Related MCP server: remote-mcp-server-authless

Local development

npm install
npm run dev        # wrangler dev, serves on http://localhost:8787
npm run type-check
npm test

Customizing

Add tools inside init() in src/index.ts using this.server.registerTool(...).

Connect a client

Cloudflare AI Playground: go to https://playground.ai.cloudflare.com/, enter your /mcp URL, and use the tools.

Claude Desktop (via mcp-remote): open Settings > Developer > Edit Config and add:

{
	"mcpServers": {
		"remote-mcp-server": {
			"command": "npx",
			"args": [
				"mcp-remote",
				"http://localhost:8787/mcp"
			]
		}
	}
}

Replace the URL with your deployed /mcp URL when not running locally. Restart Claude Desktop to load the tools.

Executive Operator (Zenzap agent): switched off

src/operator.ts and related files contain a Claude-powered agent that was designed to watch a Zenzap control topic and act on it. It is switched off (owner decision, 2026-10-11):

  • wrangler.jsonc has no cron triggers ("crons": []).

  • scheduled() in src/index.ts does nothing.

  • The Zenzap tools are not exposed through /mcp.

To re-enable it, restore the cron in wrangler.jsonc and the calls noted in the comment in src/index.ts. Its secrets are set with wrangler secret put: ZENZAP_API_KEY, ZENZAP_API_SECRET, ANTHROPIC_API_KEY, and optionally OWNER_MEMBER_ID. Those secrets must be set before it will run.

Known assumptions (for when it's re-enabled)

The response shapes of Zenzap's list endpoints and the request bodies for tasks and polls were not confirmed when this was written. normalizeMessage and extractList in src/zenzap.ts accept common field-name variants and log the raw payload when they find no messages. Tasks and polls use the generic zenzap_request tool.

Related MCP Connectors

Related MCP Servers