AMH Cloudflare Ops MCP by WT
The bridge from K2 agents through Wrangler to your master AI - safe, approval-gated Cloudflare ops.
Connector by pain2hustle · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/pain2hustle-cloudflare-ops-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://cfops.nothingunseen.com/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 28 read · 24 write · 7 delete · 6 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 65
Read from the source code; the running server may list different tools.
Read 28 · Look things up without changing anything.
agent_briefingagent_research_listagent_research_startagent_research_statusd1_queryfederation_listlist_taskslist_tokensmy_sitesmy_taskspages_branch_checkpages_cutover
Show 16 more tools
pages_get_deploymentpages_list_deploymentspages_read_filepages_special_filesplan_email_authpolicy_listrepo_listrepo_readrepo_searchscan_zonesite_autodeploy_statussite_viewstoken_audit_settingsverify_domainwho_serves_domainwt_whoami
Write 24 · Create, change, send or run things.
apply_dns_recordcancel_taskcreate_turnstile_widgetd1_createemail_austinfederation_addfinish_taskpages_add_domainpages_create_projectpages_deploypages_patchpolicy_set
Show 12 more tools
post_taskrepo_commit_pushrepo_merge_prset_dmarc_policysetup_bimisetup_email_routingsubmit_resultworker_deployworker_patchworker_patch_grantworker_patch_statusworker_patch_sync
Delete 7 · Delete, drop, revoke or wipe things.
d1_execdelete_dns_recordfederation_removemint_scoped_tokenpages_rollbackpurge_cacherevoke_token
Not yet classified 6 · We could not tell from the name and description.
account_doctoragent_controlclaim_taskrepo_open_prsite_autodeploywrangler_doctor
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
Authorization
Network hosts it talks to 31
amh-wt.internal· found in codeamhagentbook.com· found in codeamhsiterevival.com· found in codeapi.cloudflare.com· found in codeapi.github.com· found in codeartificialmindhive.com· found in codeattacker.test· found in codebindings.mcp.cloudflare.com· found in codebuilds.mcp.cloudflare.com· found in codecaptured.invalid· found in codecfops.nothingunseen.com· found in remote endpoint, install commandchallenges.cloudflare.com· found in codechatgpt.com· found in codecloudflare-ops-mcp.austinsdoors.workers.dev· found in codecloudflare-ops-mcp.pain2hustle1.workers.dev· found in codeconsole.artificialmindhive.com· found in codedash.cloudflare.com· found in codedevelopers.cloudflare.com· found in codedocs.mcp.cloudflare.com· found in codefonts.googleapis.com· found in codefonts.gstatic.com· found in codegithub.com· found in codemcp.artificialmindhive.com· found in codemcp.cloudflare.com· found in codeobservability.mcp.cloudflare.com· found in coderl.local· found in codesitemaps.org· found in codewalohq.com· found in codewp-test.pain2hustle1.workers.dev· found in codewt-cache.amh· found in code
Show 1 more hosts
wt-console.pages.dev· found in code
Files it touches
- Your home directory (~)
- Any path the agent passes to its tools
Tools (65)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
account_doctorDiagnose the token/account situation: accounts visible to this token, whether the expected account is among them (wrong-token detection), and SAME-NAME Pages projects across accounts — the decoy that silently eats deploys. Read-only.
agent_briefingReturn the Continuity Keeper's current compact project briefing and memory hash: active platform, target, blocker, keep/archive/drop guidance, and next safe step.
agent_controlSafely pause or resume new agent work, cancel a queued/running job at its next phase boundary, force read-only mode, or run retention cleanup. Models cannot disable read-only mode.
agent_research_listList recent delegated jobs for this authenticated user. Read-only and tenant-isolated.
agent_research_startDelegate a bounded research, verification, zero-AI site-health, UI, Cloudflare diagnosis, inventory, data review, missed-items, or revision-proposal job to the private AMH WT coordinator. Returns immediately with job and memory hashes; the configured free lane or explicitly enabled paid K2 lane runs durably in the background.
agent_research_statusRead one delegated job, including its redacted timeline, sources, primary result, independent verifier result, gaps, and candidate revisions.
apply_dns_recordUpsert a single DNS record (create if absent, update if content differs, no-op if identical). DRY-RUN by default — returns the planned diff and writes nothing unless apply=true. Never deletes.
cancel_taskCancel an open or claimed task.
claim_taskClaim an inbox task before working on it, so no other agent does it twice.
create_turnstile_widgetPlan or create a Cloudflare Turnstile widget for a domain. DRY-RUN by default; creates the widget only when apply=true. Returns the public sitekey and one-time secret when applied.
d1_createCreate a new D1 database (or list existing ones when name is omitted). Dry-run unless apply=true.
d1_execWRITE SQL on a D1 database (CREATE TABLE, INSERT, UPDATE, DELETE...). Dry-run unless apply=true; Austin must approve writes. DROP of a table needs force=true.
d1_queryREAD-ONLY SQL on a D1 database (SELECT / WITH / PRAGMA / EXPLAIN only). database = name or id. Returns rows.
delete_dns_recordDelete exactly one DNS record after a fresh lookup. Requires domain, exact record_id, matching expected_name, and confirm=true. Refuses by default and never deletes by name alone.
email_austinEmail Austin a result: a short note, a link (preview URL, PR, file), or a report. Plain text; keep it short and put links on their own lines. Use it when Austin says 'email me', or to deliver something that does not fit WhatsApp. Owner/agent keys only.
Show 50 more tools
federation_addRegister an upstream MCP server so its tools appear in THIS catalog under a namespace (namespace__tool) and calls proxy to it. Args: namespace (a-z0-9_-), url (https MCP endpoint), auth (optional Bearer token/connector key).
federation_listList registered upstream MCP servers (namespace, url, whether authed).
federation_removeUnregister an upstream MCP server by namespace.
finish_taskMark an inbox task done (or failed=true) with a short result: what you did, links, deployment ids. Pings Austin on WhatsApp if the task asked for it.
list_tasksThe whole agent board: every task, optionally by status (open/claimed/done/failed) or by who it's for.
list_tokensList API tokens on the connected user: id, name, status, expiry, and whether cfops minted them. NEVER returns token values (Cloudflare only shows those once, at mint). Read-only.
mint_scoped_tokenMint a narrow, auto-expiring Cloudflare API token for ONE zone (presets: zone-read, dns-zone, cache-purge; default 1h TTL). The vending machine for least-privilege agent work: hand a cheap agent a key that can't hurt anything and dies on its own. DRY-RUN by default — returns the exact policy JSON; mints nothing unless apply=true. Needs a bootstrap token with 'API Tokens Write'. There is deliberately NO super/account-wide preset.
my_sitesList the Cloudflare Pages sites your token can see (all your accounts): project, production branch, domains, last deploy. Start here.
my_tasksCheck your inbox: open tasks for you (or for 'any'). Run this when Austin says 'check your inbox'. Then claim_task → do the work → finish_task.
pages_add_domainAttach a custom domain (e.g. tacos.com or www.tacos.com) to a Pages project, or show the status of its domains. If the domain's zone is on the same Cloudflare account, Cloudflare sets up DNS itself; otherwise the result says what record to add. Dry-run unless apply=true.
pages_branch_checkCompare a Pages project's production branch against the branch you're about to deploy — catches the silent 'git says master, project says main, every deploy lands on a preview' failure. Read-only.
pages_create_projectCreate a NEW Cloudflare Pages project (empty site at <name>.pages.dev). Dry-run unless apply=true. Then use pages_deploy to put files on it and pages_add_domain for a custom domain.
pages_cutoverPlan or apply a Cloudflare Pages DNS cutover. Deletes only conflicting apex/www A/AAAA/CNAME records and www NS delegations, then creates proxied CNAMEs to the Pages target. DRY-RUN by default; writes only when apply=true.
pages_deployDeploy a COMPLETE built static site to a Cloudflare Pages project through the API (like `wrangler pages deploy`, no PC needed). Dry-run by default; apply=true uploads and deploys. branch = production branch goes LIVE; any other branch is a preview URL. A deploy replaces the whole site, so send every file. Static only (no functions/). artificialmindhive production is refused.
pages_get_deploymentDetails of one Pages deployment: url, branch, stages, commit message. Read-only.
pages_list_deploymentsList recent deployments of a Pages project, marking the one serving production. Read-only.
pages_patchChange ONLY a few files on a live Pages site (no PC, no full file set). Best: edits [{path, find, replace}] — the hub fetches the live file, replaces the exact text (must match once), and deploys. Or files [{path, content}] for whole changed files. The hub copies the live deployment's file list, swaps in the changes (and removes any in delete), keeps _redirects/_headers, and deploys. Every other file stays exactly as live. Dry-run by default; apply=true deploys. branch = production branch goes LIVE, any other = preview. Returns rollback_hint. Sites with server code (artificialmindhive) re-atta…
pages_read_fileRead the RAW text of one file exactly as the live production deployment serves it (no summarizer, no proxy). Use find to get the exact snippet(s) around a string; else returns content in chunks (offset/length). Read-only.
pages_rollbackPut a past production deployment back live. Dry-run by default; apply=true rolls back. artificialmindhive needs force=true plus a note.
pages_special_filesRead (no args besides account/project) or save the hub's copy of a project's _redirects/_headers, which pages_patch re-sends on every patch.
plan_email_authAnalyze a domain's email authentication (SPF/DKIM/DMARC/BIMI/routing) and report what is missing or misconfigured, with the exact records to add. Never writes.
policy_listList all non-default tool policies.
policy_setSet governance policy for any tool (native or federated namespace__tool): allow | approve | block. Default is allow. 'approve' refuses the call unless it carries "_approved": true.
post_taskGive a task to another agent (or yourself later) on the shared AMH agent board. to: grok | claude | jubber | codex | owner (Austin) | any.
purge_cachePurge Cloudflare's cache for a zone — the whole zone (default) or specific URLs. DRY-RUN by default: returns the scope and purges NOTHING unless apply=true. Needs a token with Zone > Cache Purge.
repo_commit_pushCommit to a grok/<name> (or agent/<name>) branch on GitHub in ONE commit, no PC. Branch is created from the default branch if new. files [{path, content, encoding?:'base64', delete?:true}] and/or edits [{path, find, replace}] applied to the branch's current file. Never touches the default branch, never force-pushes, never writes .github/.
repo_listList Austin's GitHub repos (pain2hustle/* and pain2hustle1/*): default branch, last push, private flag. Optional q filters by name/description. No PC needed.
repo_merge_prMerge an open grok/* or agent/* pull request into the default branch (normal merge commit, history kept, no force). Refused if the PR touches .github/.
repo_open_prOpen (or find) a pull request from a grok/<name> branch into the default branch so Austin can review and merge.
repo_readRead a file (raw text) or list a folder from a pain2hustle repo at a branch/ref. Use find (+around) to get exact snippets, or offset/length for big files. No PC needed.
repo_searchSearch code inside one pain2hustle repo (GitHub code search). Returns matching file paths.
revoke_tokenRevoke an API token by id (e.g. a minted task-token you're done with early). DRY-RUN by default; deletes nothing unless apply=true.
scan_zoneRead-only snapshot of a domain's Cloudflare zone: all DNS records plus parsed SPF, DMARC, BIMI, and Email Routing status. Never writes.
set_dmarc_policyChange the _dmarc policy (none|quarantine|reject), preserving other tags. DRY-RUN by default — returns the before/after diff and writes nothing unless apply=true.
setup_bimiCreate/update the default._bimi TXT record pointing at a logo SVG. REFUSES to write when DMARC is p=none (unless force=true) because BIMI won't be honored without enforced DMARC. DRY-RUN by default.
setup_email_routingEnable Cloudflare Email Routing and create forward rules (+ optional catch-all). Cloudflare auto-adds the MX/SPF records. DRY-RUN by default. Destination addresses must be verified by their owner via Cloudflare's email.
site_autodeployOne-time setup for sites with server code (Functions/_worker), or any site you keep in GitHub: deploys the repo to a Cloudflare Pages project on every push via GitHub Actions — no PC. Sets the repo secrets and opens a pull request adding the workflow; the user taps Merge to turn it on. Dry-run by default; apply=true does it. After that, change the site with repo_commit_push + repo_open_pr + repo_merge_pr.
site_autodeploy_statusLatest Walrus Tusk deploy runs for a repo (queued / running / success / failure, with links).
site_viewsREAD-ONLY traffic for one of Austin's domains from Cloudflare analytics: requests, page views and unique visitors for today, the last 7 days or the last 30 days, plus the period before it to compare, and a per-day list. Counts include bots unless noted. Use it for 'how many views on X'.
submit_resultSubmit the complete evidence-backed job result. Always call this tool exactly once.
token_audit_settingsRead or change the token auditor: unused_days = how long a hub-minted (cfops) token may sit unused before it is revoked (default 7). Admin keys can change it.
verify_domainRe-scan a domain and return a pass/fail checklist: SPF, DMARC present + enforced, MX, Email Routing, BIMI, DKIM count. Never writes.
who_serves_domainAnswer 'what is ACTUALLY serving this domain?': zone → Worker routes, Worker custom domains, and Pages projects that claim it, with a warning when multiple products fight over it. Read-only.
worker_deployDeploy a small Cloudflare Worker (one ES-module file, export default { fetch }) next to a site, e.g. an AI chat endpoint or a form handler. Optional bindings: ai=true gives env.AI (Workers AI, e.g. env.AI.run('@cf/moonshotai/kimi-k2.6', {messages})), d1=[{binding, database_id}] gives env.<binding>, vars={NAME:'value'}. Publishes at <name>.<account>.workers.dev. Refuses to overwrite any Worker the hub didn't create (Austin's existing workers are safe). Dry-run unless apply=true. Remember the account's free AI allowance is shared: add a rate limit to anything public.
worker_patchStep 2: land the patch. dry_run:true shows what would change and uses nothing. Live code must equal the latest version and the repo file, or it refuses. Checks the new version on its preview URL, goes live, checks live, rolls back by itself on failure, syncs the repo. Same request_id again returns the first receipt.
worker_patch_grantDescription is built at runtime.
worker_patch_statusReceipt for a worker_patch request id (state, versions, checks, rollback, repo commit).
worker_patch_syncOwner: put the repo's main file for an allow-listed Worker live exactly as written (preview check, live check, rollback). Needed once, or after someone deployed another way. dry_run defaults to true.
wrangler_doctorOne-call health check: Pages projects (with production branch + domains) and Workers on both accounts, plus live vs latest deployment for one project. Read-only.
wt_whoamiShow what this Walrus Tusk key is connected to (Cloudflare accounts, GitHub login). Tokens are never shown.
Compare and alternatives
Featured in
Signals
- Stars
- 9
- Forks
- 4
- Open issues
- 0
- Last commit
- Oct 23, 2026 (5 days ago)
- Last release
- Oct 19, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.pain2hustle/cloudflare-ops-mcp- Version
- 0.4.0
- Auth
- Bearer token
- License
- License unknown
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
AMH Cloudflare Ops MCP by WT. Agent Mart. https://agentmart.dev/connectors/pain2hustle-cloudflare-ops-mcp (last updated 2026-10-24)