Sponsor MCPSafe10 founding slots
Registry/cloudflare/mcp

cloudflare/mcp

Verified

MCP server for the Cloudflare API

By cloudflareApache-2.0
typescript
web services
909stars
125forks
Scanned Oct 2, 2026
WebsiteRepositoryGITHUB
Automated scan (limited checks) · 2026-10-02

This grade comes from an automated MCPSafe scan of the server's JavaScript, TypeScript and Python source on 2026-10-02. It read the whole repository (32 files). It checks for leaked credentials, shell or code injection from function inputs, unsafe deserialization, malware signatures, install-time scripts, and weak password handling. It does not check for path traversal, server-side request forgery, prompt injection in tool descriptions, network exposure, SQL injection, cross-site scripting, or vulnerable dependencies. It has not been manually reviewed, and the code may have changed since the scan.

A+100%
Scanned 10/2/2026

Excellent Security

Vulnerabilities Found
0Crit
0High
0Med
0Low
0Info

Trust Score 65

Review required
Trust grade C

Trust is stricter than security: it combines reviewed security, MCP capability risk, supply-chain metadata, quality, popularity, freshness, and penalties for unknowns.

Security
100
MCP risk
64
Supply chain
92
Maintenance
50
Docs
36
Freshness
55
Risk traits
Filesystem access
Network/API access
Requires secrets
Remote transport
Why it scores well
  • • No reviewed severe vulnerabilities published
  • • Solid supply-chain metadata
What reduces confidence
  • • Weak documentation signals
  • • Stale or missing recent scan
  • • MCP risk traits: Filesystem access, Network/API access, Requires secrets

Security ScoreA+

100
out of 100

Vulnerabilities Found

0
Crit
0
High
0
Medi
0
Low
0
Info
Last scanned: 10/2/2026

Quality ScoreC

51
out of 100
50
Maint.
43
Popular
36
Docs
73
Compat
Maintenance50%
Popularity43%
Documentation36%
Compatibility73%

Maintenance50

Unknown
Commit Frequency65%
Release Frequency35%
Issue Response45%

Popularity43

909
Stars
0
Downloads
125
Forks
Stars Score82%
Downloads Score0%
Forks Score73%

Documentation36

README Quality35%

Available Documentation

API DocsExamplesChangelog

Compatibility73

MCP Spec Compliance80%
Transport Support50%

Features

TypeScript

Vulnerabilities(0)

This grade comes from an automated scan. Individual findings from automated scans are not published.

READMEcloudflare/mcp

View source

Cloudflare MCP Server

A token-efficient MCP server for the entire Cloudflare API. 2500 endpoints in 1k tokens, powered by Code Mode.

Token Comparison

| Approach | Tools | Token cost | Context used (200K) |

| ------------------------------------------- | ----- | ---------- | ------------------- |

| Raw OpenAPI spec in prompt | — | ~2,000,000 | 977% |

| Native MCP (full schemas) | 2,594 | 1,170,523 | 585% |

| Native MCP (minimal — required params only) | 2,594 | 244,047 | 122% |

| Code mode | 3 | ~1,100 | 0.5% |

Get Started

MCP URL: https://mcp.cloudflare.com/mcp

Option 1: OAuth (Recommended)

Just connect to the MCP server URL - you'll be redirected to Cloudflare to authorize and select permissions.

Example JSON Configuration

json
{
  "mcpServers": {
    "cloudflare-api": {
      "type": "http",
      "url": "https://mcp.cloudflare.com/mcp"
    }
  }
}

Option 2: API Token

For CI/CD, automation, or if you prefer managing tokens yourself.

Create a Cloudflare API token with the permissions you need. Both user tokens and account tokens are supported. For account tokens, include the Account Resources : Read permission so the server can auto-detect your account ID.

Note: API tokens with Client IP Address Filtering enabled are not currently supported.

Add to Agent

| Setting | Value |

| ------------ | --------------------------------------------------------------------------- |

| MCP URL | https://mcp.cloudflare.com/mcp |

| Bearer Token | Your Cloudflare API Token |

Disable Code Mode

If your MCP client already uses code mode, or you're composing this server with another server that uses code mode, you can disable it with the ?codemode=false query parameter. This registers an individual tool for each of the ~2,500 Cloudflare API endpoints instead of the code mode API tools. The docs tool remains available in both modes.

plaintext
https://mcp.cloudflare.com/mcp?codemode=false

Example JSON Configuration

json
{
  "mcpServers": {
    "cloudflare-api": {
      "type": "http",
      "url": "https://mcp.cloudflare.com/mcp?codemode=false"
    }
  }
}

When code mode is disabled:

  • Each API endpoint is registered as its own tool (e.g., get_workers_scripts, post_d1_database)
  • Tool input schemas are derived from the endpoint's path parameters, query parameters, and request body
  • Tools make direct API calls — no code execution involved
  • Path parameters like account_id are auto-resolved when possible (single account)
Note: Disabling code mode significantly increases the token cost (~244k tokens vs ~1k tokens). Only disable it when necessary for composition with other code mode systems.

Disable Tool Result Truncation

The server caps each tool result at ~6,000 tokens by default. Oversized JSON stays valid JSON: long lists keep their first items whole, long strings are clipped, and every cut is marked with --- TRUNCATED ---. Clients that bound results themselves can turn the cap off with the ?truncateToolResult=false query parameter. Code mode clients are the main case. They parse each tool result as JSON and run more code on it before anything reaches the model, so they need the whole result. The parameter works with or without code mode and covers search, execute, and every endpoint tool.

plaintext
https://mcp.cloudflare.com/mcp?codemode=false&truncateToolResult=false
Note: Without the cap, a broad query can return megabytes. Only turn it off when your client bounds what reaches the model.

The Problem

The Cloudflare OpenAPI spec is 2 million tokens. Even with native MCP tools using minimal schemas, it's still ~244k tokens. Traditional MCP servers that expose every endpoint as a tool leak this entire context to the main agent.

This server solves the problem by using code execution in a Code Mode pattern - the spec lives on the server, and only the result of the code execution is returned to the agent.

Tools

Agent writes code to search the spec and execute API calls. It can also search Cloudflare's developer documentation directly.

| Tool | Description |

| --------- | ----------------------------------------------------------------------------- |

| docs | Search Cloudflare developer documentation |

| search | Write JavaScript to query spec.paths and find endpoints |

| execute | Write JavaScript to call cloudflare.request() with the discovered endpoints |

plaintext
Agent                         MCP Server
  │                               │
  ├──search({code: "..."})───────►│ Execute code against spec.json
  │◄──[matching endpoints]────────│
  │                               │
  ├──execute({code: "..."})──────►│ Execute code against Cloudflare API
  │◄──[API response]──────────────│

Supported Products

Workers, KV, R2, D1, Pages, DNS, Firewall, Load Balancers, Stream, Images, AI Gateway, Vectorize, Access, Gateway, and more. See the full Cloudflare API schemas.

Usage

Once configured, just ask your agent to do things with Cloudflare:

  • "List all my Workers"
  • "Create a KV namespace called 'my-cache'"
  • "Add an A record for api.example.com pointing to 192.0.2.1"

The agent will search for the right endpoints and execute the API calls. Here's what happens behind the scenes:

javascript
// 1. Search for endpoints
search({
  code: `async () => {
    const results = [];
    for (const [path, methods] of Object.entries(spec.paths)) {
      for (const [method, op] of Object.entries(methods)) {
        if (op.tags?.some(t => t.toLowerCase() === 'workers')) {
          results.push({ method: method.toUpperCase(), path, summary: op.summary });
        }
      }
    }
    return results;
  }`,
});

// 2. Execute API call (user token - account_id required)
execute({
  code: `async () => {
    const response = await cloudflare.request({
      method: "GET",
      path: \`/accounts/\${accountId}/workers/scripts\`
    });
    return response.result;
  }`,
  account_id: "your-account-id",
});

// 2. Execute API call (account token - account_id auto-detected)
execute({
  code: `async () => {
    const response = await cloudflare.request({
      method: "GET",
      path: \`/accounts/\${accountId}/workers/scripts\`
    });
    return response.result;
  }`,
});

GraphQL Analytics API

The server automatically detects and handles Cloudflare's GraphQL Analytics API endpoints. GraphQL queries work seamlessly through the same execute tool:

javascript
execute({
  code: `async () => {
    const response = await cloudflare.request({
      method: "POST",
      path: "/client/v4/graphql",
      body: {
        query: \`query {
          viewer {
            zones(filter: { zoneTag: "your-zone-id" }) {
              httpRequests1dGroups(limit: 7, orderBy: [date_ASC]) {
                dimensions {
                  date
                }
                sum {
                  requests
                  bytes
                  cachedBytes
                }
              }
            }
          }
        }\`,
        variables: {}
      }
    });
    return response.result;
  }`,
  account_id: "your-account-id",
});

Build a Code Mode MCP Server

Code execution uses Cloudflare's Dynamic Worker Loader API to run generated code in isolated Workers, following the Code Mode pattern.

Read the Code Mode SDK docs for more info.

Resources

Embed Security Badge

Add this badge to your README or documentation

cloudflare/mcp MCPSafe Security
[![cloudflare/mcp MCPSafe Security](https://api.mcpsafe.org/api/badge/cloudflare-mcp.svg)](https://mcpsafe.org/registry/cloudflare-mcp)
Need more customization options?Badge Documentation

Server Information

Source
GITHUB
Language
typescript
License
Apache-2.0
Added
Sep 20, 2026
Updated
Oct 1, 2026