Cloudflare MCP logo

Integrate Cloudflare MCP with your AI CRM

Manage Cloudflare resources through the Cloudflare API MCP server.

Explore Triggers and Actions

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.

ActionTry it

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<string, string | number | boolean | undefined>; 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<T = unknown> { success: boolean; status: number; result: T; errors: Array<{ code: number; message: string }>; messages: Array<{ code: number; message: string }>; result_info?: { page: number; per_page: number; total_pages: number; count: number; total_count: number; }; } declare const cloudflare: { request<T = unknown>(options: CloudflareRequestOptions): Promise<CloudflareResponse<T>>; }; 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 }); }

ActionTry it

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<{ name: string; in: string; required?: boolean; schema?: unknown; description?: string }>; requestBody?: { required?: boolean; content?: Record<string, { schema?: unknown }> }; responses?: Record<string, { description?: string; content?: Record<string, { schema?: unknown }> }>; } interface PathItem { get?: OperationInfo; post?: OperationInfo; put?: OperationInfo; patch?: OperationInfo; delete?: OperationInfo; } declare const spec: { paths: Record<string, PathItem>; }; 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; }

ActionTry it

How the Cloudflare MCP integration works

The Cloudflare MCP integration connects your Dench AI CRM directly to Cloudflare MCP, so agents can read and act on your Cloudflare MCP data as part of everyday work — answering questions in chat, keeping your CRM in sync, and running automations without anyone copying data between tools.

3 actions are available for agents to invoke on your behalf. Every call runs through Cloudflare MCP's own authorization, scoped to the account you connect.

Set up Cloudflare MCP in Dench

  1. 1

    Sign in to your Dench workspace and open Integrations.

  2. 2

    Find Cloudflare MCP and click Connect — you'll authorize access through Cloudflare MCP's own sign-in flow. No API keys or code required.

  3. 3

    Ask an agent to use Cloudflare MCP in chat, or call it from an automation.

  4. 4

    Manage or disconnect the connection any time from workspace settings.

Frequently asked questions

How does the Cloudflare MCP integration work with Dench?

The Dench Cloudflare MCP integration connects your AI CRM to Cloudflare MCP, so AI agents can work with your Cloudflare MCP data as part of chats, automations, and CRM workflows. You connect your account once, and every agent in your workspace can use it — governed by your workspace permissions.

What actions can AI agents perform with Cloudflare MCP via Dench?

The Cloudflare MCP integration currently exposes 3 actions, including Docs, Execute, and Search. Agents invoke them on your behalf from chat or from automations.

Do I need to write code to connect Cloudflare MCP to Dench?

No. You connect Cloudflare MCP from your Dench workspace using Cloudflare MCP's own sign-in and authorization flow — no API keys to copy, no glue code to maintain.

Is the Cloudflare MCP integration secure?

Connections are authorized through Cloudflare MCP's own authentication flow, and Dench stores only the authorization needed to act on your behalf. You can review and disconnect the Cloudflare MCP connection from your workspace settings at any time.

Cloudflare MCP | Dench AI CRM