Cloudflare MCP Go
Cloudflare API v4 server: 28 tools across zones, DNS, WAF/firewall, rate limits, HTTP request logs, Security Center insights, and threat intelligence (IP/domain/ASN/WHOIS/passive DNS). Currently read-only. Install with go run github.com/M-Yamashita01/cloudflare-mcp-go@latest.
Install
The installation steps are in the documentation below. Documentation
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
cloudflare-mcp-go
An MCP (Model Context Protocol) server for the Cloudflare API v4, written in Go.
It lets any MCP client (Claude, and other MCP-compatible tools) inspect and investigate your Cloudflare account through natural language: zones, DNS, WAF and firewall rules, rate limits, HTTP request logs, Security Center insights, and threat intelligence. The server is read-focused and geared toward security triage and investigation workflows.
Quick start
Requires a Cloudflare API token and Go 1.25+.
Add it to Claude Code with a single command:
claude mcp add cloudflare \
-e CLOUDFLARE_API_TOKEN=your-api-token \
-- go run github.com/M-Yamashita01/cloudflare-mcp-go@latest
That is all — no manual clone or build required. CLOUDFLARE_ACCOUNT_ID is optional and only needed by a few tools (accounts, audit logs, KV, intel).
Tools
117 read-only tools grouped by domain, plus optional write tools (marked below) that are registered only when CLOUDFLARE_MCP_ENABLE_WRITE=true.
Zones & DNS
| Tool | Description |
|---|---|
list_zones | List zones in your account (ID, name, status, plan). |
get_zone | Get details of a specific zone. |
get_zone_settings | Get a zone's configuration settings (SSL mode, min TLS, cache level, security level). |
purge_cache | Purge a zone's cache: everything, or by file/tag/host/prefix (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
list_dns_records | List DNS records for a zone (type, name, content, TTL, proxy status). |
get_dns_record | Get a single DNS record by ID (type, name, content, TTL, proxy status, comment). |
get_dns_analytics | DNS query analytics: query counts, response codes, query type distribution. |
get_dns_analytics_bytime | DNS query analytics grouped by time interval (time-series). |
export_dns_records | Export all DNS records for a zone as a BIND zone file. |
get_dns_record_usage | DNS record usage counts for a zone (toward plan limits). |
get_dns_settings | Get a zone's DNS settings (Foundation DNS, multi-provider, nameservers, zone mode). |
get_dnssec | Get DNSSEC details for a zone (status, DS record, digest, key tag, algorithm). |
list_dnssec_zsk | List DNSSEC Zone Signing Keys (ZSKs) for a zone (multi-signer DNSSEC). |
list_scanned_dns_records | List DNS records discovered by a scan, pending review. |
create_dns_record | Create a DNS record (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_dns_record | Update a DNS record, partial fields (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_dns_record | Delete a DNS record by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
overwrite_dns_record | Overwrite (fully replace) a DNS record by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
batch_dns_records | Apply a batch of DNS record changes atomically (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
import_dns_records | Import DNS records from a BIND zone file (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
scan_dns_records | Scan a zone for DNS records at common names (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
trigger_dns_record_scan | Trigger an async DNS record scan (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
review_scanned_dns_records | Accept/reject DNS records found by a scan (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_dns_settings | Update a zone's DNS settings (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
edit_dnssec | Edit a zone's DNSSEC status (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_dnssec | Delete a zone's DNSSEC records (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
Firewall, WAF & rate limiting
| Tool | Description |
|---|---|
list_ip_access_rules | IP access rules that block, challenge, or allow IPs, CIDRs, ASNs, or countries. |
create_ip_access_rule | Create an IP access rule (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_ip_access_rule | Update an IP access rule's mode/notes (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_ip_access_rule | Delete an IP access rule by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
list_waf_managed_rulesets | WAF managed rulesets entrypoint and which managed rulesets are enabled. |
list_firewall_rules | Custom firewall rules with expressions, actions, and priorities. |
get_firewall_rule | Full configuration of a specific firewall rule by ID. |
list_rulesets | All rulesets for a zone (metadata only). |
get_ruleset | A specific ruleset with all its rules. |
create_ruleset | Create a ruleset (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_ruleset | Update a ruleset's name/description/rules (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_ruleset | Delete a ruleset by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
list_rate_limits | Rate limiting rules: thresholds, match criteria, actions. |
get_rate_limit | Full configuration of a specific rate limiting rule by ID. |
create_rate_limit | Create a rate limit rule (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_rate_limit | Update a rate limit rule (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_rate_limit | Delete a rate limit rule by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
Security events & logs
| Tool | Description |
|---|---|
query_security_events | Query security events via the GraphQL Analytics API for triage. |
get_log_by_rayid | Look up an HTTP request log entry by Cloudflare Ray ID. |
list_received_logs | Retrieve HTTP request logs for a time range (max 1h, data ≥5min old). |
list_log_fields | List available HTTP request log fields. |
list_logpush_jobs | List Logpush jobs for a zone (dataset, destination, enabled). |
get_logpush_job | Get a specific Logpush job in a zone by ID. |
list_logpush_dataset_jobs | List Logpush jobs for a specific dataset in a zone. |
list_logpush_dataset_fields | List available Logpush fields for a dataset in a zone. |
list_instant_logs_jobs | List Instant Logs (edge) jobs for a zone. |
get_log_retention_flag | Get a zone's log retention flag. |
list_log_datasets | List Logs Explorer datasets for a zone. |
list_available_log_datasets | List available Logs Explorer datasets for a zone. |
get_log_dataset | Get a Logs Explorer dataset for a zone by ID. |
query_logs_sql | Run a Logs Explorer SQL query for a zone (GET). |
list_account_logpush_jobs | List Logpush jobs for an account. |
get_account_logpush_job | Get a specific Logpush job in an account by ID. |
list_account_logpush_dataset_jobs | List Logpush jobs for a dataset in an account. |
list_account_logpush_dataset_fields | List available Logpush fields for a dataset in an account. |
list_account_logpush_transformers | List Logpush transformers for an account. |
get_account_logpush_transformer | Get a Logpush transformer in an account by ID. |
get_account_logpush_transformer_content | Get a Logpush transformer's content in an account. |
list_account_logpush_transformer_versions | List versions of a Logpush transformer in an account. |
get_account_audit_logs_v2 | Get account audit logs (v2) with since/before/limit. |
list_account_audit_log_product_categories | List product categories for account audit logs (v2). |
get_account_audit_log_history | Get change history for an account audit log entry (v2). |
get_cmb_config | Get the Customer Metadata Boundary (CMB) config for an account. |
list_account_log_datasets | List Logs Explorer datasets for an account. |
list_available_account_log_datasets | List available Logs Explorer datasets for an account. |
get_account_log_dataset | Get a Logs Explorer dataset for an account by ID. |
query_account_logs_sql | Run a Logs Explorer SQL query for an account (GET). |
list_account_log_files | List stored log files for an account (start/end/bucket). |
retrieve_account_logs | Retrieve stored log entries (NDJSON) for an account. |
create_account_logpush_job | Create an account Logpush job (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_account_logpush_job | Update an account Logpush job (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_account_logpush_job | Delete an account Logpush job (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
get_account_logpush_ownership_challenge | Request an account Logpush ownership challenge (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
validate_account_logpush_ownership | Validate an account Logpush ownership challenge (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_account_logpush_transformer | Create an account Logpush transformer (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
preview_account_logpush_transformer | Preview an account Logpush transformer (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_account_logpush_transformer | Update an account Logpush transformer (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_account_logpush_transformer | Delete an account Logpush transformer (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
validate_account_logpush_destination | Validate an account Logpush destination (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
check_account_logpush_destination_exists | Check an account Logpush destination exists (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
validate_account_logpush_origin | Validate account Logpush origin options (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_cmb_config | Update the Customer Metadata Boundary config (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_cmb_config | Delete the Customer Metadata Boundary config (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_account_log_dataset | Create an account Logs Explorer dataset (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_account_log_dataset | Update an account Logs Explorer dataset (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_account_log_dataset | Delete an account Logs Explorer dataset (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
run_account_logs_sql_query | Run an account Logs Explorer SQL query (POST) (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_logpush_job | Create a zone Logpush job (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_logpush_job | Update a zone Logpush job (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_logpush_job | Delete a zone Logpush job (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_instant_logs_job | Create a zone Instant Logs job (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
get_logpush_ownership_challenge | Request a zone Logpush ownership challenge (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
validate_logpush_ownership | Validate a zone Logpush ownership challenge (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
validate_logpush_destination | Validate a zone Logpush destination (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
check_logpush_destination_exists | Check a zone Logpush destination exists (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
validate_logpush_origin | Validate zone Logpush origin options (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_log_retention_flag | Enable/disable zone log retention (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_log_dataset | Create a zone Logs Explorer dataset (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_log_dataset | Update a zone Logs Explorer dataset (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_log_dataset | Delete a zone Logs Explorer dataset (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
run_logs_sql_query | Run a zone Logs Explorer SQL query (POST) (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
Security Center
| Tool | Description |
|---|---|
list_security_insights | Security Center insights with severity, type, and classification. |
list_account_security_insights | Security Center insights for an account (account scope). |
get_account_insight_counts | Account insight counts by dimension (class/severity/type). |
get_account_insights_audit_log | Account Security Center insights audit log. |
get_account_partner_insight_count | Account partner-provided insight count. |
get_account_recent_scans | Recent Security Center scans for an account. |
get_account_issue_audit_log | Audit log for an account Security Center insight. |
get_account_insight_context | Context (affected resources) for an account insight. |
get_partner_integration_settings | Partner integration settings for an account. |
list_partner_shadow_zones | Partner-discovered shadow zones for an account. |
list_partner_shadow_zone_hosts | Hosts in a partner-discovered shadow zone. |
get_account_security_center_state | Security Center state for an account. |
get_zone_insights_audit_log | Zone Security Center insights audit log. |
get_zone_partner_insight_count | Zone partner-provided insight count. |
get_zone_recent_scans | Recent Security Center scans for a zone. |
get_zone_issue_audit_log | Audit log for a zone Security Center insight. |
list_zone_partner_shadow_hosts | Partner-discovered shadow hosts for a zone. |
get_securitytxt | Get a zone's security.txt configuration. |
update_account_insight_classification | Update an account insight classification (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
dismiss_account_insight | Dismiss/archive an account insight (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
start_account_scan | Start an on-demand account Security Center scan (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_partner_integration_settings | Update Security Center partner integration settings for an account (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_account_security_center_state | Update the Security Center state for an account (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
start_zone_scan | Start an on-demand zone Security Center scan (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_zone_insight_classification | Update the classification of a Security Center insight in a zone (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
dismiss_zone_insight | Dismiss or un-dismiss a Security Center insight in a zone (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_securitytxt | Create or update the security.txt for a zone (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_securitytxt | Delete the security.txt for a zone (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
get_insight_counts | Aggregated insight counts by severity, class, or type. |
Threat intelligence
| Tool | Description |
|---|---|
get_ip_intel | Threat intelligence for an IP: geolocation, ASN, infrastructure, threat categories. |
get_domain_intel | Security intelligence for a domain: risk scores, categories, DNS info. |
get_domain_intel_bulk | Threat intelligence for multiple domains at once. |
get_domain_history | Historical threat data and classifications for a domain. |
list_passive_dns | Domains that have resolved to a given IP (passive DNS). |
get_whois | WHOIS registration data for a domain. |
get_asn_intel | ASN overview and subnet allocations. |
list_attack_surface_issue_types | Security Center attack-surface issue types. |
list_attack_surface_issues | Security Center attack-surface issues (misconfigurations, exposures). |
get_attack_surface_issue_counts_by_class | Attack-surface issue counts by class. |
get_attack_surface_issue_counts_by_severity | Attack-surface issue counts by severity. |
get_attack_surface_issue_counts_by_type | Attack-surface issue counts by type. |
get_ip_lists | Available threat-intelligence IP lists for an account. |
get_bulk_domain_details | Threat intel details for multiple domains (GET bulk). |
get_url_intel | Threat intelligence for a URL (risk, categories). |
list_indicator_feeds | List indicator feeds owned by an account. |
list_indicator_feed_permissions | List indicator feed view permissions for an account. |
get_indicator_feed | Get indicator feed metadata by ID. |
get_indicator_feed_data | Get raw indicator feed data by ID (STIX/CSV). |
download_indicator_feed_data | Download latest indicator feed snapshot by ID. |
get_indicator_feed_upload_status | Get status of an indicator feed upload. |
list_sinkholes | List DNS sinkholes owned by an account. |
get_sinkhole | Get a DNS sinkhole by ID. |
list_sinkhole_ingresses | List ingress rules for a sinkhole. |
dismiss_security_center_insight | Dismiss/archive a Security Center insight (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_indicator_feed | Create an indicator feed (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
grant_indicator_feed_permission | Grant indicator feed view permission (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_indicator_feed_provider | Create an indicator feed provider (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
revoke_indicator_feed_permission | Revoke indicator feed view permission (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_indicator_feed | Update indicator feed metadata (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_indicator_feed_data | Upload a new indicator feed snapshot (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_miscategorization | Report a domain/IP/URL miscategorization (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_sinkhole | Create a DNS sinkhole (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_sinkhole | Update a DNS sinkhole (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_sinkhole | Delete a DNS sinkhole by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
Account & audit
| Tool | Description |
|---|---|
list_accounts | Cloudflare accounts accessible with the current token. |
get_account_details | Get details of a specific account by ID. |
list_account_members | List members of an account (user, roles, status). |
get_account_member | Get an account member by ID (user, roles, policies). |
list_account_roles | List roles available in an account. |
get_account_role | Get an account role by ID (name, permissions). |
list_account_subscriptions | List subscriptions for an account. |
get_account_subscription | Get an account subscription by ID. |
get_subscription_cancel_reason | Get a subscription's cancellation reason. |
list_account_tokens | List account-owned API tokens. |
list_token_permission_groups | List permission groups for account API tokens. |
verify_account_token | Verify the account API token is valid and active. |
get_account_token | Get an account API token by ID (name, policies, status). |
create_account | Create a new account (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_account | Update an account (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_account | Delete an account by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
add_account_member | Add a member to an account (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_account_member | Update an account member (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
remove_account_member | Remove a member from an account (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_account_subscription | Create an account subscription (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
cancel_delayed_downgrade | Cancel a pending subscription downgrade (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_account_subscription | Update an account subscription (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_account_subscription | Delete an account subscription (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
append_subscription_action | Append an action to a subscription (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_subscription_cancel_reason | Record a subscription cancellation reason (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_account_token | Create an account API token (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
update_account_token | Update an account API token (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_account_token | Delete an account API token by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
roll_account_token | Roll (regenerate) an account API token value (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
list_audit_logs | Account audit log entries (who changed what and when). |
list_user_audit_logs | User-scoped audit log entries. |
list_kv_namespaces | Workers KV namespaces in an account. |
get_kv_namespace | Get a KV namespace by ID. |
get_kv_pairs_bulk | Get multiple KV pairs at once (read-only; POST bulk/get). |
list_kv_keys | List keys in a KV namespace (prefix filter, cursor pagination). |
get_kv_value | Read the raw stored value for a key in a KV namespace. |
get_kv_metadata | Read the metadata associated with a key in a KV namespace. |
write_kv_pair | Write a key-value pair, optional TTL (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_kv_pair | Delete a key-value pair by key (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
create_kv_namespace | Create a KV namespace (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_kv_namespace | Delete a KV namespace by ID (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
rename_kv_namespace | Rename a KV namespace (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
write_kv_pairs_bulk | Write multiple KV pairs at once (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_kv_pairs_bulk | Delete multiple KV pairs at once, DELETE bulk (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
delete_kv_pairs_bulk_post | Delete multiple KV pairs at once, POST bulk/delete (write; requires CLOUDFLARE_MCP_ENABLE_WRITE=true). |
Usage examples
Once connected, ask your MCP client things like:
- "List the DNS records for example.com."
- "A request was blocked with Ray ID 8f1c2d3e4f5a6b7c — why?"
- "Show me the high-severity Security Center insights for this zone."
- "Is IP 203.0.113.10 known to be malicious? What domains resolve to it?"
- "Which firewall rules are currently challenging traffic?"
Configuration
The server communicates over stdio and can be connected from any MCP client.
| Variable | Required | Purpose |
|---|---|---|
CLOUDFLARE_API_TOKEN | Yes | Authenticates all Cloudflare API calls. |
CLOUDFLARE_ACCOUNT_ID | No | Needed by account, audit log, KV, and intel tools. |
CLOUDFLARE_MCP_ENABLE_WRITE | No | Enables write (mutation) tools when set to exactly true. Unset or empty keeps them disabled (default); any other value is rejected (logged to stderr) and the server stays read-only. |
Claude Code
claude mcp add cloudflare \
-e CLOUDFLARE_API_TOKEN=your-api-token \
-- go run github.com/M-Yamashita01/cloudflare-mcp-go@latest
Or, if you have the repository cloned locally:
claude mcp add cloudflare -e CLOUDFLARE_API_TOKEN=your-api-token -- go run .
Claude Desktop / other MCP clients
Build the binary and point your client's MCP config at it. On macOS the Claude Desktop config lives at ~/Library/Application Support/Claude/claude_desktop_config.json:
go build -o cloudflare-mcp-go .
{
"mcpServers": {
"cloudflare": {
"command": "/path/to/cloudflare-mcp-go",
"env": {
"CLOUDFLARE_API_TOKEN": "your-api-token"
}
}
}
}
Any MCP-compatible client can connect via stdio transport using the same pattern.
Build & run manually
go build -o cloudflare-mcp-go .
export CLOUDFLARE_API_TOKEN="your-api-token"
./cloudflare-mcp-go
Project structure
main.go # Entry point
internal/
cfapi/ # Shared Cloudflare API client
tool/
zone/ # Zone management tools
dns/ # DNS record & analytics tools
account/ # Account management tools
audit/ # Audit log tools
kv/ # Workers KV tools
security/ # Firewall, WAF & rate limiting tools
securitycenter/ # Security Center insight tools
intel/ # Threat intelligence tools
logs/ # HTTP request log tools
doc/
architecture.md # Architecture documentation
See doc/architecture.md for detailed design documentation.
Frequently asked questions
What is Cloudflare MCP Go?
Cloudflare API v4 server: 28 tools across zones, DNS, WAF/firewall, rate limits, HTTP request logs, Security Center insights, and threat intelligence (IP/domain/ASN/WHOIS/passive DNS). Currently read-only. Install with go run github.com/M-Yamashita01/cloudflare-mcp-go@latest.
How do I install Cloudflare MCP Go?
Follow the installation steps in its documentation, shown on this page and in its repository.
Is Cloudflare MCP Go open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Cloudflare MCP Go?
It is published by M-Yamashita01. AI.tn lists it but does not maintain or endorse it.
From the community awesome-mcp-servers lists and the project's GitHub repository. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.