by gutmutcode
Manage DNS, CDN, and security configs with Cloudflare API. Automate web infrastructure using cloudflare dns and cloudfla
Connects Claude and IDEs to Cloudflare's API for managing your web infrastructure through natural language commands. Deploy workers, manage DNS, query databases, and handle CDN settings conversationally.
Cloudflare is a community-built MCP server published by gutmutcode that provides AI assistants with tools and capabilities via the Model Context Protocol. Manage DNS, CDN, and security configs with Cloudflare API. Automate web infrastructure using cloudflare dns and cloudfla It is categorized under cloud infrastructure, developer tools.
You can install Cloudflare in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
Apache-2.0
Cloudflare is released under the Apache-2.0 license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
Cloudflare is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
Cloudflare reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
We evaluated Cloudflare against two servers with overlapping tools; this profile had the clearer scope statement.
Cloudflare has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Cloudflare is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Useful MCP listing: Cloudflare is the kind of server we cite when onboarding engineers to host + tool permissions.
According to our notes, Cloudflare benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
We wired Cloudflare into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
Cloudflare is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
Cloudflare is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
showing 1-10 of 54
Model Context Protocol (MCP) is a new, standardized protocol for managing context between large language models (LLMs) and external systems. In this repository, we provide an installer as well as an MCP Server for Cloudflare's API.
This lets you use Claude Desktop, and IDE like VSCode (Cline) and Windsurf or any MCP Client, to use natural language to accomplish things on your Cloudflare account, e.g.:
Please deploy me a new Worker with an example durable object.Can you tell me about the data in my D1 database named '...'?Can you copy all the entries from my KV namespace '...' into my R2 bucket '...'?npx @gutmutcode/mcp-server-cloudflare initcloudflare section with your Cloudflare account ID.cloudflare section either. Windsurf has limitation on the use of MCP tools, so you can't use too many tools at the same time. (Unlike Cline and Claude)get_kvs: List all KV namespaces in your accountkv_get: Get a value from a KV namespacekv_put: Store a value in a KV namespacekv_list: List keys in a KV namespacekv_delete: Delete a key from a KV namespacer2_list_buckets: List all R2 buckets in your accountr2_create_bucket: Create a new R2 bucketr2_delete_bucket: Delete an R2 bucketr2_list_objects: List objects in an R2 bucketr2_get_object: Get an object from an R2 bucketr2_put_object: Put an object into an R2 bucketr2_delete_object: Delete an object from an R2 bucketd1_list_databases: List all D1 databases in your accountd1_create_database: Create a new D1 databased1_delete_database: Delete a D1 databased1_query: Execute a SQL query against a D1 databaseworker_list: List all Workers in your accountworker_get: Get a Worker's script contentworker_put: Create or update a Worker scriptworker_delete: Delete a Worker scriptanalytics_get: Retrieve analytics data for your domain
In the current project folder, run:
pnpm install
pnpm build:watch
Then, in a second terminal:
node dist/index.js init
This will link Claude Desktop against your locally-installed version for you to test.
To run the server locally, run node dist/index run <account-id>.
If you're using an alternative MCP Client, or testing things locally, emit the tools/list command to get an up-to-date list of all available tools. Then you can call these directly using the tools/call command.
// List workers
worker_list()
// Get worker code
worker_get({ name: "my-worker" })
// Update worker
worker_put({
name: "my-worker",
script: "export default { async fetch(request, env, ctx) { ... }}",
bindings: [
{
type: "kv_namespace",
name: "MY_KV",
namespace_id: "abcd1234"
},
{
type: "r2_bucket",
name: "MY_BUCKET",
bucket_name: "my-files"
}
],
compatibility_date: "2024-01-01",
compatibility_flags: ["nodejs_compat"]
})
// Delete worker
worker_delete({ name: "my-worker" })
// List KV namespaces
get_kvs()
// Get value
kv_get({
namespaceId: "your_namespace_id",
key: "myKey"
})
// Store value
kv_put({
namespaceId: "your_namespace_id",
key: "myKey",
value: "myValue",
expirationTtl: 3600 // optional, in seconds
})
// List keys
kv_list({
namespaceId: "your_namespace_id",
prefix: "app_", // optional
limit: 10 // optional
})
// Delete key
kv_delete({
namespaceId: "your_namespace_id",
key: "myKey"
})
// List buckets
r2_list_buckets()
// Create bucket
r2_create_bucket({ name: "my-bucket" })
// Delete bucket
r2_delete_bucket({ name: "my-bucket" })
// List objects in bucket
r2_list_objects({
bucket: "my-bucket",
prefix: "folder/", // optional
delimiter: "/", // optional
limit: 1000 // optional
})
// Get object
r2_get_object({
bucket: "my-bucket",
key: "folder/file.txt"
})
// Put object
r2_put_object({
bucket: "my-bucket",
key: "folder/file.txt",
content: "Hello, World!",
contentType: "text/plain" // optional
})
// Delete object
r2_delete_object({
bucket: "my-bucket",
key: "folder/file.txt"
})
// List databases
d1_list_databases()
// Create database
d1_create_database({ name: "my-database" })
// Delete database
d1_delete_database({ databaseId: "your_database_id" })
// Execute a single query
d1_query({
databaseId: "your_database_id",
query: "SELECT * FROM users WHERE age > ?",
params: ["25"] // optional
})
// Create a table
d1_query({
databaseId: "your_database_id",
query: `
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
`
})
// Get today's analytics
analytics_get({
zoneId: "your_zone_id",
since: "2024-11-26T00:00:00Z",
until: "2024-11-26T23:59:59Z"
})
Contributions are welcome! Please feel free to submit a Pull Request.
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.