--- name: mcp-wpfc description: MCP dedicado multi-site (node stdio, ligação `wpfc` em ~/.omp/agent/mcp.json) para gerir o WP Fastest Cache (Free + Premium) em qualquer site do bundle Descomplicar® via WP-CLI/SSH — estado do plugin, config principal com guarda-corpo Premium, purga, exclusões, Clearing Specific Pages, CDN, Varnish, caminho da cache, restrições de toolbar. Site é um parâmetro em cada tool, não uma ligação fixa. Usar quando "purgar cache via mcp", "wpfc mcp", "activar premium wp fastest cache", "config wpfc", "regras de exclusão wpfc", "clearing specific pages mcp", "cdn nativa wpfc", "varnish wpfc", "toolbar wpfc". layer: wiki --- # /mcp-wpfc — MCP dedicado multi-site ao WP Fastest Cache Projecto em `/media/ealmeida/Dados/Dev/mcp-wpfc/` (TypeScript, SDK MCP oficial, stdio). Não é uma extensão do EMCP Tools — mesma razão que `mcp-element-pack`: sem código PHP novo no WordPress, cada tool executa `wp option get/update` ou `wp fastest-cache clear` via `ssh server` sobre o WP-CLI já instalado. Diferença estrutural face a `element-pack`/`bit-social`/`cloudflare-app`: **`site` é um parâmetro em cada tool**, não uma ligação fixa por site — WP Fastest Cache está espalhado por 8 sites reais do bundle com estados diferentes (ver skill `wp-fastest-cache` §16.1). **Relação com a skill `wp-fastest-cache`:** essa skill é a fonte de conhecimento (mapeamento completo de todas as options e o seu significado, comportamento por versão Free/Premium, gotchas de produção). Esta skill é o "como executar" — qual tool chamar para cada operação. Consultar `wp-fastest-cache` para entender uma definição; usar as tools abaixo para lê-la/escrevê-la. ## Âmbito Config e purga do WP Fastest Cache (Free + Premium). Não cobre: activação/desactivação do próprio plugin (`emcp-tools activate-plugin`/`deactivate-plugin` já cobre isso genericamente), Redis Object Cache (skill `redis-object-cache`), purga Cloudflare edge (App for Cloudflare® ou `mcp-cloudflare-app`), WP Meteor (skill `wp-meteor`). ## Sites conhecidos Chamar `wpfc_list_sites` para a lista actual com path e nota de estado. Aliases verificados ao vivo 19-08-2026: `descomplicar` (produção, Free+Premium inactivos), `emanuelalmeida` (Free active), `starter` (Free active), `ccv` (Free active), `care`/`ecommerce-demo`/`ecommerce` (WPFC não instalado), `e-commerce` (Free inactive). Também aceita um path absoluto directamente (`/home/ealmeida/`) para sites fora desta lista, sem exigir rebuild do MCP. ## Tools (18) | Tool | Read-only | Uso | |---|---|---| | `wpfc_list_sites` | sim | Aliases conhecidos, path WP, nota de estado | | `wpfc_get_status` | sim | Free/Premium instalado, activo, versão — chamar sempre antes de `wpfc_set_config` | | `wpfc_get_config` | sim | Option `WpFastestCache` completa | | `wpfc_set_config` | não | Merge de chaves na `WpFastestCache` (read-modify-write) — recusa chaves só-Premium sem `wp-fastest-cache-premium` activo ou `force_premium:true` | | `wpfc_purge_cache` | não | `mode`: `all` / `all_minified` / `post` (exige `post_id`). Não purga Cloudflare — usar `mcp-cloudflare-app`/App for Cloudflare® à parte | | `wpfc_get_exclude` / `wpfc_set_exclude` | sim/não | `WpFastestCacheExclude` — regras de exclusão de páginas/cookies/user-agents. Set é **substituição completa**, não merge | | `wpfc_get_csp` / `wpfc_set_csp` | sim/não | `WpFastestCacheCSP` — Clearing Specific Pages (purga extra de páginas agregadoras). Set substitui por inteiro | | `wpfc_get_cdn` / `wpfc_set_cdn` | sim/não | `WpFastestCacheCDN` — integrações CDN nativas (Cloudflare/MaxCDN/BunnyCDN/CloudFront/genérica). Set substitui por inteiro | | `wpfc_get_varnish` / `wpfc_set_varnish` | sim/não | `WpFastestCacheVarnish` — `{server, status?}`. Set substitui por inteiro | | `wpfc_get_pathSettings` / `wpfc_set_pathSettings` | sim/não | `WpFastestCachePathSettings` — `{cachepath, optimizedpath}`. Set substitui por inteiro | | `wpfc_get_toolbarSettings` / `wpfc_set_toolbarSettings` | sim/não | `WpFastestCacheToolbarSettings` — roles sem acesso à toolbar de admin. Set substitui por inteiro | Todas as tools exigem `site` como primeiro parâmetro. ## Segurança Allowlist fixa dos 7 nomes de option WPFC (`src/wpcli.ts`, `OPTION_KEYS`) — nunca `wp option update` genérico sobre uma chave arbitrária. Escritas via base64 em stdin, nunca interpoladas no comando SSH remoto. Guarda-corpo Premium em `wpfc_set_config`: chaves em `PREMIUM_ONLY_CONFIG_KEYS` (Lazy Load, Minify JS, Combine JS, Render Blocking, Google Fonts, Mobile Theme, Delay JS, `wpFastestCachePremium`) só gravam se `wpfc_get_status` confirmar `wp-fastest-cache-premium` activo nesse site, ou se o chamador passar `force_premium:true` já com essa confirmação feita. **Gotcha crítico de formato — não replicar noutros MCPs sem verificar primeiro:** as 7 options WPFC são strings PHP planas cujo conteúdo é texto JSON (`json_encode()` gravado directamente), **não** options JSON tipadas do WP-CLI. `getOption`/`setOption` deste MCP nunca usam `--format=json` — leem/escrevem a string crua e fazem `JSON.parse`/`JSON.stringify` uma única vez do lado do cliente. Usar `--format=json` aqui causa dupla codificação e corrompe a option (foi reproduzido em produção durante o build e corrigido — ver skill `wp-fastest-cache` §16.2 para o relato completo). Qualquer extensão futura deste MCP, ou um MCP novo sobre outro plugin, deve testar `wp option get ` **sem** `--format=json` primeiro para confirmar o tipo real armazenado antes de escolher o padrão de leitura/escrita. ## Verificação Construído e testado ponta-a-ponta contra produção 19-08-2026: `wpfc_get_status` em `descomplicar` e `ccv` confirmou os dados reais (Free/Premium inactivos em `descomplicar`, Free activo em `ccv`); `wpfc_set_config` recusou correctamente uma chave Premium (`wpFastestCacheGoogleFonts`) em `descomplicar` (Premium inactivo); escreveu e releu correctamente uma chave Free (`wpFastestCacheDisableEmojis`), confirmado por leitura SSH directa fora do MCP; `wpfc_get_exclude`/`wpfc_set_exclude` testado em `ccv` (fallback `[]` → escrita `[]` → releitura `[]`); `wpfc_purge_cache` executado com sucesso em `ccv`. ## Skills relacionadas - `wp-fastest-cache` — mapeamento completo de todas as options e comportamento Free vs Premium, gotchas de produção, decision tree de comandos WP-CLI equivalentes. - `mcp-cloudflare-app` — purga da camada edge (Cloudflare), complementar à purga local deste MCP. - `redis-object-cache` — a terceira camada de cache do bundle, fora do âmbito deste MCP.