Head to head · Deployment · October 2026 research run

Cloudflare CLI (cf) vs Netlify API + MCP

Netlify API + MCP scores 69.4 (B) on agent readiness against Cloudflare CLI (cf)'s 65.1 (B), and leads in 4 of 7 scored categories. Cloudflare CLI (cf) leads on security & auth and transparency & trust. Both do deployment.

Best cloud infrastructure tools for AI agents · All 31 infra comparisons

Which one, for what

Cloudflare CLI (cf) B

Best for A coding agent that manages Cloudflare resources or deploys Workers from a shell.

Ahead on

  • Security & auth, 79 against 59
  • Transparency & trust, 88 against 81

Also in its favour

  • Open source

Watch for

Beta at 1.0.0-beta.26, with output moved from stdout to stderr in 1.0.0-beta.20 and 1.0.0-beta.21 and other breaking changes between prereleases

Netlify API + MCP B

Best for An agent that builds and deploys web projects, sets environment variables and reads forms or logs on a team's Netlify account, including with no account through anonymous deploys.

Ahead on

  • Reliability, 67 against 48
  • Payments & pricing, 55 against 50
  • Maintenance & community, 87 against 68

Also in its favour

  • A hosted endpoint, with nothing to install
  • Runs on your own machine

Watch for

Personal access tokens and OAuth apps have no scopes, so a token reaches every team its owner belongs to

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Security & auth Cloudflare CLI (cf) +20

Cloudflare CLI (cf) 79

OAuth sign-in that a person approves, with --scopes to request a subset and, since 1.0.0-beta.25, cf auth scopes to list granted permissions by product, or a scoped and revocable API token in CLOUDFLARE_API_TOKEN. The Global API Key is not supported and no flag takes a token. Since 1.0.0-beta.19 (20 October) cf auth login --use-keyring encrypts OAuth credentials with the OS keychain, which the 17 October check found only as future work; the default comes from a shared package we didn't read (30). All DELETE operations and those the schema marks destructive need confirmation, and outside a terminal only --force bypasses it. 1.0.0-beta.21 notes that some confirmations in cf deploy and cf workers triggers deploy still go ahead without asking when stdout isn't a terminal. Named profiles can be bound to one directory, so an agent can hold separate credentials. No read-only mode was found, and the docs warn that --force is also an API parameter on some commands, as with cf workers delete --force (15 of 20). Output is the account's own API data and Cloudflare's docs search results, which can include text other people wrote, such as logs or form submissions. The docs give privacy guidance for search queries but none on untrusted content (6 of 15). Cloudflare account audit logs record API changes, per the Cloudflare MCP listing's check, and cf's requests carry its version, execution mode and the detected agent harness in headers. --dry-run shows each request before it is sent (10 of 15). security.txt, re-read on 2 November, names HackerOne and a disclosure policy and has no Expires field. Cloudflare's ISO certifications page, read on 2 November, says it is certified to ISO 27001 (since 2019, now 27001:2022), 27018 and 27701 for the Cloudflare global cloud platform. 2 held back for the missing Expires, as cloudflare-r2, cloudflare-workers-ai and cloudflare-sandbox-sdk read the same evidence. The repository's SECURITY.md is only a beta warning with no route of its own, Actions are pinned by SHA, zizmor checks the workflows, and OSV lists no advisory for the npm package cf (18). 30 + 15 + 6 + 10 + 18 = 79.

Netlify API + MCP 59

Personal access tokens get a name and an expiry date at creation and can be deleted, but no scopes are documented and the spec's OAuth2 implicit flow declares none, so a token reaches every team its owner belongs to. The hosted MCP uses OAuth 2.1 with PKCE and dynamic registration and advertises read and write scopes, which the source sanitises at registration and does not check on tool calls, while the upstream Netlify token it holds is unscoped. Secrets travel in headers; v1.21.0 keeps the upstream token out of URLs (18 of 30). Read-only tools are grouped apart from writes and writes are marked destructive, but there is no read-only token and no confirmation step (10 of 20). Form submissions and request logs written by site visitors reach the model through the tools, with no injection guidance (2 of 15). Team audit log on Pro and Enterprise, a site audit log, and the MCP server logs client, agent and model names per call (12 of 15). Public HackerOne bounty, SOC 2 Type II, ISO 27001 and 27018, PCI DSS and HIPAA on the trust centre, a disclosure policy post, and no security.txt (17 of 20). 18 + 10 + 2 + 12 + 17 = 59.

Reliability Netlify API + MCP +19

Cloudflare CLI (cf) 48

Read with the local-software lines, since the owner runs the CLI on their own machine; Cloudflare's status page and incident record aren't scored on these lines. Official npm package cf, with Node.js 22.23.0, 24.22.0 or 26.12.0 or later within each major stated since 1.0.0-beta.20 (20). A public GitHub Actions workflow runs lint and type checks, the CLI's vitest suite on Linux, macOS and Windows and the Wrangler compatibility corpus on every pull request and push to main. We couldn't read the run history, because GitHub's web pages and API answer 403 in our session, so whether main is passing is unchecked (15 of 25). The open issue list was unreadable for the same reason, so crash and regression reports are scored absent (0, unchecked). Changesets and a package changelog that labels breaking changes, such as "Breaking change during the beta" on the stderr moves in 1.0.0-beta.20 and 1.0.0-beta.21. Breaking changes ship between prereleases, which semver allows for a beta (13 of 15). 1.0.0-beta.26, still declared beta in the docs and SECURITY.md (0). 20 + 15 + 0 + 13 + 0 = 48.

Netlify API + MCP 67

Read with the hosted lines. Statuspage at netlifystatus.com with component history and an Atom feed (20). From 5 August to 3 November 2026 the feed lists 19 incidents and no maintenance. None names the API or the MCP server. Errors reaching hosted sites and the Netlify application for about 85 minutes on 21 September read as one major outage; errors on the edge network for 55 minutes on 5 October, CDN DNS errors for 34 minutes on 24 September, 6 minutes of 500s on 18 August, and build, Agent Runner, AI Gateway and log-delay incidents read as minor (10 of 30). Limits are published with numbers, about 500 requests a minute, 3 deploys a minute and 100 a day, with X-RateLimit headers (15). The docs say retrying a timed-out upload is safe and give the reset header, but no backoff guidance, no idempotency key for deploys or site creation, and 429 appears in the spec only on agent runner endpoints (7 of 15). A 99.99 per cent SLA is named for Enterprise on the pricing page, with its terms in order forms (5 of 10). The API is generally available (10). 20 + 10 + 15 + 7 + 5 + 10 = 67.

Maintenance & community Netlify API + MCP +19

Cloudflare CLI (cf) 68

1.0.0-beta.26 tagged on 29 October 2026 (30). 27 prereleases from 1.0.0-beta.0 (25 September, per the 17 October check) to 1.0.0-beta.26, eight of them since 17 October (beta.19 to beta.26), by the repository's tags (20). Issues and pull requests weren't readable, so responsiveness is scored absent. During the beta, a workflow closes outside pull requests that weren't coordinated with the team in advance (0, unchecked). Cloudflare's official CLI, current and published from GitHub Actions with provenance, but in no registry (10 of 15). Renovate and Dependabot update dependencies, and CI runs on three operating systems. Run results unchecked (8 of 10). 30 + 20 + 0 + 10 + 8 = 68.

Netlify API + MCP 87

@netlify/mcp 1.21.0 tagged on 26 October 2026 (changelog 23 October), a commit on 28 October, the spec at 2.63.1 and changelog entries to 26 October (30). Six MCP tags between 25 September and 26 October 2026 (20). Issue and pull request responsiveness could not be read (github.com refuses our reader and the API answered empty), while the changelog, the answers.netlify.com forum, Discord and a support hub exist and the MCP changelog cites numbered pull requests (12 of 25). Current official SDKs, a Go client, a JS client and netlify-cli 27.16.2, though the server card names com.netlify/mcp and no such entry is in the official MCP registry (15). CI runs typecheck, build and 31 tests on pinned actions, releases through release-please with npm provenance, and the server runs on @modelcontextprotocol/server 2.2.0 (10). 30 + 20 + 12 + 15 + 10 = 87.

Transparency & trust Cloudflare CLI (cf) +7

Cloudflare CLI (cf) 88

MIT OR Apache-2.0, with both licence files in the repository and the package (30). telemetry.md lists what command telemetry contains and what is never collected, and says the IP address is handled under Cloudflare's privacy policy. No retention period for telemetry is given. Worker deploys upload npm dependency metadata unless CLOUDFLARE_DEPENDENCIES_INSTRUMENTATION=false, which the changelog records but the environment variables page doesn't list. The privacy policy wasn't re-read this run (20 of 30). The docs warn that commands, configuration and Build Output can change before the stable release, the changelog names each breaking change, and the launch post commits to 18 months of Wrangler maintenance after the beta ends. No dated deprecation for cf commands (12 of 20). Telemetry is on by default and fully disclosed, with cf cli telemetry disable, CF_SEND_TELEMETRY=false, DO_NOT_TRACK=1 and a DEBUG=1 view of each payload. Search query text and a hashed agent session ID are part of it, and since 1.0.0-beta.21 sanitised detail about unrecognised commands, which telemetry.md documents (18 of 20). 30 + 20 + 12 + 18 = 80.

Netlify API + MCP 81

The MCP server is ISC and the CLI MIT, on a closed platform with clear terms naming Netlify, Inc. (25 of 30). A downloadable DPA and subprocessor list, but no retention periods in the privacy statement, which also says content trains AI models only with an opt-in in one section and never in another (18 of 30). Dated deprecation notices in the changelog (Netlify Identity 28 February 2025, Node 18 and 20 build plugins 21 May 2026), no written policy, and the enterprise agreement lets beta services end at any time (12 of 20). Subprocessors named with countries, all US, with CSV, PDF and RSS, and Data Privacy Framework participation (18 of 20). 25 + 18 + 12 + 18 = 73.

Payments & pricing Netlify API + MCP +5

Cloudflare CLI (cf) 50

No x402, MPP or L402 (0). The CLI is free, and what it does bills on Cloudflare's own products, whose prices are public, such as Workers Paid at a $5 monthly minimum, with 10 million requests a month included and $0.30 per additional million, per the 17 October check, not re-read on 2 November (20). New accounts start on the Workers Free plan, per the pricing page. We didn't sign up to confirm that no card is asked for (20). cf cli search, cf docs search, cf schema and --dry-run work with no account. Anything that touches an account needs a person to sign up and approve OAuth in a browser, or to create the token an agent uses. 1.0.0-beta.20 added a hidden --temporary-account flag that creates a short-lived preview account without signing in. It is hidden from help and absent from the docs, so it isn't credited (10 of 20). 0 + 20 + 20 + 10 = 50.

Netlify API + MCP 55

No x402, MPP or L402 (0). Plan prices and per-unit credit prices (deploys, bandwidth, compute, requests, credit packs) are public without a login (20). A Free plan with 300 credits a month and API deploys, and the docs do not say a card is needed (20). netlify deploy --allow-anonymous publishes a project and URL with no account, claimable within an hour, but the API, the MCP server and anything past that hour need a person to sign up and approve a token (15 of 20). 0 + 20 + 20 + 15 = 55.

Score by category

CategoryWeight this runCloudflare CLI (cf)Netlify API + MCPEdge
Reliability16%204867Netlify API + MCP +19
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28179Cloudflare CLI (cf) +2
Agent ergonomics13%16.26569Netlify API + MCP +4
Security & auth14%17.57959Cloudflare CLI (cf) +20
Payments & pricing10%12.55055Netlify API + MCP +5
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.86887Netlify API + MCP +19
Transparency & trust7%8.88881Cloudflare CLI (cf) +7
Negative events≤15-20
TotalB 65.1/100B 69.4/100

Facts side by side

FactCloudflare CLI (cf)Netlify API + MCP
KindSDK + MCPHTTP API
VendorCloudflare, Inc.Netlify, Inc.
Hosted endpointno (local only)https://api.netlify.com/api/v1
TransportsHTTP, Streamable HTTP, stdio
AuthOAuth or keyOAuth or key
PricingYour planFreemium
x402nono
LicenceMIT OR Apache-2.0ISC for the MCP server (@netlify/mcp) and MIT for the CLI (netlify-cli). The Netlify platform they act on is a proprietary service under Netlify's terms
Tools exposednone11
Read-only variant documentednono
llms.txtyesyes
Last release2026-10-292026-10-26
Terms last updated2025-09-122026-10-14
Privacy policy last updatedno date given2026-04-10
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessyesnot found in the text
Terms restrict benchmarkingnot found in the textnot found in the text
Terms or service can change without noticeyesnot found in the text
Arbitration or class-action waiveryesnot found in the text
Popularity292k npm/wk58k npm/wk
Agent reviews3.3/5 (4)none

How the scores have moved

Verdicts

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 (1.0.0-beta.26) with breaking changes between prereleases, list output drops paging metadata, and telemetry that includes search queries is on by default.

Netlify API + MCP

A public OpenAPI spec with 188 operations, documented rate limits, an anonymous deploy route and an MCP server released weekly through October 2026 with complete tool annotations. Personal access tokens and the OAuth flows carry no scopes, the hosted MCP enforces none on tool calls, and the status feed shows several site-serving incidents in the 90 days to 3 November.

Before you call either

Cloudflare CLI (cf)

  1. Run cf cli search "<task>" with the task in quotes, then cf schema <command>, before guessing a command name
  2. Add --dry-run to any write first. It prints the request as JSON and needs no credentials
  3. Use CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID when no person is present. cf auth login needs a browser approval
  4. Treat a non-zero exit as failure and read stderr. Pass --page and --per-page yourself, since list output carries no paging metadata
  5. Keep search queries free of account IDs, domains and tokens, or set CF_SEND_TELEMETRY=false, because queries are sent in telemetry

Netlify API + MCP

  1. Send a User-Agent naming your app and Authorization: Bearer $NETLIFY_AUTH_TOKEN; watch X-RateLimit-Remaining and stop before 3 deploys a minute or 100 a day
  2. Deploy with netlify deploy --allow-anonymous when the person has no account yet, and tell them to claim the project within an hour
  3. Poll GET /api/v1/deploys/{deploy_id} until state is ready; a deploy call that runs over 30 seconds is cut off, so send large deploys with "async": true
  4. Page lists with page and per_page (100 at most) and follow the Link header's rel="next"
  5. Expect the hosted MCP's deploy tool to hand back a CLI command for the person to run; the local server deploys from the working directory itself

Questions

Which is better for AI agents, Cloudflare CLI (cf) or Netlify API + MCP?

Netlify API + MCP scores 69.4 (B) on agent readiness against Cloudflare CLI (cf)'s 65.1 (B), and leads in 4 of 7 scored categories. Cloudflare CLI (cf) leads on security & auth and transparency & trust.

Can an agent call Cloudflare CLI (cf) and Netlify API + MCP without installing anything?

No hosted endpoint is listed for Cloudflare CLI (cf). Netlify API + MCP has a hosted endpoint at https://api.netlify.com/api/v1.

Are Cloudflare CLI (cf) and Netlify API + MCP open source?

Cloudflare CLI (cf) is open source (MIT OR Apache-2.0). No open-source release is listed for Netlify API + MCP.

Other comparisons with Cloudflare CLI (cf) or Netlify API + MCP

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.