150,000+ agents registered. Trust scores show their math.Explore →
Explorer/MCP/smithery/cloudflare
REMOTE

Cloudflare

smithery/cloudflare

Manage and configure Cloudflare services using the full OpenAPI specification. Search for endpoints and execute custom logic across products like Workers, R2, and security settings. Automate infrastructure tasks directly through API requests and integrated scripts.

2 tools available
The Newcomer
Hasn't been around long. Nothing caught our attention, but there isn't much history to go on yet.
Time indexed (7mo)
2toolsRemote/ HTTP7moindexed
100% uptime · 263ms avgChecked Sep 11, 2026
Quality Score
64/95
Deep
Risk Score
0/100
Clean
How is this calculated?
Quality Breakdown
Tenure14.6/20
207 days indexed
Capability14.4/25
Tools: 2.4/13 (2 tools)
Description: 5/5
Endpoint: 7/7
Adoption9.5/25
Use count: 9.5/20 (238 uses)
Multi-registry: 0/5 (1 registry)
Reliability25/25
Currently live: 10/10
Uptime history: 15/15 100% (42/42 checks)
Security scan: 0 pts in v1.0; ready to weight when coverage improves
Risk
0Clean
No signals detected.
The scanner shows
2 tools. Nothing caught our attention.
First indexed Feb 21, 2026
Server Profile
Tools catalogued
2
2 tools available. Full list below.
Hosting
Remote / HTTP
Runs on the internet. No access to your filesystem, SSH keys, or environment variables.
Registry presence
Not verified
Not yet verified by the Official MCP Registry.
Liveness
100%
Based on 48 checks. Average response: 263ms.
Publisher Verification
Not yet verified by the Official MCP Registry.
Endpoint
https://cloudflare.run.tools
Threat IntelligenceCaution
⚠ Capability driftCautionApr 13, 07:32 AM
+ Added: search, execute
Tools (2)
search
Search the Cloudflare OpenAPI spec. All $refs are pre-resolved inline. Products: ai, cloudforce-one, access, magic, workers, realtime, devices, dlp, email-security, stream, ai-search, brand-protection, gateway, intel, email, api_gateway, addressing, browser-rendering, dex, rulesets, ai-gateway, builds, logpush, vectorize, firewall, load_balancers, settings, logs, secondary_dns, urlscanner... (134 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; }
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>>; }; // IMPORTANT: This token has access to multiple Cloudflare accounts. // The accountId variable will be set based on the account_id parameter you pass to this tool. // Available accounts: // "803f233d0412e126cfeaf342557f82a0" — [email protected]'s Account // "c4cf21d8a5e8878bc3c92708b1f80193" — Smithery // Ask the user which account to use if unclear, then pass it as the account_id parameter. declare const accountId: string; // Set from your account_id parameter 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 }); }

Is this your server?

Create a free RNWY account to connect your on-chain identity to this server. MCP server claiming is coming; register now and you'll be first in line.

Create your account →
More from smithery
Text Editor Server
Provides line-oriented text file editing capabilities through a standardized API, optimized for LLM tools.
Confluence Cloud
Interact with Confluence Cloud to manage spaces, pages, and content.
Obsidian
MCP server for AI assistants to interact with Obsidian vaults.
MCP Trader Server
A Model Context Protocol (MCP) server for stock traders.
LibSQL Memory
High-performance vector search and persistent memory using libSQL.
MCP Starter
A starter server template for building AI assistant tools.
Similar servers
Press Release
press-release MCP — wraps StupidAPIs (requires X-API-Key)
MCP Server for LimeSurvey
Enables interaction with LimeSurvey API to create and manage surveys, questions, question groups, activate surveys, and export responses through standardized MCP endpoints.
io.github.zenml-io/mcp-zenml
MCP server for ZenML - browse stacks, pipelines, runs, artifacts & trigger pipeline runs via API
Linear
Linear MCP — wraps the Linear GraphQL API (OAuth)
HAPI MCP Server
HAPI MCP server: Dynamically exposes OpenAPI REST APIs as MCP tools for AI assistants
Google Docs MCP Server
Enables Claude to read, create, and update Google Docs through OAuth authentication. Deployed as a remote Next.js server on Vercel with support for multiple users and secure API key management.
Indexed from Smithery · Updates nightlyView on Smithery →