list_accounts
List Cloudflare accounts accessible with the API token.
per_page
io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 1, 2026
Zones, DNS, cache purge, Workers, KV, and R2 through the Cloudflare API.
Local MCP server that gives an assistant Cloudflare account access: zones, DNS records, cache purge, Workers, KV and R2.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
edgeport is a small doorway into a Cloudflare account. From one bin an agent can see which accounts and zones a token can reach, read and change DNS records, purge cached content, and inventory the account's Worker scripts, KV namespaces, and R2 buckets. It runs from the command line or as an MCP server for agents.
A Cloudflare API token is required. Put it in the
CLOUDFLARE_API_TOKEN environment variable; it is sent to the API as
a Bearer token and never appears in output. Account-scoped tools
(Worker scripts, KV, R2) take an account_id argument, and when that
is omitted they fall back to CLOUDFLARE_ACCOUNT_ID. When a required
variable is missing, the call fails with an error that names it.
This is a core subset of the Cloudflare API, not the whole surface: Workers bindings deep configuration, observability and Logpush, rulesets and firewall rules, Pages and deployments, Stream and Images, AI and Vectorize, and the hosted documentation search tool are out of scope.
Or run the container image:
The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.
Exit codes: 0 on success, 1 when an API call fails (including a
missing CLOUDFLARE_API_TOKEN or a success: false envelope), 2
for usage errors.
One bin serves both faces. The mcp subcommand starts a stdio MCP
server:
MCP client configuration:
Every JSON response is unwrapped from Cloudflare's
{success, errors, result} envelope. A success: false envelope is
reported as a tool error carrying the API's own error entries.
MIT — see LICENSE.
Source: README.md at commit a3c8b4b
List Cloudflare accounts accessible with the API token.
per_pageList zones, optionally filtered by account or name.
nameper_pageaccount_idGet one zone by its id.
zone_idrequiredList DNS records in a zone, optionally filtered by type or name.
nametypezone_idrequiredper_pageCreate a DNS record in a zone.
ttlnamerequiredtyperequiredcommentcontentrequiredproxiedzone_idrequiredUpdate a DNS record in a zone.
ttlnametypecommentcontentproxiedzone_idrequiredrecord_idrequiredDelete a DNS record from a zone.
zone_idrequiredrecord_idrequiredPurge cached content for a zone, by file, tag, host, or everything.
tagsfileshostszone_idrequiredpurge_everythingList Worker scripts in an account.
account_idGet a Worker script's metadata and shape only, without its body.
account_idscript_namerequiredList Workers KV namespaces in an account.
account_idList R2 buckets in an account.
account_id90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
npx @reneturcios/edgeport list-zonesdocker run -i -e CLOUDFLARE_API_TOKEN ghcr.io/cloudcorprecords/edgeportexport CLOUDFLARE_API_TOKEN="your api token"export CLOUDFLARE_ACCOUNT_ID="your account id" # optional fallback
edgeport list-accountsedgeport list-zones --name example.comedgeport get-zone --zone-id <zone id>edgeport list-dns --zone-id <zone id> --type Aedgeport purge-cache --zone-id <zone id> --everythingedgeport list-workersedgeport list-kvedgeport list-r2
edgeport --versionnpx -y @reneturcios/edgeport mcp{ "mcpServers": { "edgeport": { "command": "npx", "args": ["-y", "@reneturcios/edgeport", "mcp"], "env": { "CLOUDFLARE_API_TOKEN": "your api token" } } }}npm installnpm run build # tsc -> dist/npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)npm run dev # run the CLI from source via tsx