io.github.CloudCorpRecords/edgeport

Official registry Search and web

Zones, DNS, cache purge, Workers, KV, and R2 through the Cloudflare API.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @reneturcios/edgeport
Claude Code
claude mcp add edgeport -- npx -y @reneturcios/edgeport@0.1.0 mcp
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "edgeport": {
            "command": "npx",
            "args": [
                "-y",
                "@reneturcios/edgeport@0.1.0",
                "mcp"
            ]
        }
    }
}
OCI package ghcr.io/cloudcorprecords/edgeport:0.1.0
Claude Code
claude mcp add edgeport -- docker run -i --rm ghcr.io/cloudcorprecords/edgeport:0.1.0 mcp
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "edgeport": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/cloudcorprecords/edgeport:0.1.0",
                "mcp"
            ]
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. edgeport
  2. Install
  3. CLI
  4. MCP server
  5. Development
  6. License

edgeport

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.

Install

npx @reneturcios/edgeport list-zones

Or run the container image:

docker run -i -e CLOUDFLARE_API_TOKEN ghcr.io/cloudcorprecords/edgeport

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

export CLOUDFLARE_API_TOKEN="your api token"
export CLOUDFLARE_ACCOUNT_ID="your account id"   # optional fallback

edgeport list-accounts
edgeport list-zones --name example.com
edgeport get-zone --zone-id <zone id>
edgeport list-dns --zone-id <zone id> --type A
edgeport purge-cache --zone-id <zone id> --everything
edgeport list-workers
edgeport list-kv
edgeport list-r2

edgeport --version

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.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/edgeport mcp

MCP client configuration:

{
  "mcpServers": {
    "edgeport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/edgeport", "mcp"],
      "env": { "CLOUDFLARE_API_TOKEN": "your api token" }
    }
  }
}
Tools
ToolInputWhat it returns
list_accountsper_page (integer, optional)Accounts the token can access, from the envelope's result.
list_zonesaccount_id, name, per_page (all optional)Zones, optionally filtered by account or name.
get_zonezone_id (required)One zone's details.
list_dns_recordszone_id (required), type, name, per_page (optional)DNS records in the zone.
create_dns_recordzone_id, type, name, content (required), ttl, proxied, comment (optional)The created record.
update_dns_recordzone_id, record_id (required), any record field (optional)The updated record; only the fields given are sent.
delete_dns_recordzone_id, record_id (required)The delete result.
purge_cachezone_id (required), purge_everything, files, tags, hosts (optional)The purge result for the zone.
list_workers_scriptsaccount_id (optional)Worker scripts in the account.
get_worker_scriptscript_name (required), account_id (optional)A shape summary only: content type, byte size, body present. The script body is never returned.
list_kv_namespacesaccount_id (optional)Workers KV namespaces in the account.
list_r2_bucketsaccount_id (optional)R2 buckets in the account.

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.

Development

npm install
npm 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

License

MIT — see LICENSE.

Frequently asked questions

What is io.github.CloudCorpRecords/edgeport?

Zones, DNS, cache purge, Workers, KV, and R2 through the Cloudflare API.

How do I install io.github.CloudCorpRecords/edgeport?

It runs on your machine. In Claude Code: claude mcp add edgeport -- npx -y @reneturcios/edgeport@0.1.0 mcp. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.CloudCorpRecords/edgeport need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is io.github.CloudCorpRecords/edgeport open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.CloudCorpRecords/edgeport?

It is published by CloudCorpRecords. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.