# Cloudflare — MCP server on mcp.ai > Connect your Cloudflare account and use 20 tools for security and identity straight from your AI agent. Connect with your own API key. Cloudflare is a global network designed to make everything you connect to the Internet secure, private, fast, and reliable. By: mcp.ai · official Page: https://mcp.ai/cloudflare ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_cloudflare?ms=1787295960000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/cloudflare/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/cloudflare/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/cloudflare/skill.md Postman collection (v2.1): https://mcp.ai/cloudflare/postman.json ## Tools - cloudflare_create_dns_record(ttl?: integer, data?: object, name: string, tags?: string[], type: string, comment?: string, content: string, proxied?: boolean, priority?: integer, zone_identifier: string) — Tool to create a new DNS record within a specific zone. Requires write privileges and makes live changes to the zone. Use after obtaining the zone ID via CLOUDFLARE_LIST_ZONES to programmatically add - cloudflare_create_list(kind: string, name: string, account_id: string, description?: string) — Create a new empty custom list for use in WAF rules and filters. Lists can contain IP addresses, hostnames, ASNs, or redirects. Once created, use separate actions to add items to the list. Note: List - cloudflare_create_zone(name: string, type?: string, account?: object, jump_start?: boolean) — Creates a new DNS zone (domain) in Cloudflare. A zone represents a domain and its DNS records. Use this when adding a new domain to manage with Cloudflare. Requires account ID (obtainable via LIST_ACC - cloudflare_delete_dns_record(identifier: string, zone_identifier: string) — Tool to delete a DNS record within a specific zone. Deletion is immediate and irreversible. Use only after confirming both zone and record IDs. Requires write privileges on the zone. Example: "Delete - cloudflare_delete_list(list_id: string, account_id: string) — Tool to delete a WAF list. Use when you need to remove a list after verifying no filters reference it. Example: DELETE_LIST(account_id="", list_id="") - cloudflare_delete_zone(zone_identifier: string) — Tool to delete a zone. Use after confirming the zone identifier to permanently remove a DNS zone and all its DNS records from your Cloudflare account. Example: DELETE_ZONE(zone_identifier="023e105f4ec - cloudflare_get_bot_management_settings(zone_id: string) — Tool to retrieve a zone's Bot Management configuration (Bot Fight Mode / Super Bot Fight Mode / Enterprise Bot Management). Use after identifying the correct zone_id (e.g., via CLOUDFLARE_LIST_ZONES). - cloudflare_get_lists(account_id: string) — Tool to fetch all WAF lists (no items) for an account. Results are paginated; iterate using page and per_page parameters until result_info.total_pages is reached to retrieve all lists. Use after confi - cloudflare_list_account_members(page?: integer, order?: string, status?: string, per_page?: integer, direction?: string, account_id: string) — Lists all members of a Cloudflare account with their roles, permissions, and status. Returns detailed information about each account member including their user details (name, email, 2FA status), assi - cloudflare_list_accounts(name?: string, page?: integer, per_page?: integer, direction?: string) — List all Cloudflare accounts you have ownership or verified access to. Retrieves a paginated list of accounts with their details including account ID, name, type, settings, and creation date. An empty - cloudflare_list_dns_records(name?: string, page?: integer, type?: string, match?: string, content?: string, proxied?: boolean, zone_id: string, per_page?: integer, name_contains?: string, comment_contains?: string, content_contains?: string) — Tool to list and search DNS records in a Cloudflare zone. Use when you need to find existing DNS record IDs for update or delete operations, especially after a "record already exists" error during cre - cloudflare_list_firewall_rules(page?: integer, match?: string, order?: string, zone_id: string, per_page?: integer, direction?: string) — Tool to list firewall rules for a specific DNS zone. Use after confirming the zone ID to retrieve and audit current firewall rules. Does not expose Workers routes or other routing constructs. - cloudflare_list_monitors(page?: integer, order?: string, per_page?: integer, direction?: string, account_id: string) — Tool to list all load-balancer monitors in a Cloudflare account. Use after creating or updating monitors to retrieve a paginated list. Response includes `result_info.total_pages` to determine when all - cloudflare_list_pools(page?: integer, monitor?: string, per_page?: integer, account_id: string) — Tool to list all load balancer pools in a Cloudflare account. Use after confirming account ID to discover pool IDs. Paginate using `page` and `per_page`; check `result_info.total_pages` in the respons - cloudflare_list_tunnels(name?: string, page?: integer, per_page?: integer, account_id: string, is_deleted?: boolean) — List Cloudflare Tunnel (cloudflared) tunnels in an account to discover tunnel IDs, names, and statuses. Use when you need to find a tunnel_id before performing tunnel operations like routing, DNS conf - cloudflare_list_zones(name?: string, page?: integer, match?: string, order?: string, status?: string, account?: object, per_page?: integer, direction?: string) — Lists, searches, sorts, and filters zones in the authenticated account. Use `page`/`per_page` to paginate; check `result_info.total_pages` in the response to iterate all pages. Does not return DNS rec - cloudflare_update_dns_record(ttl?: integer, data?: object, name?: string, type?: string, content?: string, proxied?: boolean, priority?: integer, identifier: string, zone_identifier: string) — Tool to update an existing DNS record within a specific zone. Use after confirming both zone and record identifiers; only provided fields are modified. Updates to records used by active tunnels take e - cloudflare_update_list(list_id: string, account_id: string, description: string) — Tool to update the description of a WAF list (cannot update items). Use after confirming list metadata. - cloudflare_update_tunnel_configuration(config: object, tunnel_id: string, account_id: string) — Tool to update a remotely-managed Cloudflare Tunnel's configuration (ingress rules and routing). Use when you need to programmatically configure hostname-to-origin mappings for a tunnel. WARNING: This - cloudflare_update_zone(type?: string, paused?: boolean, zone_id: string, vanity_name_servers?: string[]) — Tool to update properties of an existing zone; changes apply immediately to the live zone. Confirm zone ID and intended change with the user before calling. Only one field can be modified per call. ## Example prompts - "What can I do in Cloudflare?" - "Show me a summary of my Cloudflare account" ## Links Docs: https://mcp.ai/docs/mcps/cloudflare Website: https://mcp.ai/mcps/cloudflare