Local development runs the Worker withDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/xxyoudeadpunkxx/cloudflare-r2-remote-mcp-worker/llms.txt
Use this file to discover all available pages before exploring further.
AUTH_MODE=none, which disables GitHub OAuth entirely and lets any client connect to the /mcp endpoint without authentication. Configuration is loaded from a .dev.vars file instead of Wrangler secrets. Wrangler Dev proxies requests to a real R2 bucket, so you need at least one existing bucket (the preview bucket created during deployment setup works well here).
Setup
Copy the example vars file
.dev.vars is listed in .gitignore. Do not commit it — it will contain real bucket names and, if you enable optional tools, API credentials.Set R2_BUCKET_NAME
Open
.dev.vars and set R2_BUCKET_NAME to an existing bucket. The preview bucket created during deployment setup is a good choice for local development.(Optional) Configure optional tool variables
If you want to test account tools or presign tools locally, uncomment and fill in the relevant variables in Presign tools (
.dev.vars.Account tools (ENABLE_ACCOUNT_TOOLS=true):ENABLE_PRESIGN_TOOLS=true):Local endpoints
With the dev server running, the Worker is available at:/healthz endpoint verifies the R2 bucket binding is reachable. The /mcp endpoint accepts MCP protocol requests without any authentication token when AUTH_MODE=none.
Full .dev.vars.example
This is the complete contents of.dev.vars.example. Copy it to .dev.vars and replace placeholder values before running npm run dev.
AUTH_MODE is set to "none" in .dev.vars.example by default. If you want to test the full GitHub OAuth flow locally using a tunnelling tool such as Cloudflare Tunnel or ngrok, change AUTH_MODE to "github" and supply the remaining GitHub OAuth variables.Verifying locally
Health check — confirm the Worker starts and the bucket binding is accessible:Using MCP Inspector locally
MCP Inspector provides a browser-based UI to browse and call MCP tools interactively. BecauseAUTH_MODE=none is active locally, no OAuth token is needed.
Start the inspector: