cf-test — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cf-test (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Run live integration tests against the Cloudflare API to verify all MCP tools work correctly.
Usage: /cf-test (all domains) or /cf-test <domain> (single domain) Available domains: zones, dns, tunnels, waf, zerotrust, security, diagnostics
If a tool returns an unexpected error or wrong data:
bug including the failure detailsMCP-TEST or _mcp-test for easy identificationzones)Read tests:
cloudflare_zone_list — list zones, expect ≥1 zonecloudflare_zone_get — get first zone from list by namecloudflare_zone_setting_get — get ssl setting for first zoneSKIP: cloudflare_zone_setting_update — would change live zone settings
dns)Read tests:
cloudflare_dns_list — list records for first zonecloudflare_dns_export — export zone file in BIND formatcloudflare_dnssec_status — check DNSSEC statusWrite + Cleanup cycle — TXT Record:
cloudflare_dns_create — create TXT record: name _mcp-test, content mcp-live-test-v1, zone (use first zone from zones test)cloudflare_dns_get — VERIFY: get record by ID from step 4cloudflare_dns_search — VERIFY: search for _mcp-test, confirm it appearscloudflare_dns_update — update content to mcp-live-test-v2cloudflare_dns_get — VERIFY: confirm updated contentcloudflare_dns_delete — CLEANUP: delete record by IDcloudflare_dns_list — VERIFY: confirm _mcp-test is goneSKIP: cloudflare_dns_import — would bulk-import records
tunnels)Read tests:
cloudflare_tunnel_list — list tunnelscloudflare_tunnel_get — get first tunnel details (if any tunnels exist)cloudflare_tunnel_config_get — get tunnel config (if tunnel exists)SKIP: cloudflare_tunnel_create — would create real tunnel SKIP: cloudflare_tunnel_delete — destructive SKIP: cloudflare_tunnel_config_update — would change live tunnel config
waf)Read tests:
cloudflare_waf_list_rulesets — list rulesets for first zonecloudflare_waf_get_ruleset — get first ruleset details (if any exist)cloudflare_waf_list_custom_rules — list custom rulesSKIP: cloudflare_waf_create_custom_rule — would create live WAF rule SKIP: cloudflare_waf_delete_custom_rule — would delete live WAF rule
zerotrust)Read tests:
cloudflare_zt_list_apps — list Access applicationscloudflare_zt_list_policies — list Access policiescloudflare_zt_list_idps — list identity providerscloudflare_zt_gateway_status — get gateway statuscloudflare_zt_get_app — get first app details (if any apps exist, otherwise skip)SKIP: cloudflare_zt_create_policy — would create live Access policy
security)Read tests:
cloudflare_security_level_get — get security level for first zonecloudflare_under_attack_status — check Under Attack Modecloudflare_security_events — get recent security events (last 24h)cloudflare_ddos_analytics — get DDoS analyticscloudflare_ip_access_list — list IP access rulesWrite + Cleanup cycle — IP Access Rule:
cloudflare_ip_access_create — create IP access rule: mode whitelist, ip 192.0.2.1 (TEST-NET per RFC 5737), notes MCP-TESTcloudflare_ip_access_list — VERIFY: confirm rule with note MCP-TEST appearscloudflare_ip_access_delete — CLEANUP: delete rule by ID from step 6cloudflare_ip_access_list — VERIFY: confirm MCP-TEST rule is goneSKIP: cloudflare_security_level_set — would change live security level
diagnostics)Read tests:
cloudflare_account_info — get account infocloudflare_token_verify — verify API token validitycloudflare_zone_health — get zone health for first zonecloudflare_rate_limit_status — check API rate limit consumptionAfter all tests complete, present results in this format:
## Cloudflare Live Test Results — [DATE]
### Summary
- Total tools: 42
- Tested: [N] | Skipped: [N]
- PASS: [N] | FAIL: [N] | ERROR: [N]
- Write+Cleanup cycles: [N] completed, [N] failed
- Bugs created: [N] (list issue URLs)
### Per Domain
| Domain | Tools | Tested | Pass | Fail | Skip |
|--------|-------|--------|------|------|------|
| Zones | 4 | ... | ... | ... | ... |
| DNS | 9 | ... | ... | ... | ... |
| Tunnels | 6 | ... | ... | ... | ... |
| WAF | 5 | ... | ... | ... | ... |
| Zero Trust | 6 | ... | ... | ... | ... |
| Security | 8 | ... | ... | ... | ... |
| Diagnostics | 4 | ... | ... | ... | ... |
### Failures (if any)
| Tool | Input | Expected | Actual | Issue |
|------|-------|----------|--------|-------|
| ... | ... | ... | ... | #XX |
### Cleanup Status
- [ ] All test entries removed
- [ ] No `_mcp-test` / `MCP-TEST` entries remain in any domainPost a concise summary to Slack (channel provided by the caller):
🧪 Cloudflare Live Test — [DATE]
Tested: [N]/42 | ✅ [N] Pass | ❌ [N] Fail | ⏭️ [N] Skip
Write+Cleanup: [N]/[N] clean
Bugs: [N] created ([issue URLs])_mcp-test / MCP-TEST prefix for ALL test entries so they're easily identifiable._mcp-test (underscore prefix) — this is a valid TXT record name that won't conflict with real records.192.0.2.1 (TEST-NET per RFC 5737) — this IP is reserved for documentation and will never affect real traffic.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.