Cloudflare API Integration
HTTP-SSELightweight MCP server for interfacing with Cloudflare REST API.
Lightweight MCP server for interfacing with Cloudflare REST API.
This is a lightweight Model Control Protocol (MCP) server bootstrapped with create-mcp and deployed on Cloudflare Workers.
This MCP server allows agents (such as Cursor) to interface with the Cloudflare REST API.
It's still under development, I will be adding more tools as I find myself needing them.
See src/index.ts for the current list of tools. Every method in the class is an MCP tool.
bun create mcp --clone https://github.com/zueai/cloudflare-api-mcp
Open Cursor Settings -> MCP -> Add new MCP server
and paste the command that was copied to your clipboard.
Upload your Cloudflare API key and email to your worker secrets:
bunx wrangler secret put CLOUDFLARE_API_KEY bunx wrangler secret put CLOUDFLARE_API_EMAIL
Add your Cloudflare API key and email to the .dev.vars
file:
CLOUDFLARE_API_KEY=<your-cloudflare-api-key> CLOUDFLARE_API_EMAIL=<your-cloudflare-api-email>
bun run deploy
To create new MCP tools, add methods to the MyWorker
class in src/index.ts
. Each function will automatically become an MCP tool that your agent can use.
Example:
/** * Create a new DNS record in a zone. * @param zoneId {string} The ID of the zone to create the record in. * @param name {string} The name of the DNS record. * @param content {string} The content of the DNS record. * @param type {string} The type of DNS record (CNAME, A, TXT, or MX). * @param comment {string} Optional comment for the DNS record. * @param proxied {boolean} Optional whether to proxy the record through Cloudflare. * @return {object} The created DNS record. */ createDNSRecord(zoneId: string, name: string, content: string, type: string, comment?: string, proxied?: boolean) { // Implementation }
The JSDoc comments are important:
@param
tags define the tool's parameters with types and descriptions@return
tag specifies the return value and type