Cloudflare

Deploy bitmcp on Cloudflare Workers from dist/server.js.

bitmcp build emits dist/server.js, hashed View HTML under dist/ui/, and dist/manifest.json. Cloudflare Workers serve dist/server.js directly.

Scaffold for Cloudflare

npx bitmcp create my-app --deploy cloudflare

That writes deploy: "cloudflare" and wrangler.jsonc with main set to dist/server.js.

Set secrets and config

  1. Set BITMCP_STATE_KEY as a Worker secret or var
  2. Set http.allowedHosts in bitmcp.config.ts to your workers.dev or custom domain
  3. Set MCP_URL when OAuth is enabled

nodejs_compat is required. Confirmations and ctx.ask require BITMCP_STATE_KEY in production.

Deploy

wrangler deploy

Wrangler runs pnpm build and serves dist/server.js directly.

bitmcp.config.ts

import { defineConfig } from "bitmcp";

export default defineConfig({
  deploy: "cloudflare",
  http: {
    path: "/mcp",
    allowedHosts: ["your-worker.workers.dev"],
  },
});

When OAuth is enabled, set MCP_URL to your public MCP endpoint. See Authentication.

See also

Vercel and Node and custom deploy the same dist/server.js artifact.