Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add zackbart/connecta --skill cloudflaregit clone --depth 1 https://github.com/zackbart/connectaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zackbart/connecta/cloudflare)<a href="https://agentmods.dev/skills/zackbart/connecta/cloudflare"><img src="https://agentmods.dev/badge/skills/zackbart/connecta/cloudflare/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zackbart/connecta/cloudflare"><img src="https://agentmods.dev/badge/skills/zackbart/connecta/cloudflare.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00002 | $0.01720 |
| Opus 5.5 | $0.00001 | $0.00688 |
| Sonnet 5.5 | $0.00000 | $0.00344 |
| Haiku 4.5 | $0.00000 | $0.00172 |
Grade A, and why
cloudflare scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
- The catalog is Cloudflare's own
searchandexecute.searchruns code against Cloudflare's OpenAPI document;executeruns code that may call any Cloudflare API endpoint the OAuth grant allows. - Connecta classifies
executeas a write, even for a program that only reads, because one program can mix GET, POST, PUT, PATCH, and DELETE and no schema proves otherwise. A read-only endpoint therefore gets onlysearchhere. Deployments that need API reads from a read-only endpoint configure an API-token connector, whosecloudflare_api_readand named reads are reads. - Use
searchto find the exact method, path, and fields before writing an execute program. Do not guess an endpoint from product naming. - Keep returned values small. Filter and project inside the Cloudflare program, then reduce again inside Connecta's
execute_codewhen several calls must be joined. - This connection has none of the REST connector's tools: no
cloudflare_api_*validation against a pinned index, nographql_query, nocloudflare_api_upload, and no account or zone pin. OAuth permissions are the boundary.
- An
auth_requiredfailure means this connector's Cloudflare authorization is missing or expired: runauthorize_connectorfor this connector id, then retry the same call unchanged.
This connector holds a Global API Key. It acts as its Cloudflare user with every permission that user has, in every account and zone the user belongs to, and nothing on Cloudflare's side narrows it. A mistaken write can reach production domains, billing, and members across all of them. Prefer reads, state the account and zone of every write, and stop when a request is ambiguous. Writes under /user and /memberships are refused. R2 accepts API tokens only, so R2 operations fail with this key.
- This is Connecta's REST connector to the Cloudflare v4 API, holding one operator-managed credential.
cloudflare_api_searchfinds API operations in a pinned index (not records) and names the tool that calls each;cloudflare_api_detailsreturns one operation's parameters and body with types, enums, and required names. Neither sends a request. cloudflare_api_readcalls GET operations plus reviewed read-only POSTs: analytics queries, Analytics Engine and SQL API queries, Log Explorer SQL, Vectorize queries, KV bulk get, telemetry queries, and validation checks.cloudflare_api_writecalls every other POST, PUT, PATCH, and DELETE withmethodandpathstated. D1…/queryand…/raw, Durable Object queries, Workers AI…/ai/run, AI Search and AutoRAG search (query rewriting runs billed models), monetization checks, and flag evaluation are writes: they can change data, cost money, or activate something.- Paths are concrete: substitute ids into the template search returned (
/zones/<zone id>/dns_records/<record id>). Passqueryandbodyas JSON named as details lists them; text operations (Analytics Engine SQL, Log Explorer SQL, Worker scripts) take a string body, and Vectorize inserts a list of objects sent as NDJSON. R2 calls acceptheaderswithcf-r2-jurisdictionorcf-r2-storage-class. Encode a/inside an R2 object key or KV key name as%2F. - Every call is checked against the pinned index before it is sent. An unknown path returns the nearest operations; an unknown or missing parameter returns
validation.issueswith the accepted names. Nothing reached Cloudflare, so fix the call from that answer. - Results arrive as
{ status, data, page? }with Cloudflare's envelope unwrapped:datais theresult. On a list, passpage.nextas thepage.paramquery argument (pagefor numbered lists,cursorfor KV, R2, and other cursor lists). Lists belong insideexecute_code; passselect(dot paths such asidandname) to keep only the fields the question needs. list_zonesandlist_accountsresolve names to ids;verify_credentialseparates a bad credential from a missing permission.graphql_queryruns read-only GraphQL Analytics queries (mutations are refused before sending); filter everyzonesoraccountsfield byzoneTagoraccountTag. A pinned connector sends one query per document, with every fragment it defines used.- Multipart, binary, and file bodies go through
cloudflare_api_upload: Worker scripts and versions, KV values, R2 objects, Pages deployments, Images, Stream, DNS zone-file import, and Snippets. It takestextBody,base64Body, or multipartparts, never a local file. - Refused by design: every operation that mints, rotates, or hands back a credential (API tokens, Access service tokens, R2 temporary credentials, tunnel and Mesh node tokens, signing keys, registry credentials, direct-upload URLs, deploy hooks, preview and participant tokens), payment client secrets, URL Scanner captures (results, HAR, DOM, raw responses: they hold the scanned session's cookies and headers; use the scan search for verdicts), and GETs that act (an email unsubscribe, a PagerDuty connect). Stored and embedded secrets (Turnstile, TSIG, webhook and identity-provider secrets, Stream keys, Logpush destination credentials, probe and custom-provider headers, BGP keys, Zaraz variables, Hyperdrive database passwords, RealtimeKit storage credentials, transform-rule header values) and every environment or plain-text binding value (Pages, Containers, Workers, Builds; names and types stay) come back as
"[redacted]"on every method. Notification, RealtimeKit, and data security webhook destinations keep only their scheme and host. Workers KV values are application data and come back as stored. Reviewed operations, and operations that take credentials, report Cloudflare's error codes without its error text. Worker script content is readable: it is code, and secret bindings are not part of it. - An
auth_requiredfailure means the credential is missing, revoked, or malformed: an operator must replace it in this connection in the operator UI, andauthorize_connectorreturns that handoff.provider_permission_deniedmeans the credential works but lacks this permission or resource, or the call is outside the pin; ask rather than retry.
What ships with it
13 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- drift.json 706 B
- fixtures.ts 1.2 KB runs code
- graphql.ts 15 KB runs code
- index.ts 16 KB runs code
- openapi.generated.ts 1015 KB runs code
- openapi.source.json 569 B
- provider.test.ts 68 KB runs code
- rest.ts 53 KB runs code
- skill.generated.ts 8.7 KB runs code
- value-safety.absent.json 23 KB
- value-safety.candidates.json 266 KB
- value-safety.node.test.ts 2.0 KB runs code
- value-safety.ts 79 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed 0f22b4d7abfd
- 5d ago Changed · +8 lines b13638ba8180
- 6d ago First seen · 46 lines · 2 tokens per session scan A 162431ff5088
cloudflare is a skill published in the GitHub repository zackbart/connecta (0 stars, last pushed today), licensed MIT. It adds 2 tokens to every session and 1,720 once invoked, about $0.0000 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-08.
Other skills, from other repositories
gke-compute-classes
Configures, optimizes, and troubleshoots GKE ComputeClasses. Use when configuring Spot VMs with on-demand fallback, targeting specific accelerators (GPUs/TPUs) or machine families, restricting ComputeClass access, or debugging pending pods related to node pool auto-creation. Do not use for cluster-level Node Auto…
gke-reliability
Improves GKE workload reliability, using PDBs, health probes, and topology spread constraints. Use when configuring GKE workload reliability, setting up PDBs, or configuring GKE health probes (liveness, readiness, startup). Don't use for generating K8s YAML manifests (use gke-manifest-generation) or disaster recovery…
gke-workload-security
Audits, configures, and hardens workload-level security controls for Google Kubernetes Engine (GKE) applications and namespaces. Covers running security audits (auditcluster.sh), enforcing Network Policies (default-deny and Dataplane V2 logging), isolating high-risk pods inside GKE Sandbox (gVisor), enforcing Pod…
cloud-architect
Designs cloud architectures, creates migration plans, generates cost optimization recommendations, and produces disaster recovery strategies across AWS, Azure, and GCP. Use when designing cloud architectures, planning migrations, or optimizing multi-cloud deployments. Invoke for Well-Architected Framework, cost…
nemo-automodel-launcher-config
Configure NeMo AutoModel job launches for interactive runs, Slurm clusters, and SkyPilot cloud execution.
azure-mgmt-botservice-dotnet
Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings. Triggers: "Bot Service", "BotResource", "Azure Bot", "DirectLine channel", "Teams channel", "bot management .NET", "create bot".