wordpress: nova skill mcp-wpfc (como usar o MCP wpfc)

- documenta as 18 tools do MCP wpfc (site como parametro, guarda-corpo
  Premium, allowlist fixa de 7 option keys)
- mesma convencao das skills mcp-element-pack/mcp-bit-social/mcp-cloudflare-app:
  esta skill e o 'como executar', wp-fastest-cache continua a ser o
  mapeamento completo das options
- cross-referencia wp-fastest-cache <-> mcp-wpfc nos dois sentidos
This commit is contained in:
2026-08-19 05:24:09 +01:00
parent c4139c84c3
commit b32ad83617
2 changed files with 90 additions and 1 deletions
+88
View File
@@ -0,0 +1,88 @@
---
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/<site>`) 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 <key>` **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.
+2 -1
View File
@@ -817,7 +817,8 @@ Projecto `/media/ealmeida/Dados/Dev/mcp-wpfc`, registado em
`~/.omp/agent/mcp.json` como `wpfc`. Parâmetro `site` em cada tool (alias
conhecido de §16.1 ou path absoluto) — cobre os 8 sites reais do bundle
numa só ligação, ao contrário de `element-pack`/`rank-math-mcp` (uma
ligação fixa por site).
ligação fixa por site). **Como executar cada tool: ver skill `mcp-wpfc`** — esta secção fica só
com o desenho e a verificação; o "como usar" tool a tool vive na skill dedicada.
- `wpfc_list_sites` — sites conhecidos com path e nota de estado.
- `wpfc_get_status` — instalado/activo/versão, Free e Premium.