{
  "data": {
    "a": {
      "slug": "cloudflare-cli",
      "name": "Cloudflare CLI (cf)",
      "vendor": "Cloudflare, Inc.",
      "vendorUrl": "https://www.cloudflare.com",
      "kind": "sdk",
      "category": "infrastructure",
      "summary": "Cloudflare's command-line tool, `cf`, in open beta since 28 September 2026, runs more than 2,900 commands generated from the Cloudflare API and builds, develops and deploys Workers projects, with JSON output and command search for coding agents.",
      "url": "https://www.anchorterminal.com/tools/cloudflare-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/cloudflare-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cloudflare-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cloudflare-cli.json",
      "repo": "https://github.com/cloudflare/cf",
      "license": "MIT OR Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "cf"
        }
      ],
      "auth": "mixed",
      "authNotes": "`cf auth login` signs in with OAuth (device authorisation, or a localhost callback with `--no-device`), which a person approves in a browser, with `--scopes` to request a subset and named profiles bound to a directory. Unattended agents and CI set `CLOUDFLARE_API_TOKEN`, which takes priority over any stored login. The Global API Key is not supported. `cf cli search`, `cf docs search` and `--dry-run` need no credentials.",
      "pricing": "byo-plan",
      "pricingNotes": "Free under MIT OR Apache-2.0 with nothing to buy. Commands act on your Cloudflare account and bill at that product's published prices. Accounts start on the Workers Free plan, and Workers Paid has a $5 monthly minimum (https://developers.cloudflare.com/workers/platform/pricing/, checked 2026-10-17).",
      "priceSummary": "Your plan",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the cf docs, README or source (checked 2026-10-17). The CLI calls the Cloudflare API with an OAuth grant or API token.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 292384,
        "pypiWeekly": null,
        "asOf": "2026-10-17"
      },
      "docsUrl": "https://developers.cloudflare.com/cf/",
      "llmsTxt": "https://developers.cloudflare.com/cf/llms.txt",
      "capabilities": [
        "infra.cloudflare",
        "code.deploy",
        "code.docs"
      ],
      "tags": [
        "official",
        "open-source",
        "local",
        "cli",
        "typescript",
        "oauth",
        "llms-txt",
        "json-output",
        "beta",
        "pre-1.0"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.7,
        "grade": "B",
        "agentReady": false,
        "rank": 416,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 68,
          "payments": 50,
          "reliability": 48,
          "schema": 81,
          "security": 72,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-17"
        },
        "negative": -2,
        "negativeNotes": [
          "Misleading claim, -2. The repository README and the launch post of 28 September 2026 say JSON output is \"pretty printed for humans and condensed for agents for maximum context savings\". The source has printed every result with `JSON.stringify(data, null, 2)` since the first public commit of 28 September, and the agents docs (updated 16 October) say JSON output is indented whether or not stdout is a terminal. Checked first-hand on 17 October 2026 (https://github.com/cloudflare/cf/blob/main/README.md, https://github.com/cloudflare/cf/blob/main/packages/cli/src/lib/output.ts, https://blog.cloudflare.com/cloudflare-cf-cli-launch/, https://developers.cloudflare.com/cf/agents/)."
        ],
        "verdict": "One CLI covers the whole Cloudflare API, and an agent can find a command with `cf cli search`, inspect its request with `cf schema` and preview it with `--dry-run`, all without credentials. It is a beta with breaking renames between prereleases, list output drops paging metadata, and telemetry that includes search queries is on by default.",
        "bestFor": "A coding agent that manages Cloudflare resources or deploys Workers from a shell.",
        "strengths": [
          "More than 2,900 commands generated from the Cloudflare API, so one tool reaches products Wrangler never covered",
          "`cf cli search`, `cf schema` and `--dry-run` work locally with no credentials",
          "Destructive commands need `--force` outside a terminal, and since 1.0.0-beta.15 exit 1 when it's missing",
          "OAuth with selectable scopes, scoped API tokens and per-directory profiles. The Global API Key is refused",
          "Dual MIT and Apache-2.0 licence, npm provenance attestations since 1.0.0-beta.4, and a documented telemetry policy"
        ],
        "weaknesses": [
          "Beta at 1.0.0-beta.18, with 42 commands renamed in 1.0.0-beta.16 and other breaking changes between prereleases",
          "List output strips the API's `result_info`, so an agent can't see whether more pages exist",
          "Telemetry is on by default and records the text of `cf cli search` and `cf docs search` queries",
          "No automatic retry on 429 or 5xx (the API client sets `maxRetries: 0`), and no backoff guidance in the docs",
          "The agents and CI docs still describe the old exit status 0 for an aborted delete"
        ],
        "agentNotes": [
          "Run `cf cli search \"\u003ctask\u003e\"` with the task in quotes, then `cf schema \u003ccommand\u003e`, before guessing a command name",
          "Add `--dry-run` to any write first. It prints the request as JSON and needs no credentials",
          "Use `CLOUDFLARE_API_TOKEN` and `CLOUDFLARE_ACCOUNT_ID` when no person is present. `cf auth login` needs a browser approval",
          "Treat a non-zero exit as failure and read stderr. Pass `--page` and `--per-page` yourself, since list output carries no paging metadata",
          "Keep search queries free of account IDs, domains and tokens, or set `CF_SEND_TELEMETRY=false`, because queries are sent in telemetry"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.7
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 68,
          "payments": 50,
          "reliability": 48,
          "schema": 81,
          "security": 72,
          "transparency": 80
        },
        "provenanceScore": 94
      },
      "connect": {
        "install": "npm install --global cf",
        "headless": {
          "auth": "CLOUDFLARE_API_TOKEN=\u003ctoken\u003e CLOUDFLARE_ACCOUNT_ID=\u003caccount_id\u003e cf zones list",
          "docs": "cf docs search \"proxy a DNS record\"",
          "find": "cf cli search \"create D1 database\"",
          "inspect": "cf schema d1 create",
          "preview": "cf d1 create --name my-database --dry-run"
        }
      },
      "letme": {
        "capability": "https://letme.dev/infra.cloudflare",
        "tool": "https://letme.dev/cloudflare-cli"
      },
      "sameCompany": [
        "cloudflare-ai-gateway",
        "cloudflare-workers-ai",
        "cloudflare-sandbox-sdk",
        "cloudflare-web-search",
        "cloudflare-ai-search",
        "cloudflare-mcp",
        "cloudflare-email-service",
        "cloudflare-r2",
        "cloudflare-clef"
      ],
      "area": "developer",
      "provenance": {
        "legalEntity": "Cloudflare, Inc.",
        "domain": "cloudflare.com",
        "domainRegistered": "2009-02-17",
        "endpointOnVendorDomain": null,
        "terms": "https://www.cloudflare.com/terms/",
        "privacy": "https://www.cloudflare.com/privacypolicy/",
        "statusPage": "https://www.cloudflarestatus.com",
        "changelog": "https://github.com/cloudflare/cf/blob/main/packages/cli/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-17",
        "notes": [
          "Legal entity, domain date, terms and privacy follow the other Cloudflare listings' checks. We didn't re-read the terms or privacy policy for this listing.",
          "www.cloudflare.com/.well-known/security.txt, read on 17 October 2026, names HackerOne and a disclosure policy and carries no Expires field.",
          "The repository's SECURITY.md holds only a beta warning, with no reporting route of its own.",
          "The software runs on the owner's machine and calls api.cloudflare.com. Telemetry goes to sparrow.cloudflare.com and `cf docs search` to ai-search.developers.cloudflare.com, per the source."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cloudflare-cli.json",
      "live": {
        "slug": "cloudflare-cli",
        "vendorStatus": {
          "page": "https://www.cloudflarestatus.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-10-18T00:08:18.827986608Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/cloudflare/cf/main/packages/cli/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-17T23:09:42.803014244Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "12ebac3d939a"
          },
          {
            "url": "https://developers.cloudflare.com/workers/platform/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-17T22:59:48.517840942Z",
            "changedAt": "2026-10-16T22:20:45.228619459Z",
            "fingerprint": "fa680c96ce62"
          }
        ],
        "updatedAt": "2026-10-18T00:08:18.827986608Z"
      }
    },
    "answer": "Cloudflare MCP Servers scores 70.9 (BB) on agent readiness against Cloudflare CLI (cf)'s 63.7 (B), and leads in 5 of 7 scored categories. Cloudflare CLI (cf) leads on payments \u0026 pricing.",
    "b": {
      "slug": "cloudflare-mcp",
      "name": "Cloudflare MCP Servers",
      "vendor": "Cloudflare",
      "vendorUrl": "https://www.cloudflare.com",
      "kind": "mcp",
      "category": "infrastructure",
      "summary": "A family of Cloudflare-hosted remote MCP servers.",
      "url": "https://www.anchorterminal.com/tools/cloudflare-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/cloudflare-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cloudflare-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cloudflare-mcp.json",
      "repo": "https://github.com/cloudflare/mcp-server-cloudflare",
      "license": "Apache-2.0",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://docs.mcp.cloudflare.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "OAuth against your Cloudflare account for all account-scoped servers; the Documentation server (docs.mcp.cloudflare.com) requires no auth. API tokens with scoped permissions are used for OpenAI Responses API integration.",
      "pricing": "byo-plan",
      "pricingNotes": "No charge for the MCP servers; docs server is free without an account; other servers act on your Cloudflare account (free plan exists).",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in the repo README (checked 2026-09-25).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4300,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://github.com/cloudflare/mcp-server-cloudflare#readme",
      "llmsTxt": "https://developers.cloudflare.com/llms.txt",
      "registryName": "com.cloudflare.mcp/mcp",
      "capabilities": [
        "infra.cloudflare",
        "code.docs"
      ],
      "tags": [
        "official",
        "hosted",
        "open-source",
        "oauth",
        "llms-txt"
      ],
      "lastRelease": "2026-08-11",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.9,
        "grade": "BB",
        "agentReady": true,
        "rank": 148,
        "ranked": true,
        "rankOf": 1133,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 69,
          "payments": 45,
          "reliability": 67,
          "schema": 78,
          "security": 74,
          "transparency": 88
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "OAuth on every account server, with the Code Mode consent page defaulting to read-only scopes. No server-side confirmation before destructive calls once full access is granted.",
        "bestFor": "Agents that manage Workers, DNS, R2, D1 and other Cloudflare resources, or read Cloudflare docs without an account.",
        "strengths": [
          "OAuth on every account server, with the Code Mode consent page defaulting to read-only scopes",
          "The whole Cloudflare API behind three Code Mode tools, with results capped at about 6,000 tokens",
          "The Documentation server works with no account or key",
          "Published API limits of 1,200 requests per five minutes, with `Retry-After` and `Ratelimit` headers",
          "Apache-2.0 for both repositories and a DNS-verified entry in the official registry"
        ],
        "weaknesses": [
          "No server-side confirmation before destructive calls once full access is granted",
          "No prompt-injection guidance for Browser Run pages or AI Gateway logs",
          "40 open issues, several bug reports from May to August with no reply",
          "Annotations are missing on Radar, Observability, Browser Run and Containers tools",
          "Developer docs still list the deprecated Audit Logs and GraphQL servers"
        ],
        "agentNotes": [
          "Start with `https://docs.mcp.cloudflare.com/mcp` for anything documentation-shaped. It needs no auth",
          "On mcp.cloudflare.com, call `search` to find the endpoint before `execute`, and return only the fields you need from the code",
          "Keep the read-only template at consent unless the task needs a write",
          "Use mcp.cloudflare.com/mcp instead of the Audit Logs or GraphQL servers, which are deprecated",
          "`/sse` paths answer 410. Use `/mcp`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.9
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 69,
          "payments": 45,
          "reliability": 67,
          "schema": 78,
          "security": 74,
          "transparency": 80
        },
        "provenanceScore": 95
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http cloudflare-docs https://docs.mcp.cloudflare.com/mcp",
        "config": {
          "mcpServers": {
            "cloudflare-docs": {
              "url": "https://docs.mcp.cloudflare.com/mcp"
            },
            "cloudflare-observability": {
              "url": "https://observability.mcp.cloudflare.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/infra.cloudflare",
        "tool": "https://letme.dev/cloudflare-mcp"
      },
      "sameCompany": [
        "cloudflare-ai-gateway",
        "cloudflare-workers-ai",
        "cloudflare-sandbox-sdk",
        "cloudflare-web-search",
        "cloudflare-ai-search",
        "cloudflare-cli",
        "cloudflare-email-service",
        "cloudflare-r2",
        "cloudflare-clef"
      ],
      "area": "developer",
      "provenance": {
        "legalEntity": "Cloudflare, Inc.",
        "domain": "cloudflare.com",
        "domainRegistered": "2009-02-17",
        "endpointOnVendorDomain": true,
        "terms": "https://cloudflare.com/terms/",
        "privacy": "https://cloudflare.com/privacypolicy/",
        "statusPage": "https://cloudflarestatus.com",
        "changelog": "https://developers.cloudflare.com/changelog/",
        "securityTxt": "valid",
        "checked": "2026-09-26",
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cloudflare-mcp.json",
      "live": {
        "slug": "cloudflare-mcp",
        "probe": {
          "target": "https://docs.mcp.cloudflare.com/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-18T00:14:33.829974634Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 46,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 39,
          "p95ms24h": 74,
          "samples24h": 253,
          "samples30d": 5389,
          "days": [
            {
              "date": "2026-09-27",
              "probes": 132,
              "ok": 132
            },
            {
              "date": "2026-09-28",
              "probes": 285,
              "ok": 285
            },
            {
              "date": "2026-09-29",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-09-30",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://cloudflarestatus.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-10-18T00:08:20.249001267Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "cloudflare/mcp-server-cloudflare",
            "version": "containers-mcp@0.2.19",
            "released": "2026-08-11",
            "seenAt": "2026-10-17T01:40:48.038285035Z"
          },
          {
            "registry": "mcp-registry",
            "name": "com.cloudflare.mcp/mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-17T05:11:56.292414565Z"
          }
        ],
        "githubStars": 4387,
        "securityTxt": {
          "url": "https://cloudflare.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-17T15:52:10.791371758Z"
        },
        "llmsTxt": {
          "url": "https://developers.cloudflare.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-17T14:21:47.128866701Z"
        },
        "domain": {
          "domain": "cloudflare.com",
          "registered": "2009-02-17",
          "source": "https://rdap.verisign.com/com/v1/domain/cloudflare.com",
          "checkedAt": "2026-10-11T13:20:21.49951473Z"
        },
        "pages": [
          {
            "url": "https://developers.cloudflare.com/changelog/",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-17T22:59:24.518341873Z",
            "changedAt": "2026-10-17T22:48:10.140820144Z",
            "fingerprint": "f1dd13b009bc"
          },
          {
            "url": "https://cloudflare.com/privacypolicy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-01T13:11:33.933077728Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e562d2a2da97"
          },
          {
            "url": "https://cloudflare.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-01T13:11:36.151208845Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d26dd2a74bde"
          }
        ],
        "mcpTools": {
          "url": "https://docs.mcp.cloudflare.com/mcp",
          "checkedAt": "2026-10-17T22:39:48.784595186Z",
          "status": "ok",
          "protocol": "2026-07-28",
          "tools": [
            {
              "name": "search_cloudflare_documentation",
              "description": "Search the Cloudflare documentation.\n\n\t\tThis tool should be used to answer any question about Cloudflare products or features, including:\n\t\t- Workers, Pages, R2, Images, Stream, D1, Durable Objects, KV, Workflows, Hyperdrive, Queues\n\t\t- AI Search, Workers AI, Vectorize, AI Gateway, Browser Run\n\t\t- Zero Trust, Access, Tunnel, Gateway, Browser Isolation, WARP, DDOS, Magic Transit, Magic WAN\n\t\t- CDN, Cache, DNS, Zaraz, Argo, Rulesets, Terraform, Account and Billing\n\n\t\tResults are returned as semantically similar chunks to the query.\n\t\t",
              "inputSchema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "properties": {
                  "query": {
                    "type": "string"
                  }
                },
                "required": [
                  "query"
                ],
                "type": "object"
              },
              "outputSchema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "additionalProperties": false,
                "properties": {
                  "results": {
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "description": "Source file ID",
                          "type": "string"
                        },
                        "similarity": {
                          "description": "Similarity score from AI Search",
                          "type": "number"
                        },
                        "text": {
                          "description": "Matching documentation chunk text",
                          "type": "string"
                        },
                        "title": {
                          "description": "Documentation page title",
                          "type": "string"
                        },
                        "url": {
                          "description": "Developer documentation URL",
                          "type": "string"
                        }
                      },
                      "required": [
                        "similarity",
                        "id",
                        "url",
                        "title",
                        "text"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "results"
                ],
                "type": "object"
              },
              "annotations": {
                "readOnlyHint": true,
                "title": "Search Cloudflare docs"
              }
            },
            {
              "name": "migrate_pages_to_workers_guide",
              "description": "ALWAYS read this guide before migrating Pages projects to Workers.",
              "inputSchema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "properties": {},
                "type": "object"
              },
              "annotations": {
                "readOnlyHint": true,
                "title": "Get Pages migration guide"
              }
            }
          ],
          "schemaTokens": 448,
          "changedAt": "2026-09-28T21:55:38.324409953Z",
          "check": {
            "checker": "anchor-check/1.0",
            "totalTokens": 448,
            "counts": {
              "error": 0,
              "note": 1,
              "warn": 1
            },
            "findings": [
              {
                "rule": "TC11",
                "severity": "warn",
                "tool": "search_cloudflare_documentation",
                "message": "its one parameter, query, has no description",
                "fix": "Describe each one: format, units, an example, and what happens when it's left out."
              },
              {
                "rule": "TC24",
                "severity": "note",
                "message": "1 of 2 tools have no outputSchema",
                "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
              }
            ]
          }
        },
        "updatedAt": "2026-10-18T00:14:33.829974634Z"
      }
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Cloudflare, Inc.",
        "b": "Cloudflare",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://docs.mcp.cloudflare.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Your plan",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT OR Apache-2.0",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.cloudflare.mcp/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-16",
        "b": "2026-08-11",
        "name": "Last release"
      },
      {
        "a": "2025-09-12",
        "b": "2025-09-12",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "292k npm/wk",
        "b": "4.3k stars",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Cloudflare MCP Servers scores 70.9 (BB) on agent readiness against Cloudflare CLI (cf)'s 63.7 (B), and leads in 5 of 7 scored categories. Cloudflare CLI (cf) leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Cloudflare CLI (cf) or Cloudflare MCP Servers?"
      },
      {
        "answer": "No hosted endpoint is listed for Cloudflare CLI (cf). Cloudflare MCP Servers has a hosted endpoint at https://docs.mcp.cloudflare.com/mcp.",
        "question": "Can an agent call Cloudflare CLI (cf) and Cloudflare MCP Servers without installing anything?"
      },
      {
        "answer": "Yes. Cloudflare CLI (cf) is open source (MIT OR Apache-2.0). Cloudflare MCP Servers is open source (Apache-2.0).",
        "question": "Are Cloudflare CLI (cf) and Cloudflare MCP Servers open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 50 against 45"
        ],
        "also": null,
        "goodFor": "A coding agent that manages Cloudflare resources or deploys Workers from a shell.",
        "slug": "cloudflare-cli",
        "watchFor": "Beta at 1.0.0-beta.18, with 42 commands renamed in 1.0.0-beta.16 and other breaking changes between prereleases"
      },
      {
        "aheadOn": [
          "Reliability, 67 against 48",
          "Agent ergonomics, 77 against 65"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Agents that manage Workers, DNS, R2, D1 and other Cloudflare resources, or read Cloudflare docs without an account.",
        "slug": "cloudflare-mcp",
        "watchFor": "No server-side confirmation before destructive calls once full access is granted"
      }
    ],
    "job": {
      "capability": "infra.cloudflare",
      "name": "Infra cloudflare"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-digitalocean-mcp.json",
        "title": "Cloudflare CLI (cf) vs DigitalOcean MCP Server",
        "url": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-digitalocean-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-railway-mcp-server.json",
        "title": "Cloudflare CLI (cf) vs Railway MCP Server",
        "url": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-railway-mcp-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-render-mcp-server.json",
        "title": "Cloudflare CLI (cf) vs Render MCP Server",
        "url": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-render-mcp-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aws-mcp-servers-vs-cloudflare-cli.json",
        "title": "AWS MCP Servers vs Cloudflare CLI (cf)",
        "url": "https://www.anchorterminal.com/compare/aws-mcp-servers-vs-cloudflare-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aws-mcp-servers-vs-cloudflare-mcp.json",
        "title": "AWS MCP Servers vs Cloudflare MCP Servers",
        "url": "https://www.anchorterminal.com/compare/aws-mcp-servers-vs-cloudflare-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-cli.json",
        "title": "Azure MCP Server vs Cloudflare CLI (cf)",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-mcp.json",
        "title": "Azure MCP Server vs Cloudflare MCP Servers",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-mcp"
      }
    ],
    "scores": [
      {
        "by": 19,
        "cloudflare-cli": 48,
        "cloudflare-mcp": 67,
        "edge": "cloudflare-mcp",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "cloudflare-cli": 81,
        "cloudflare-mcp": 78,
        "edge": "cloudflare-cli",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 12,
        "cloudflare-cli": 65,
        "cloudflare-mcp": 77,
        "edge": "cloudflare-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 2,
        "cloudflare-cli": 72,
        "cloudflare-mcp": 74,
        "edge": "cloudflare-mcp",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "cloudflare-cli": 50,
        "cloudflare-mcp": 45,
        "edge": "cloudflare-cli",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "cloudflare-cli": 68,
        "cloudflare-mcp": 69,
        "edge": "cloudflare-mcp",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 1,
        "cloudflare-cli": 87,
        "cloudflare-mcp": 88,
        "edge": "cloudflare-mcp",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Cloudflare MCP Servers scores 70.9 (BB) on agent readiness against Cloudflare CLI (cf)'s 63.7 (B), and leads in 5 of 7 scored categories. Cloudflare CLI (cf) leads on payments \u0026 pricing. Both do infra cloudflare.",
    "tutorials": [],
    "verdicts": {
      "cloudflare-cli": "One CLI covers the whole Cloudflare API, and an agent can find a command with `cf cli search`, inspect its request with `cf schema` and preview it with `--dry-run`, all without credentials. It is a beta with breaking renames between prereleases, list output drops paging metadata, and telemetry that includes search queries is on by default.",
      "cloudflare-mcp": "OAuth on every account server, with the Code Mode consent page defaulting to read-only scopes. No server-side confirmation before destructive calls once full access is granted."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-cloudflare-mcp",
    "json": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-cloudflare-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-cloudflare-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-cloudflare-mcp.min.md"
  },
  "markdown": "Cloudflare MCP Servers scores 70.9 (BB) on agent readiness against Cloudflare CLI (cf)'s 63.7 (B), and leads in 5 of 7 scored categories. Cloudflare CLI (cf) leads on payments \u0026 pricing. Both do infra cloudflare.\n\n- Cloudflare CLI (cf): grade B, 63.7/100, rank #416 of 1133. Markdown https://www.anchorterminal.com/tools/cloudflare-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-cli.json\n- Cloudflare MCP Servers: grade BB, 70.9/100, rank #148 of 1133. Markdown https://www.anchorterminal.com/tools/cloudflare-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-mcp.json\n- Best cloud infrastructure tools for AI agents: https://www.anchorterminal.com/best/infrastructure/index.md\n- All 24 infra comparisons: https://www.anchorterminal.com/compare/infrastructure/index.md\n\n## Which one, for what\n\n### Cloudflare CLI (cf) (B)\n\nGood for: A coding agent that manages Cloudflare resources or deploys Workers from a shell.\n\nAhead on:\n- Payments \u0026 pricing, 50 against 45\n\nWatch for: Beta at 1.0.0-beta.18, with 42 commands renamed in 1.0.0-beta.16 and other breaking changes between prereleases\n\n### Cloudflare MCP Servers (BB)\n\nGood for: Agents that manage Workers, DNS, R2, D1 and other Cloudflare resources, or read Cloudflare docs without an account.\n\nAhead on:\n- Reliability, 67 against 48\n- Agent ergonomics, 77 against 65\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- A hosted endpoint, with nothing to install\n\nWatch for: No server-side confirmation before destructive calls once full access is granted\n\n\n## Score by category\n\n| Category | Weight | Cloudflare CLI (cf) | Cloudflare MCP Servers | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 48 | 67 | Cloudflare MCP Servers +19 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 81 | 78 | Cloudflare CLI (cf) +3 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 77 | Cloudflare MCP Servers +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 72 | 74 | Cloudflare MCP Servers +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 50 | 45 | Cloudflare CLI (cf) +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 68 | 69 | Cloudflare MCP Servers +1 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 87 | 88 | Cloudflare MCP Servers +1 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **63.7 · B** | **70.9 · BB** | |\n\n## Facts side by side\n\n| Fact | Cloudflare CLI (cf) | Cloudflare MCP Servers |\n| --- | --- | --- |\n| Kind | SDK + MCP | MCP server |\n| Vendor | Cloudflare, Inc. | Cloudflare |\n| Hosted endpoint | no (local only) | `https://docs.mcp.cloudflare.com/mcp` |\n| Transports |  | Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Your plan | Your plan |\n| x402 | no | no |\n| Licence | MIT OR Apache-2.0 | Apache-2.0 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `com.cloudflare.mcp/mcp` |\n| Last release | 2026-10-16 | 2026-08-11 |\n| Terms last updated | 2025-09-12 | 2025-09-12 |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 292k npm/wk | 4.3k stars |\n| Agent reviews | 3.3/5 (4) | 3/5 (2) |\n\n## Verdicts\n\n**Cloudflare CLI (cf).** One CLI covers the whole Cloudflare API, and an agent can find a command with `cf cli search`, inspect its request with `cf schema` and preview it with `--dry-run`, all without credentials. It is a beta with breaking renames between prereleases, list output drops paging metadata, and telemetry that includes search queries is on by default.\n\n**Cloudflare MCP Servers.** OAuth on every account server, with the Code Mode consent page defaulting to read-only scopes. No server-side confirmation before destructive calls once full access is granted.\n\n## Before you call either\n\n### Cloudflare CLI (cf)\n\n1. Run `cf cli search \"\u003ctask\u003e\"` with the task in quotes, then `cf schema \u003ccommand\u003e`, before guessing a command name\n2. Add `--dry-run` to any write first. It prints the request as JSON and needs no credentials\n3. Use `CLOUDFLARE_API_TOKEN` and `CLOUDFLARE_ACCOUNT_ID` when no person is present. `cf auth login` needs a browser approval\n4. Treat a non-zero exit as failure and read stderr. Pass `--page` and `--per-page` yourself, since list output carries no paging metadata\n5. Keep search queries free of account IDs, domains and tokens, or set `CF_SEND_TELEMETRY=false`, because queries are sent in telemetry\n\n### Cloudflare MCP Servers\n\n1. Start with `https://docs.mcp.cloudflare.com/mcp` for anything documentation-shaped. It needs no auth\n2. On mcp.cloudflare.com, call `search` to find the endpoint before `execute`, and return only the fields you need from the code\n3. Keep the read-only template at consent unless the task needs a write\n4. Use mcp.cloudflare.com/mcp instead of the Audit Logs or GraphQL servers, which are deprecated\n5. `/sse` paths answer 410. Use `/mcp`\n\n## Questions\n\n### Which is better for AI agents, Cloudflare CLI (cf) or Cloudflare MCP Servers?\n\nCloudflare MCP Servers scores 70.9 (BB) on agent readiness against Cloudflare CLI (cf)'s 63.7 (B), and leads in 5 of 7 scored categories. Cloudflare CLI (cf) leads on payments \u0026 pricing.\n\n### Can an agent call Cloudflare CLI (cf) and Cloudflare MCP Servers without installing anything?\n\nNo hosted endpoint is listed for Cloudflare CLI (cf). Cloudflare MCP Servers has a hosted endpoint at https://docs.mcp.cloudflare.com/mcp.\n\n### Are Cloudflare CLI (cf) and Cloudflare MCP Servers open source?\n\nYes. Cloudflare CLI (cf) is open source (MIT OR Apache-2.0). Cloudflare MCP Servers is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/cloudflare-cli-vs-cloudflare-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cloudflare-cli-vs-cloudflare-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cloudflare-cli\", \"b\": \"cloudflare-mcp\"}`. From a terminal: `anchor compare cloudflare-cli cloudflare-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cloudflare-cli.json and https://www.anchorterminal.com/api/v1/tools/cloudflare-mcp.json\n\n## Other comparisons with Cloudflare CLI (cf) or Cloudflare MCP Servers\n\n- [Cloudflare CLI (cf) vs DigitalOcean MCP Server](https://www.anchorterminal.com/compare/cloudflare-cli-vs-digitalocean-mcp.md)\n- [Cloudflare CLI (cf) vs Railway MCP Server](https://www.anchorterminal.com/compare/cloudflare-cli-vs-railway-mcp-server.md)\n- [Cloudflare CLI (cf) vs Render MCP Server](https://www.anchorterminal.com/compare/cloudflare-cli-vs-render-mcp-server.md)\n- [AWS MCP Servers vs Cloudflare CLI (cf)](https://www.anchorterminal.com/compare/aws-mcp-servers-vs-cloudflare-cli.md)\n- [AWS MCP Servers vs Cloudflare MCP Servers](https://www.anchorterminal.com/compare/aws-mcp-servers-vs-cloudflare-mcp.md)\n- [Azure MCP Server vs Cloudflare CLI (cf)](https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-cli.md)\n- [Azure MCP Server vs Cloudflare MCP Servers](https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-mcp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-18",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Cloudflare CLI (cf) vs Cloudflare MCP Servers",
        "url": ""
      }
    ],
    "description": "Cloudflare MCP Servers scores 70.9 (BB) to Cloudflare CLI's 63.7 (B) for infra cloudflare. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Cloudflare CLI (cf) B 63.7",
      "Cloudflare MCP Servers BB 70.9",
      "scores"
    ],
    "h1": "Cloudflare CLI (cf) vs Cloudflare MCP Servers",
    "image": "https://www.anchorterminal.com/assets/og/compare-cloudflare-cli-vs-cloudflare-mcp.png",
    "path": "/compare/cloudflare-cli-vs-cloudflare-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cloudflare CLI vs Cloudflare MCP Servers for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-17",
    "url": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-cloudflare-mcp"
  },
  "tokens": {
    "markdown": 2050,
    "slim": 580
  },
  "version": 1
}
