GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
Cloudflare tools for coding agents: zones, DNS, analytics, Workers, Pages, storage and tunnels.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"cloudflare-tools": {
"command": "npx",
"args": [
"-y",
"@craftsamo/cloudflare-tools"
]
}
}
}Run this in your terminal
claude mcp add cloudflare-tools -- npx -y @craftsamo/cloudflare-toolsPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cloudflare-tools": {
"command": "npx",
"args": [
"-y",
"@craftsamo/cloudflare-tools"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"cloudflare-tools": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@craftsamo/cloudflare-tools"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account craft-agent, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: GitHub, Desktop Commander, Cloudflare MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Cloudflare tools for coding agents: zones, DNS, analytics, Workers, Pages, storage and tunnels.
| Harness | Delivery | Pinned by |
|---|---|---|
| OpenCode V2 | native plugin (npm package, with skills) | the version in the package |
| OpenCode V1 | native plugin (npm package, no skills) | the version in the package |
| Claude Code | plugin: MCP server and skills | the release tag, as the ref |
| Codex | plugin: MCP server and skills | the release tag, as the ref |
| Grok Build | plugin: MCP server and skills | the release tag, as @ref |
| Antigravity | plugin: MCP server and skills | the release tag's tree URL |
| Hermes Agent | native plugin (Python, calls the command line) | the release commit, as the SHA |
| other MCP host | MCP server from npm | the version in the package |
The tools need Node.js 24 or later. docs/conventions.md describes how the tools are named and how they behave.
Install from a release, never from the default branch: a release is a tag whose commit carries the built dist/, and the default branch does not. In the commands below, is a release's version (1.2.3) and is the commit its tag names:
gh api repos/craft-agent/cloudflare-tools/commits/v<version> --jq .sha
OpenCode V2 takes the package and its options in opencode.json:
{
"plugins": [{ "package": "@craftsamo/cloudflare-tools@ ", "options": { "read_only": false } }], "permissions": [{ "action": "cloudflare_*", "resource": "*", "effect": "ask" }] }
OpenCode V1 takes the package as a string, or as a pair with its options:
{
"plugin": [["@craftsamo/cloudflare-tools@ ", { "read_only": false }]], "permission": { "cloudflare_*": "ask" } }
OpenCode allows any action no rule names, so the plugin's request is granted silently unless a rule says ask. Read tools never ask, so the cloudflare_* glob is safe.
V1 registers no skills. Unpack the package and copy its skills/* folders into ~/.config/opencode/skills/:
npm pack @craftsamo/cloudflare-tools@<version>
tar -xzf craftsamo-cloudflare-tools- .tgz mkdir -p ~/.config/opencode/skills cp -r package/skills/* ~/.config/opencode/skills/ rm -rf package craftsamo-cloudflare-tools- .tgz
claude plugin marketplace add craft-agent/cloudflare-tools#v<version>
claude plugin install cloudflare-tools@craft-agent
codex plugin marketplace add craft-agent/cloudflare-tools --ref v<version>
codex plugin add cloudflare-tools@craft-agent
Codex turns - into _ in server names, so it shows the tools as mcp__cloudflare_tools__cloudflare_*. It starts the MCP server in the plugin's install directory, which is never the caller's working tree.
grok plugin install craft-agent/cloudflare-tools@v<version> --trust
Grok starts the MCP server in the session's working directory.
Install from the tree of the release tag, never from the default branch, which has no built dist/; Antigravity clones the tag into ~/.gemini/config/plugins/cloudflare-tools.
agy plugin install https://github.com/craft-agent/cloudflare-tools/tree/v<version>
Hermes installs a commit, not a tag, and the plugin installs disabled:
hermes plugins install craft-agent/cloudflare-tools --ref <sha>
hermes plugins enable cloudflare-tools
If a Hermes gateway is already running, restart it (hermes gateway restart) to load the plugin.
Add the server to the host's MCP configuration. Flags go in args:
{
"mcpServers": { "cloudflare-tools": { "command": "npx", "args": ["-y", "@craftsamo/cloudflare-tools@ ", "--read-only"] } } }
Each toolset comes with a skill that tells an agent how to use its tools.
account)Account credentials, token verification, and audit logs.
| Tool | What it does | Class |
|---|---|---|
cloudflare_account_read | view account details and token status, list configured accounts, or query audit logs | read |
The skill is cloudflare-account, shown as cloudflare-tools:cloudflare-account in Claude Code and cloudflare-tools:account in Hermes.
zones)Zone lookup, settings (read and change), Universal SSL, certificates, and DNSSEC.
| Tool | What it does | Class |
|---|---|---|
cloudflare_zone_read | list zones, view details, read settings, Universal ssl status, or dnssec | read |
cloudflare_zone_setting_edit | change 1–20 zone settings in order; refuses a change that lowers protection | overwrite |
cloudflare_zone_setting_weaken | change zone settings in ways that lower a visitor's protection; always asks first | administrative |
cloudflare_zone_cache_purge | purge cached copies of up to 100 URLs, hosts, prefixes or tags in a zone | idempotent |
cloudflare_zone_cache_purge_all | purge the whole cache of a zone; always asks first | administrative |
cloudflare_zone_dnssec_enable | turn DNSSEC on for a zone; harmless until registrar publishes the DS record | idempotent |
cloudflare_zone_dnssec_disable | turn DNSSEC off for a zone; requires DS removed at registrar first | administrative |
The skill is cloudflare-zones, shown as cloudflare-tools:cloudflare-zones in Claude Code and cloudflare-tools:zones in Hermes.
src/core/ / .ts with defineTool: an ID _ _ , a title and description, the Zod argument and output schemas, its toolset and write class, and execute(args, context). A write tool also gives targets(args, context): what the call writes to, as a permission rule should name it. .test.ts), calling it through invoke as the entry points do. A tool that runs a program is tested against a fake of that program on PATH; no test reaches a real service.src/tools.ts. A new toolset goes into toolsets in src/project.ts (and defaultToolsets when it is on by default).skills/ - /SKILL.md.pnpm run build && pnpm run manifests to list the tool in plugin.yaml, then describe it under "Tools and skills".docs/conventions.md has the rules each step follows.
Every read tool is named _ _read. Reads can run unasked; writes are confirmed by the harness.
| Harness | Reads without asking |
|---|---|
| OpenCode | always; the plugin asks only before a write |
| Claude Code | the rule mcp__plugin_cloudflare-tools_cloudflare-tools__*_read in permissions.allow of ~/.claude/settings.json |
| Codex | always; Codex runs tools that declare readOnlyHint unasked, as the read tools do |
| Grok Build | grok --allow 'MCPTool(cloudflare-tools__*_read)' --allow 'MCPTool(cloudflare_*_read)' (both rules; see below) |
| Antigravity | the rule mcp(cloudflare-tools_cloudflare-tools/ ) in permissions.allow, one for each read tool |
| Hermes | always; the plugin asks only before a write |
Where a write is asked about, and where it is not:
cloudflare_* rule shown under OpenCode.codex exec, and Grok Build under grok -p, refuse a write they cannot ask about, unless it is allowed beforehand.use_tool tool, and the agent often names a tool without its server first. Grok checks the rules against the name as given, so the server-qualified rule alone does not match that first call. The second rule matches the short name; a write still matches neither.cloudflare-tools_cloudflare-tools (plugin, then server). agy -p refuses a tool it cannot ask about.hermes chat -q refuses a write it cannot ask about; hermes -z and --yolo skip approval, so writes then run unasked.Every entry point takes the same settings. A flag wins over its environment variable, and an option or setting wins over the variable too.
| Setting | Flag | Variable | Meaning |
|---|---|---|---|
toolsets | --toolsets | CLOUDFLARE_TOOLS_TOOLSETS | the toolsets that are on, or all; default those src/project.ts names |
read_only | --read-only | CLOUDFLARE_TOOLS_READ_ONLY | registers no tool that writes; wins over every other setting |
tools | --tools | CLOUDFLARE_TOOLS_TOOLS | single tools to add by ID, whatever their toolset |
exclude_tools | --exclude-tools | CLOUDFLARE_TOOLS_EXCLUDE_TOOLS | single tools to remove by ID; wins over tools and toolsets |
confirm | --confirm | CLOUDFLARE_TOOLS_CONFIRM | MCP server only: harness (default) or elicitation, as the conventions say |
Lists are comma-separated in a flag or a variable. Where each harness reads them:
options shown above, with lists as arrays and read_only as a boolean.plugins.entries.cloudflare-tools.settings in config.yaml: plugins:
entries: cloudflare-tools: settings: read_only: false exclude_tools: []
[mcp_servers] in Codex's config with flags in args (as in Any other MCP host) instead of using the plugin.The tools call Cloudflare with API tokens read from the environment, never from a setting or an argument. Each token comes wi
Only the beginning is shown; read the rest in the repo