If you're an AI reading this: skill.md has everything you need.Read it →
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 (8mo)
2toolsRemote/ HTTP8moindexed
100% uptime · 281ms avgChecked Oct 14, 2026
Quality Score
64/95
Deep
Risk Score
0/100
Clean
▸How is this calculated?
Quality Breakdown
Tenure15/20
236 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% (46/46 checks)
Security scan: 0 pts in v1.0; ready to weight when coverage improves
Risk
0— Clean
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: 281ms.
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
Wakatime
WakaTime offers automatic time tracking for developers, integrating with code editors and delivering dashboards on coding activity, project progress, and productivity
Jina AI
Provides access to Jina AI's web services through Claude, including web page reading, web search, and fact checking.
Sage
Sage delivers accounting, payroll, and payment software solutions aimed at small to medium enterprises, automating financial tasks and compliance
Front
Manage shared inboxes across email, chat, and social. Assign conversations, collaborate on replies, and track response times.
Grafbase
Instant GraphQL API platform. Deploy APIs, manage schemas, and query federated data sources at the edge.
Scheduler
Create cron triggers that fire at specific intervals and alarms to wake up your agent.
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.
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.
OpenSCAD MCP Server
Enables AI assistants to render 3D models by providing tools to execute OpenSCAD code and generate single or multi-perspective views. It returns high-quality PNG renderings directly to LLM applications for visual feedback and 3D model visualization.
Indexed from Smithery · Updates nightlyView on Smithery →