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:
@@ -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.
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user