# How to connect Cloudflare MCP to Claude

```json
{
  "title": "How to connect Cloudflare MCP to Claude",
  "toolkit": "Cloudflare MCP",
  "toolkit_slug": "cloudflare_mcp",
  "framework": "Claude Cowork",
  "framework_slug": "claude-cowork",
  "url": "https://composio.dev/toolkits/cloudflare_mcp/framework/claude-cowork",
  "markdown_url": "https://composio.dev/toolkits/cloudflare_mcp/framework/claude-cowork.md",
  "updated_at": "2026-09-24T15:33:30.252Z"
}
```

## Introduction

Claude is Anthropic's AI assistant, available on the web, in the desktop app, and on mobile. Cowork is its agent for knowledge work, and it runs on all of those surfaces too. Connected to your apps, Claude can work with your files and services to accomplish complex tasks on your behalf.
This guide walks you through the easiest and most secure way to connect your Cloudflare account to Claude via Composio Connect, enabling it to list active firewall rules for domain, purge cache for specific URL, create DNS record for example.com, and more such actions on your behalf without compromising your account security.
Setup is the same on Claude Web, Desktop, and Cowork, and you only need to do it once. The connector is tied to your account, so it's available in all three.

## Also integrate Cloudflare MCP with

- [ChatGPT](https://composio.dev/toolkits/cloudflare_mcp/framework/chatgpt)
- [Hermes](https://composio.dev/toolkits/cloudflare_mcp/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/cloudflare_mcp/framework/atomic-agent)

## Connect Cloudflare MCP to Claude Cowork

### Connecting Cloudflare to Claude Web, Desktop, and Cowork
Two ways to add the Composio connector. Pick whichever you prefer.
### 1. Add with one click
Click the button. Claude opens with the Composio connector filled in. Click Add, then go to step 2.
[Add to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Composio&connectorUrl=https%3A%2F%2Fconnect.composio.dev%2Fmcp)
### Add manually
In Claude Desktop, click Customize in the left sidebar, then select Connectors and click the + icon at the top.
Click Add custom connector and paste in the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is the Cloudflare MCP server, and what's possible with it?

The Cloudflare MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Cloudflare account. It provides structured and secure access so your agent can perform Cloudflare operations on your behalf.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `CLOUDFLARE_MCP_DOCS` | Docs | Search the Cloudflare documentation. This tool should be used to answer any question about Cloudflare products or features, including: - Workers, Pages, R2, Images, Stream, D1, Durable Objects, KV, Workflows, Hyperdrive, Queues - AI Search, Workers AI, Vectorize, AI Gateway, Browser Rendering - Zero Trust, Access, Tunnel, Gateway, Browser Isolation, WARP, DDOS, Magic Transit, Magic WAN - CDN, Cache, DNS, Zaraz, Argo, Rulesets, Terraform, Account and Billing Results are returned as semantically similar chunks to the query. |
| `CLOUDFLARE_MCP_EXECUTE` | Execute | Execute JavaScript code against the Cloudflare API. First use the 'search' tool to find the right endpoints, then write code using the cloudflare.request() function. Available in your code: interface CloudflareRequestOptions { method: "GET" \| "POST" \| "PUT" \| "PATCH" \| "DELETE"; path: string; query?: Record; body?: unknown; contentType?: string; // Custom Content-Type header (defaults to application/json if body is present) rawBody?: boolean; // If true, sends body as-is without JSON.stringify } interface CloudflareResponse { success: boolean; status: number; result: T; errors: Array; messages: Array; result_info?: { page: number; per_page: number; total_pages: number; count: number; total_count: number; }; } declare const cloudflare: { request(options: CloudflareRequestOptions): Promise>; }; declare const accountId: string; // accountId is pre-set to "e8a40544a7211334b83bf588bbf7dec1" (Qa@agent51testing.com's Account) — use it directly in API paths. Your code must be an async arrow function that returns the result. Example: Worker with bindings (requires multipart/form-data): async () => { const code = `addEventListener('fetch', e => e.respondWith(MY_KV.get('key').then(v => new Response(v \|\| 'none'))));`; const metadata = { body_part: "script", bindings: [{ type: "kv_namespace", name: "MY_KV", namespace_id: "your-kv-id" }] }; const b = `--F${Date.now()}`; const body = [`--${b}`, 'Content-Disposition: form-data; name="metadata"', 'Content-Type: application/json', '', JSON.stringify(metadata), `--${b}`, 'Content-Disposition: form-data; name="script"', 'Content-Type: application/javascript', '', code, `--${b}--`].join("\\r\\n"); return cloudflare.request({ method: "PUT", path: `/accounts/${accountId}/workers/scripts/my-worker`, body, contentType: `multipart/form-data; boundary=${b}`, rawBody: true }); } |
| `CLOUDFLARE_MCP_SEARCH` | Search | Search the Cloudflare OpenAPI spec. All $refs are pre-resolved inline. Products: cloudforce-one, access, magic, workers, dlp, realtime, email-security, devices, email, ai-gateway, intel, gateway, stream, brand-protection, settings, ai-search, data-security, browser-rendering, dex, logpush, api_gateway, builds, addressing, images, load_balancers, security-center, rulesets, vectorize, firewall, logs... (160 total) Types: interface OperationInfo { summary?: string; description?: string; tags?: string[]; parameters?: Array; requestBody?: { required?: boolean; content?: Record }; responses?: Record }>; } interface PathItem { get?: OperationInfo; post?: OperationInfo; put?: OperationInfo; patch?: OperationInfo; delete?: OperationInfo; } declare const spec: { paths: Record; }; Examples: // Find endpoints by product 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; } // Get endpoint with requestBody schema (refs are resolved) async () => { const op = spec.paths['/accounts/{account_id}/d1/database']?.post; return { summary: op?.summary, requestBody: op?.requestBody }; } // Get endpoint parameters async () => { const op = spec.paths['/accounts/{account_id}/workers/scripts']?.get; return op?.parameters; } |

## Supported Triggers

None listed.

## Troubleshooting

### 1. Why does Claude not use the Composio connector for Cloudflare?

The connector can show as connected, but Claude must use it in each Cloudflare conversation.
- Click + at the lower left of the chat, or type /.
- Hover Connectors.
- Turn on Composio.
- Ask Claude to connect to Cloudflare again.

### 2. Why does Claude show an MCP server error before Cloudflare connects?

Claude can show Couldn't reach the MCP server or Authorization with the MCP server failed when you add the connector for Cloudflare.
- Check that the connector URL is https://connect.composio.dev/mcp.
- Connectors run from Anthropic's cloud, so your device network is usually not the problem.
- Add the connector again from Customize > Connectors, then ask Claude to connect Cloudflare.
- If it fails again, send the error and the ofid_ reference id to support@composio.dev.

### 3. Why does the Cloudflare authorization link not work?

The Composio connector is one server. Your Cloudflare account connects separately when Claude asks for it.
- If the browser does not open, or the link expires, ask Claude to retry the Cloudflare connection.
- Composio creates a fresh Cloudflare authorization link.
- Open that link in your browser and finish the Cloudflare sign-in.

### 4. Why do Cloudflare actions fail after they worked before?

The Cloudflare connection can expire or lose permission.
- Ask Claude to inspect the Cloudflare connection.
- If the connection is unhealthy, disconnect it when Claude prompts you.
- Reconnect the Cloudflare account and retry the action.
- If Claude shows a permission prompt, approve it before Claude changes data in Cloudflare.
- If the action still fails with a permission error, check that the connected account has that permission in Cloudflare itself.

### 5. How do I switch to a different Cloudflare account?

Claude can manage the Cloudflare connection for you.
- Ask Claude to disconnect or delete the current Cloudflare account.
- Ask Claude to connect Cloudflare again.
- Open the new Composio authorization link for Cloudflare.
- Sign in with the other Cloudflare account in the browser.
- After the account connects, ask Claude to retry the Cloudflare task.

### 6. Why is my Cloudflare connection missing in Claude Desktop or on a Team plan?

The connector belongs to your Claude account, so your Cloudflare connection works in Claude Web, Desktop, and Cowork.
- In Claude Desktop, open Customize > Connectors.
- Next to Composio, click ⋮ and click Clear cache.
- If Cloudflare tools still do not appear, click ⋮, disconnect, remove the connector, and add it again.
- On Team or Enterprise, an Owner or Primary Owner must enable the connector before you can connect Cloudflare.

## Creating MCP Server - Stand-alone vs Composio SDK

The Cloudflare MCP server connects Claude Web, Desktop, and Cowork to your Cloudflare account through Composio. Once connected, Claude can use the available Cloudflare tools and triggers to complete tasks on your behalf.

## Complete Code

None listed.

## How to build Cloudflare MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/cloudflare_mcp/framework/chatgpt)
- [Hermes](https://composio.dev/toolkits/cloudflare_mcp/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/cloudflare_mcp/framework/atomic-agent)

## Related Toolkits

- [Supabase](https://composio.dev/toolkits/supabase) - Supabase is an open-source backend platform offering scalable Postgres databases, authentication, storage, and real-time APIs. It lets developers build modern apps without managing infrastructure.
- [Codeinterpreter](https://composio.dev/toolkits/codeinterpreter) - Codeinterpreter is a Python-based coding environment with built-in data analysis and visualization. It lets you instantly run scripts, plot results, and prototype solutions inside supported platforms.
- [GitHub](https://composio.dev/toolkits/github) - GitHub is a code hosting platform for version control and collaborative software development. It streamlines project management, code review, and team workflows in one place.
- [1password](https://composio.dev/toolkits/_1password) - 1Password is a password manager and digital vault for storing logins, secrets, notes, and secure documents. It helps individuals and teams protect credentials, share access safely, and reduce password risk.
- [Ably](https://composio.dev/toolkits/ably) - Ably is a real-time messaging platform for live chat and data sync in modern apps. It offers global scale and rock-solid reliability for seamless, instant experiences.
- [Abuselpdb](https://composio.dev/toolkits/abuselpdb) - Abuselpdb is a central database for reporting and checking IPs linked to malicious online activity. Use it to quickly identify and report suspicious or abusive IP addresses.
- [Alchemy](https://composio.dev/toolkits/alchemy) - Alchemy is a blockchain development platform offering APIs and tools for Ethereum apps. It simplifies building and scaling Web3 projects with robust infrastructure.
- [Algolia](https://composio.dev/toolkits/algolia) - Algolia is a hosted search API that powers lightning-fast, relevant search experiences for web and mobile apps. It helps developers deliver instant, typo-tolerant, and scalable search without complex infrastructure.
- [Anchor browser](https://composio.dev/toolkits/anchor_browser) - Anchor browser is a developer platform for AI-powered web automation. It transforms complex browser actions into easy API endpoints for streamlined web interaction.
- [Apiflash](https://composio.dev/toolkits/apiflash) - Apiflash is a website screenshot API for programmatically capturing web pages. It delivers high-quality screenshots on demand for automation, monitoring, or reporting.
- [Apiverve](https://composio.dev/toolkits/apiverve) - Apiverve delivers a suite of powerful APIs that simplify integration for developers. It's designed for reliability and scalability so you can build faster, smarter applications without the integration headache.
- [Appcircle](https://composio.dev/toolkits/appcircle) - Appcircle is an enterprise-grade mobile CI/CD platform for building, testing, and publishing mobile apps. It streamlines mobile DevOps so teams ship faster and with more confidence.
- [Appdrag](https://composio.dev/toolkits/appdrag) - Appdrag is a cloud platform for building websites, APIs, and databases with drag-and-drop tools and code editing. It accelerates development and iteration by combining hosting, database management, and low-code features in one place.
- [Appveyor](https://composio.dev/toolkits/appveyor) - AppVeyor is a cloud-based continuous integration service for building, testing, and deploying applications. It helps developers automate and streamline their software delivery pipelines.
- [Authyo](https://composio.dev/toolkits/authyo) - Authyo is a REST API service for passwordless authentication, OTP verification, session management, and transactional notifications. Use it to add secure login flows and user verification without building auth infrastructure from scratch.
- [AWS Marketplace MCP](https://composio.dev/toolkits/aws_marketplace_mcp) - AWS Marketplace MCP provides MCP access to AWS Marketplace's cloud software, data, and services catalog. Use it to discover, compare, and evaluate 30K+ AWS Marketplace listings faster.
- [Azure Monitor Activity Log](https://composio.dev/toolkits/azure_monitor_activity_log) - Azure Monitor Activity Log is Azure's service that records management and control-plane events for a subscription. Use it to audit changes, troubleshoot issues, and track resource operations across your Azure resources.
- [Backendless](https://composio.dev/toolkits/backendless) - Backendless is a backend-as-a-service platform for mobile and web apps, offering database, file storage, user authentication, and APIs. It helps developers ship scalable applications faster without managing server infrastructure.
- [Baserow](https://composio.dev/toolkits/baserow) - Baserow is an open-source no-code database platform for building collaborative data apps. It makes it easy for teams to organize data and automate workflows without writing code.
- [Bench](https://composio.dev/toolkits/bench) - Bench is a benchmarking tool for automated performance measurement and analysis. It helps you quickly evaluate, compare, and track your systems or workflows.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Cloudflare MCP?

With a standalone Cloudflare MCP server, the agents and LLMs can only access a fixed set of Cloudflare tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Cloudflare and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Cowork?

Yes, you can. Claude Cowork fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Cloudflare tools.

### Can I manage the permissions and scopes for Cloudflare while using Tool Router?

Yes, absolutely. You can configure which Cloudflare scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Cloudflare data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
