148 lines
6.9 KiB
YAML
148 lines
6.9 KiB
YAML
# Nous-approved MCP catalog entry.
|
|
# Presence in this directory = approval. Merged via PR review.
|
|
manifest_version: 1
|
|
|
|
name: cloudflare
|
|
description: Full Cloudflare API access via the official remote MCP.
|
|
source: https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/
|
|
|
|
# Cloudflare's official API MCP server (github.com/cloudflare/mcp) is a
|
|
# managed remote server — nothing to install locally. It fronts the entire
|
|
# Cloudflare API: DNS, Workers, R2, KV, D1, Zero Trust, WAF, Pages, Queues,
|
|
# and everything else in the OpenAPI spec.
|
|
#
|
|
# We pin `?codemode=false` deliberately. The server's default mode fronts
|
|
# the API through its own search()/execute() indirection ("Code Mode"),
|
|
# where the model must query a spec index and then write JavaScript that
|
|
# runs in a provider-side sandbox. Hermes already has progressive tool
|
|
# disclosure (tool_search) — stacking a second, server-side search layer
|
|
# on top of it would mean two search hops before any real call, and our
|
|
# tool_search would only ever see 2 opaque meta-tools instead of the real
|
|
# surface. With codemode=false the server registers each API endpoint as
|
|
# its own tool (~3,300 as of July 2026) with a real JSON Schema derived
|
|
# from the endpoint's path/query/body parameters. Hermes's tool_search
|
|
# then defers the whole surface behind its bridge tools and searches the
|
|
# FULL catalog with complete schemas — one disclosure layer, ours, with
|
|
# total information. Calls go straight to the Cloudflare API; no sandbox
|
|
# indirection.
|
|
transport:
|
|
type: http
|
|
url: https://mcp.cloudflare.com/mcp?codemode=false
|
|
|
|
auth:
|
|
type: oauth
|
|
# Native MCP OAuth 2.1 (case 1) — the server publishes AS metadata with
|
|
# Dynamic Client Registration at https://mcp.cloudflare.com/register.
|
|
# Hermes's MCP client + mcp_oauth_manager handle discovery, DCR, PKCE,
|
|
# token exchange, and refresh. During authorization Cloudflare lets you
|
|
# scope exactly which account permissions the agent gets.
|
|
|
|
# Tool selection at install time:
|
|
# The surface is ~3,300 endpoint tools. Rather than a manual checklist (or
|
|
# a frozen include list that would block future endpoints), we ship a
|
|
# curated exclude list of glob patterns targeting product families that are
|
|
# enterprise-contract, org-fleet, or read-only-analytics surfaces — dead
|
|
# weight for the personal/dev accounts the catalog serves. Everything else
|
|
# (~1,900 tools: DNS, Workers, R2, KV, D1, Queues, Pages, WAF, rulesets,
|
|
# tunnels, Access, Stream, Images, AI, Vectorize, ...) stays enabled,
|
|
# including endpoints Cloudflare adds later. Users can re-enable any family
|
|
# by deleting its pattern from mcp_servers.cloudflare.tools.exclude.
|
|
tools:
|
|
default_excluded:
|
|
# The server's built-in Cloudflare-docs search tool (not an API
|
|
# endpoint) — redundant with the agent's own web tools.
|
|
- docs
|
|
# Radar: public read-only internet trend analytics (~275 tools).
|
|
# Cloudflare ships a dedicated Radar MCP for this.
|
|
- "*_radar_*"
|
|
# Enterprise networking: Magic Transit/WAN, network monitoring,
|
|
# interconnects, WAN teamnet. (cloudflared tunnels are NOT excluded.)
|
|
- "*_accounts_magic_*"
|
|
- "*_accounts_mnm_*"
|
|
- "*_accounts_cni_*"
|
|
- "*_accounts_teamnet_*"
|
|
# Cloudforce One threat-intel analyst platform (enterprise SOC).
|
|
- "*_accounts_cloudforceone_*"
|
|
# Zero Trust org-fleet suite: DLP, managed devices, DEX, data-security
|
|
# posture, email security, SCIM provisioning, SWG gateway policy.
|
|
# Access (login policies for your own apps) stays enabled.
|
|
- "*_accounts_dlp_*"
|
|
- "*_accounts_devices*"
|
|
- "*_accounts_dex_*"
|
|
- "*_accounts_datasecurity_*"
|
|
- "*_accounts_emailsecurity_*"
|
|
- "*_accounts_scim_*"
|
|
- "*_accounts_gateway*"
|
|
- "*_accounts_zerotrust_*"
|
|
- "*_accounts_one_*"
|
|
# Security-intel research products: brand protection, threat intel,
|
|
# URL scanner, CVE scanner, security center.
|
|
- "*_accounts_brandprotection_*"
|
|
- "*_accounts_intel_*"
|
|
- "*_accounts_urlscanner_*"
|
|
- "*_accounts_vuln_scanner_*"
|
|
- "*_zones_securitycenter_*"
|
|
- "*_accounts_securitycenter_*"
|
|
# Enterprise API Shield cluster + waiting rooms + BYOIP + data shares.
|
|
- "*_zones_api_gateway_*"
|
|
- "*_zones_schema_validation*"
|
|
- "*_zones_token_validation*"
|
|
- "*_zones_waiting_rooms*"
|
|
- "*_accounts_addressing_*"
|
|
- "*_accounts_shares*"
|
|
# Legacy / migration / niche: S3-migration slurper, Web3 gateways,
|
|
# secondary-DNS peering, legacy per-user load balancers.
|
|
- "*_accounts_slurper_*"
|
|
- "*_zones_web3_*"
|
|
- "*_accounts_flagship_*"
|
|
- "*_zones_secondary_dns_*"
|
|
- "*_accounts_secondary_dns_*"
|
|
- "*_user_load_balancers*"
|
|
|
|
post_install: |
|
|
On first connection, Hermes opens a browser to authorize with Cloudflare.
|
|
You pick the account and the permissions to grant — scope the token to
|
|
what you want the agent to touch. After auth, restart your Hermes session
|
|
so the Cloudflare tools are loaded.
|
|
|
|
This entry exposes each Cloudflare API endpoint as an individual tool.
|
|
A curated exclude list ships in the manifest (enterprise-contract,
|
|
org-fleet, and read-only-analytics product families are disabled —
|
|
~1,400 tools), leaving ~1,900 tools for the products people actually
|
|
drive from an agent: DNS, Workers, R2, KV, D1, Queues, Pages, WAF,
|
|
rulesets, tunnels, Access, Stream, Images, AI, Vectorize. Hermes's
|
|
tool_search defers them all, so your context is not flooded — the agent
|
|
discovers the right endpoint on demand with full schemas.
|
|
|
|
Run a Zero Trust org or want Radar/Magic/API-Shield surfaces back?
|
|
Delete their patterns from mcp_servers.cloudflare.tools.exclude in
|
|
~/.hermes/config.yaml.
|
|
|
|
Headless / CI alternative: instead of OAuth, create a Cloudflare API token
|
|
at https://dash.cloudflare.com/profile/api-tokens and configure the server
|
|
with a bearer header in ~/.hermes/config.yaml:
|
|
|
|
mcp_servers:
|
|
cloudflare:
|
|
url: "https://mcp.cloudflare.com/mcp?codemode=false"
|
|
headers:
|
|
Authorization: "Bearer ${CLOUDFLARE_API_TOKEN}"
|
|
|
|
Prefer the provider-side Code Mode surface instead (2 search/execute
|
|
meta-tools, ~1k-token schema, sandboxed JS composition)? Drop the
|
|
`?codemode=false` from the url. Not recommended together with Hermes
|
|
tool_search — you'd be stacking two tool-discovery layers.
|
|
|
|
Cloudflare also runs product-specific MCP servers (same OAuth flow, add
|
|
manually via `hermes mcp add <name> --url <url>` if you want a narrower
|
|
surface): docs search (https://docs.mcp.cloudflare.com/mcp, no auth),
|
|
Workers observability (https://observability.mcp.cloudflare.com/mcp),
|
|
Browser Rendering (https://browser.mcp.cloudflare.com/mcp), Radar
|
|
(https://radar.mcp.cloudflare.com/mcp), GraphQL analytics
|
|
(https://graphql.mcp.cloudflare.com/mcp), audit logs
|
|
(https://auditlogs.mcp.cloudflare.com/mcp), and more — full list at the
|
|
source URL above.
|
|
|
|
Re-run the tool checklist any time with:
|
|
hermes mcp configure cloudflare
|