mrkeyoor.com_
Sun 20 Sept 15:50 UTC
Automationevaluationupdated 20 Sept 2026

mcp-server-cloudflare review

Cloudflare MCP Server is a monorepo behind a set of hosted Model Context Protocol endpoints for documentation, Workers, logs, browser rendering, DNS analytics, security, and other Cloudflare products. An MCP client can inspect account data and, where a tool permits it, make changes through a narrower product-specific interface than Cloudflare's separate Code Mode server.

Verdict

Our Cloudflare MCP Server run installed 870 packages in 16 seconds and passed all 320 tests in 129 seconds, while the monorepo supplied no build target. Use the hosted domain server that matches one narrow job, with a token limited to that job and human approval around writes. Choose Code Mode for broad exploration, or Terraform when production changes need a reviewable plan.

We ran it

Lab card: what happened when we ran mcp-server-cloudflareScreenshot of mcp-server-cloudflare (github.com/cloudflare/mcp-server-cloudflare)
Install✓ · 16s870 packages · 836 MB
Buildn/ano build script
Tests✓ · 129s320 passed · 0 failed of 320 (vitest)
Repo469 files~300,081 lines of source · 12.1 MB · 4 CI workflows

Answers from our run

Does mcp-server-cloudflare build from source?

Dependencies installed in 16 seconds (870 packages), and the project has no separate build step. We cloned commit db90847 into a clean Debian container with 3 CPUs and no project-specific setup.

Do mcp-server-cloudflare's tests pass?

Yes: 320 of 320 passed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use mcp-server-cloudflare?

Users who want broad coverage of the Cloudflare API from one server: the README recommends the separate cloudflare/mcp Code Mode project for that job.

What are the alternatives to mcp-server-cloudflare?

Cloudflare Code Mode MCP, Cloudflare Terraform Provider, Cloudflare TypeScript. Our Cloudflare MCP Server run installed 870 packages in 16 seconds and passed all 320 tests in 129 seconds, while the monorepo supplied no build target.

Setup4/5Hosted URLs are easy; local work pulls 870 packages
Docs4/5Server and transport choices are clear; scope details still lag
Community4/54,255 stars with releases and issue activity through September
Maturity4/5320 tests pass, with open auth and product-specific edge cases

Who it’s for

Cloudflare users who want typed tools for one product area inside an MCP client.
Developers debugging Workers builds, logs, bindings, browser jobs, or AI Gateway data.
Security and operations teams prepared to issue narrowly scoped credentials and audit tool calls.
Contributors comfortable with pnpm workspaces, TurboRepo, Vitest, and Cloudflare Workers.

Who it’s NOT for

Users who want broad coverage of the Cloudflare API from one server: the README recommends the separate cloudflare/mcp Code Mode project for that job.
Teams that cannot give an AI client carefully scoped Cloudflare credentials: the README says these servers can make suggested account changes, not only read data.
Legacy clients that still issue GET /sse: the latest release returns 410 and requires Streamable HTTP at /sse or preferably /mcp.
Headless operators relying on the local npm package with only an API token: open issue 470 reports that version 0.2.0 requires Wrangler's interactive OAuth configuration.
Operators who depend on raw cron-event inspection through Workers Observability: open issue 440 reports that valid events without an outcome field fail schema parsing.
Free or Pro users choosing the DNS Analytics server for dns_report: issue 456 reports that its requested dimensions require a Business plan.

Setup reality

Our sandbox installed 870 pnpm packages in 16 seconds and used 836 MB on disk. The repository had no build script or target, so the build step was skipped. Vitest completed in 129 seconds with all 320 tests passing.

Using the hosted servers does not require cloning the monorepo. A compatible remote MCP client connects to one of the published /mcp URLs, then authenticates through OAuth or a Cloudflare API token with the required scopes. Some tools and data require paid Cloudflare plans.

Local contributors face a larger setup: pnpm 10.8, workspace packages, TurboRepo, Workers tooling, and per-app configuration. The checkout has 4 CI workflows and no Dockerfile. Transport behavior is also version-sensitive because legacy HTTP+SSE has been removed.

Sixteen hosted servers trade API breadth for typed tools

The README lists 16 domain-specific endpoints maintained in this repository. They cover Cloudflare documentation, Workers bindings and builds, observability, containers, browser rendering, Logpush, AI Gateway, AutoRAG, audit logs, DNS analytics, digital experience monitoring, CASB, Radar, the Cloudflare blog, and a demo server. Each endpoint exposes a curated tool set for one area, which makes its permissions and prompts easier to reason about than a single server spanning the whole Cloudflare API.

Every endpoint now uses a stateless Streamable HTTP handler at /mcp, with /sse retained as a URL alias. A legacy HTTP+SSE GET /sse receives 410 Gone instead of opening an event stream. Release containers-mcp@0.2.19, published August 11, 2026, added that migration response and points clients toward /mcp. This is useful behavior, but it means an old MCP configuration can keep the right-looking URL while speaking the wrong transport.

One remote URL is easy; account authority is the setup

A hosted connection does not require the 870 packages in our local install. You give a remote-capable MCP client the product endpoint, complete OAuth, and select an account where needed. The README also documents bearer API tokens for the OpenAI Responses API. Open issue 466 asks Cloudflare to document that token path for other MCP clients and to publish the scopes required by each server. Until that happens, operators should derive the smallest token from the actual tools they intend to expose.

Permission choice is the deployment. The README says a client can read configurations, process information, suggest changes, and make those changes through Cloudflare services. A tool call can therefore reach DNS, Workers, account security, or stored prompts depending on the chosen server. Put read-only investigation on separate credentials from mutation. For write-capable tools, require the user to inspect the target account, zone, resource, and proposed diff before the call runs. Natural-language confirmation alone is too easy to misunderstand.

What happened when we ran it

We cloned commit db90847 into an unprivileged Debian container with 3 CPUs and 8 GB of RAM. Pnpm installed 870 packages in 16 seconds and occupied 836 MB. The root package had no build script or target, so our harness skipped the build step. That is a neutral repository fact, not a failed build. The code is organized as workspaces whose checks are driven through shared TurboRepo and package scripts.

Vitest completed in 129 seconds with 320 passed and 0 failed out of 320. That is the strongest test count in this batch. The checkout contained 469 files, roughly 300,081 source lines, 4 CI workflow files, and no Dockerfile. Tests live inside apps and packages rather than one top-level test directory. Our run checked repository behavior with mocks and local tooling. It did not authorize a Cloudflare account or exercise production zones.

The broad Code Mode server lives in another repository

Cloudflare now recommends cloudflare/mcp when an agent needs broad API coverage through code execution. This repository remains the home for narrower servers with guided schemas. The distinction is practical. A DNS or observability server advertises a bounded vocabulary, while Code Mode can discover and call a wider set of APIs. Pick the smallest surface that completes the job. Adding 16 product servers to one client recreates broad authority with more consent screens and more tools to choose incorrectly.

Terraform is the better fit when changes should pass through a plan and code review. The official TypeScript client is better when application code should choose every endpoint and argument explicitly. MCP earns its place for interactive investigation and guided operations where a person benefits from asking a question in plain language. It should not replace an existing deployment pipeline merely because the same operation can be expressed as a tool call. The 320 passing tests support the implementation, not the wisdom of each requested change.

Cron events can disappear at the schema boundary

Open issue 440 reports that the Workers Observability server rejects cron-triggered events because their valid API shape omits the outcome field required by the MCP schema. The REST API returns the events, but the MCP layer fails while parsing them. Issue 418 describes the same field requirement discarding an entire response when any row lacks it. A proposed fix is open. Until merged and deployed, scheduled-job investigations need the documented calculations-view workaround or the REST endpoint.

Other open reports are narrower but decision-relevant. Issue 456 says dns_report requests a dimension unavailable below the Business plan and that a parameter named zone actually expects a zone ID. Issue 470 reports that the local stdio package cannot start headlessly from an API token because it expects Wrangler's OAuth file. These failures affect particular products and transports, not all 16 hosted servers. Test the exact endpoint, plan, credential style, and client you intend to use.

September reports follow an August package release

GitHub showed 4,255 stars and 77 combined open issues and pull requests. The default branch was last pushed on September 1, 2026, while new issue activity continued through September 20. The latest GitHub release was containers-mcp@0.2.19 on August 11, a package-specific tag rather than one version for all workspaces. The queue mixes real compatibility reports with unrelated submissions, so the combined count is not a bug count.

Cloudflare's domain servers are the sensible first MCP choice when one Cloudflare product is the task. Our 320 passing tests provide a solid reason to trial them, and the hosted endpoints remove most installation work. The remaining decision is authority: give each server the smallest credential it can use, keep writes visible, and retain REST or Terraform fallbacks for incident response and production changes. A green MCP response should never be the only record of what changed.

Alternatives

ProjectWhat it isPick it when
Cloudflare Code Mode MCPCloudflare's recommended MCP server for broad API access through code execution.pick this instead when one general server should cover many Cloudflare products and code execution is acceptable.
Cloudflare Terraform ProviderDeclarative Cloudflare infrastructure management with plans and reviewable state changes.pick this instead when production changes need an explicit plan, code review, and repeatable infrastructure state.
Cloudflare TypeScriptThe official TypeScript client for calling Cloudflare APIs directly.pick this instead when you are building a conventional application and want explicit API calls rather than natural-language tool selection.

What people are saying

  1. [github-trending] cloudflare/mcp-server-cloudflare

Sources

  1. Cloudflare MCP Server README
  2. containers-mcp 0.2.19 release
  3. Issue 440: cron observability parsing failure
  4. Issue 470: headless stdio authentication failure
  5. Issue 456: DNS Analytics plan and zone-ID behavior
  6. Issue 466: API-token documentation request

More automation reviews

agent-desktop · yichen-skills · py12306 · goldie · TikTokDownloader · goreleaser · the whole board →