Files
claude-plugins/wordpress/skills/mcp-cloudflare-app/SKILL.md
T
ealmeida a2205076fc feat(wordpress): skill mcp-cloudflare-app para o novo MCP da zona Cloudflare (app-for-cf)
Documenta as 14 tools do MCP dedicado descomplicar.pt (Bot Management, WAF Managed Ruleset, HSTS, CT, Leaked Credential Checks, purge cache), complementar à skill app-for-cloudflare existente. Keyword cloudflare adicionada ao manifesto.
2026-08-19 05:10:03 +01:00

6.5 KiB

name, description, layer
name description layer
mcp-cloudflare-app MCP dedicado (HTTP StreamableHTTP local, ligação `cloudflare-app` em ~/.claude.json, porta 3201) para a zona Cloudflare gerida pelo plugin App for Cloudflare® (`app-for-cf`) em descomplicar.pt — definições de zona SSL/TLS/Speed/Caching/Network/Scrape Shield, Bot Management + Super Bot Fight Mode, WAF via Managed Ruleset, HSTS, Certificate Transparency, Leaked Credential Checks, purge de cache. Fala directamente com a Cloudflare API v4, sem passar pelo EMCP Tools nem pelo WordPress em runtime. Usar quando "waf cloudflare vazio", "bot management ai", "purge cache cloudflare", "hsts cloudflare", "managed ruleset", "is_robots_txt_managed", "certificate transparency cloudflare", "leaked credential checks", ou qualquer alteração de definição de zona Cloudflare via MCP em vez de curl manual. wiki

/mcp-cloudflare-app — MCP dedicado à zona Cloudflare (App for Cloudflare®)

Projecto em /media/ealmeida/Dados/Dev/mcp-cloudflare-app/ (TypeScript, SDK MCP oficial, StreamableHTTP). Não é uma extensão do EMCP Tools nem fala com o WordPress em runtime — o plugin App for Cloudflare® não expõe REST próprio (confirmado por leitura completa do código-fonte, ver skill app-for-cloudflare). Toda a configuração de zona vive na Cloudflare API v4, não em wp_options; este MCP fala directamente com essa API usando um token extraído uma vez de wp_options.app_for_cf.cloudflareAuth.token e guardado em .env local (não em cada chamada).

Relação com a skill app-for-cloudflare: essa skill é a fonte de conhecimento (mapeamento completo plugin↔Cloudflare API, gotchas, scopes de token, as ~52 definições de zona). Esta skill é o "como executar" — qual tool chamar para cada operação. Consultar app-for-cloudflare para entender uma definição; usar as tools abaixo para lê-la/escrevê-la.

Âmbito

Zona actual configurada: descomplicar.pt. Para gerir outra zona do bundle, extrair cloudflareAuth.token/cfZoneId de wp_options.app_for_cf desse site (SQL read-only, ver "Credenciais" abaixo) e actualizar o .env do MCP — não há multi-zona numa única ligação.

Não cobre: R2 media storage, Zero Trust Access, Page/Cache Rules, Firewall Rules custom, DMARC, Web Analytics, ferramentas de diagnóstico (request trace/IP/domain/WHOIS) — todas Pro-only na UI do plugin ou fora do âmbito "definições de zona + segurança + purge" decidido na criação do MCP (19-08-2026). Gerir manualmente via dashboard Cloudflare ou via curl directo (ver skill app-for-cloudflare §10/§2 para os endpoints).

Tools (14)

Tool Read-only Uso
cf_list_zone_settings sim Lê todas as definições de zona em bloco
cf_get_zone_setting sim Lê uma definição por id (ex. rocket_loader, cache_level)
cf_update_zone_setting não Escreve uma definição por id — bloqueia ids de bot_management/waf com redirect accionável para a tool certa
cf_get_bot_management sim Lê Bot Management/SBFM completo (inclui campos fora da UI do plugin: ai_bots_protection, is_robots_txt_managed), sinaliza risco GEO
cf_update_bot_management não Escreve Bot Management/SBFM — merge parcial (lê, aplica só os campos dados, PUT completo; remove using_latest_model do payload automaticamente)
cf_get_waf_status sim Verifica se a fase http_request_firewall_managed tem regras execute reais (o toggle legado waf não garante protecção)
cf_deploy_managed_ruleset não Implanta o Cloudflare Managed Free Ruleset na fase managed — disponível em qualquer plano
cf_get_hsts_settings / cf_update_hsts_settings sim/não HSTS (security_header)
cf_get_certificate_transparency / cf_update_certificate_transparency sim/não Alertas CT (ct/alerting)
cf_get_leaked_cred_checks / cf_update_leaked_cred_checks sim/não Leaked Credential Checks
cf_purge_cache não Purga tudo (omitir files) ou até 30 URLs específicos

Padrão Descomplicar® para Bot Management (GEO-crítico — ver skill app-for-cloudflare §5a): cf_update_bot_management com {"ai_bots_protection":"disabled","content_bots_protection":"disabled","crawler_protection":"disabled","ai_training":"disabled","ai_search":"disabled","ai_user":"disabled","fight_mode":false,"is_robots_txt_managed":false} — nunca aceitar o "good" que o próprio plugin recomenda para ai_bots_protection/crawler_protection (block/enabled), é o oposto da decisão Descomplicar.

Segurança

Escritas em bot_management fazem sempre GET→merge→PUT (nunca um PUT parcial cego — a Cloudflare substitui o objecto inteiro). cf_update_zone_setting recusa explicitamente ids que pertencem ao endpoint bot_management (waf, bot_fight_mode, ai_bots_protection, crawler_protection, bot_likely_automated, bot_definitely_automated, bot_verified_bots, bot_static_resource_protection, bot_optimize_wordpress, bot_enable_js) e devolve isError com a tool certa a usar, em vez de deixar a Cloudflare rejeitar com 10405 Method not allowed.

Credenciais

.env local (CLOUDFLARE_API_TOKEN, CLOUDFLARE_ZONE_ID, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_ZONE_NAME), não versionado. Reextrair para outro site via SQL read-only (mais rápido que SSH+WP-CLI se já houver uma ligação EMCP a esse site):

SELECT option_value FROM <prefixo>_options WHERE option_name = 'app_for_cf';

O valor é um array PHP serializado — extrair cloudflareAuth.token e cfZoneId. Confirmar o prefixo real da tabela primeiro (SHOW TABLES LIKE '%options%'; em descomplicar.pt é wpah_, não wp_).

Verificação

Construído e testado ponta-a-ponta contra a zona real descomplicar.pt 19-08-2026: 12/12 evaluations (npm run eval:ci), incluindo leitura real que confirmou dois achados de produção ainda por corrigir — WAF Managed Ruleset vazio (zero regras execute) e HSTS desligado. Bot Management já correcto (sem risco GEO). Deploy como processo hub persistente (mcp-cloudflare-app, porta 3201, http://127.0.0.1:3201/mcp), registado em ~/.claude.json como cloudflare-app.

Skills relacionadas

  • app-for-cloudflare — mapeamento completo plugin↔Cloudflare API v4, gotchas, scopes de token, as ~52 definições de zona, EasyConfig, WAF, Bot Management, HSTS, o modelo wp_options.app_for_cf.
  • wordfence — se a decisão for usar Wordfence em vez do WAF Cloudflare como camada primária, é essa a skill certa para regras/bloqueios ao nível da aplicação (este MCP só cobre o WAF de edge).