Regra de Ouro adicionada ao topo da skill: SDK v2 (@modelcontextprotocol/server),
API de alto nível McpServer+registerTool (API de baixo nível Server+setRequestHandler
proibida), transporte HTTP obrigatório (stdio só como excepção documentada), e
proibição explícita de interpolação de dados em comandos shell/SSH.
Motivado por revisão de segurança ao mcp-kivicare (19-08-2026): 8 bugs reais
corrigidos em produção, incluindo injecção de comandos shell crítica e hooks
nativos disparados com o tipo errado. Regras adicionadas para nunca mais acontecer
em silêncio.
- SKILL.md: nova secção Regra de Ouro, API/annotations/capabilities actualizadas
para v2, transportes HTTP obrigatório, changelog v3.0.0, healing log com os
3 bugs mais graves do incidente.
- references/templates.md: reescrito para createMcpHandler + createMcpExpressApp
(HTTP) e serveStdio (excepção), package.json com pacotes v2.
- references/best-practices.md: capabilities/annotations/error handling
actualizados para API v2, checklist de segurança com regra anti-injecção de
comandos shell, tabela de transportes com HTTP obrigatório.
- references/evaluation-guide.md: script de evaluations reescrito para
Client+StreamableHTTPClientTransport in-process (sem porta/socket).
- infraestrutura: 1.2.2 -> 1.3.0
- Estado do plugin, catalogo dos 15 icon packs, listar icones de um
pack activo, activar/desactivar pack.
- Plugin so encontrado activo em descomplicar.pt (producao); os
outros 7 sites do bundle confirmados sem ele.
- MCP maioritariamente so-leitura: unica escrita real e o toggle
on/off por pack (skb_cife_manage_icon), testada em ciclo idempotente
contra producao.
Documenta a taxonomia happyfiles_category (hierárquica, attachments), o
gotcha include_children=true por omissão no WP_Query (corrigido no MCP),
query_var=false na taxonomia (wp post list --happyfiles_category não
funciona), e confirma no código-fonte que apagar pasta nunca apaga
ficheiros. 9 tools, verificação ponta-a-ponta contra descomplicar.pt
(produção) e starter.descomplicar.pt documentada.
24 tools tipadas cobrindo o ecossistema clinico KiviCare (Free e Pro)
em WordPress via WP-CLI/SSH (familyclinic.pt): clinicas, medicos, sessoes
e horarios semanais, pacientes (perfil 360 e historico medico),
consultas (listar, detalhe, agendar, mudar estado com disparo de hooks
nativos kc_appointment_status_update, reagendar), encontros clinicos,
prescricoes e facturacao/contas.
Arquitectura de dupla ponte: bridge SQL directo com JSON_OBJECT/JSON_ARRAYAGG
e paginacao por subquery para leituras instantaneas em milissegundos;
bridge PHP seguro com wp eval-file para criacao de pacientes, agendamentos
e mudancas de estado que exigem integridade e disparo de hooks.
Documenta as 9 tools do MCP dedicado multi-site (mcp-full-cliente, porta 3204) para gestão
do broker de licenças WordPress premium (full-customer, api.full.services) — estado de ligação,
plugins geridos, catálogo, extracto de licenças da conta e reactivação controlada.
- 9 tools: idiomas activos/ordem, estilo/posicao do widget, idioma de
origem, estado da licenca Pro/Enterprise (read-only)
- Documenta formato de armazenamento (array PHP nativo, --format=json
correcto) e o gotcha de escrita idempotente do wp option patch update
- Confirmado ao vivo: so descomplicar.pt tem o plugin instalado
Documenta as 14 tools do MCP dedicado (mcp-seriously-simple-podcasting, porta 3203) para
episódios/shows/definições de show em emanuelalmeida.pt, complementado pela skill de
conhecimento seriously-simple-podcasting (achado central: REST nativo do plugin é
escrita-capaz para episódios mas read-only para definições de show).
Único documento de referência para o schema btcbi_* (sem skill de conhecimento separada):
flows, logs de execução, connections, mapeamento completo de flow_details por app
(PerfexCRM/Desk, Google Contacts), mascaramento recursivo de credenciais, verificação
ponta-a-ponta contra produção (10 flows/75 logs) e staging.
Documenta o MCP dedicado mcp-fluentform (descomplicar.pt + starter.descomplicar.pt):
9 tools sobre a camada de serviço oficial do plugin (FormService/
SubmissionService/GlobalSettingsService), mapeamento de tabelas custom
fluentform_*, gotchas confirmados ao vivo (serialização de datas Carbon-like,
race condition em escritas paralelas dependentes) e evidência de verificação
ponta-a-ponta contra produção/staging.
Documenta o novo MCP standalone /media/ealmeida/Dados/Dev/mcp-wpforms/ (12 tools,
descomplicar.pt + emanuelalmeida.pt): formularios, entries (listar/ler/contar/
marcar lida/estrela/spam), entries abandonadas com contexto capturado, settings
gerais e estado Akismet. Sem skill de conhecimento wpforms separada — esta skill
inclui o mapeamento completo de tabelas/options (unica documentacao).
Estado geral, connections com segredos sempre mascarados, logs de email com
filtros/paginacao, detalhe de log, estatisticas de envio, reenvio controlado
(confirm:true). Documenta tambem o mapeamento de dados do plugin (unica
fonte, nao existe skill de conhecimento separada) e a decisao deliberada de
nao expor escrita de configuracao de connections.
27 tools via WP-CLI/SSH (bridge SQL para tabelas planas + wp eval-file
para dados serializados/side-effects): meta de post/taxonomia, schema
markup, redirects (via RankMath\Redirections\DB), modulos, sitemap,
404 monitor, analytics GSC, IndexNow, validacao SEO ao vivo por HTTP.
Cobre exactamente o que o MCP oficial rank-math-mcp (abilities
rank-math/* via WP Abilities API, documentado nesta sessao por outro
agente em rank-math/SKILL.md secao 17) nao cobre: esse e read-only/
analise (audit-site-seo, get-post-schema, scores, AI Visibility); este
e escrita/gestao (redirects, modulos, 404s, sitemap, options). Os dois
coexistem - rank-math/SKILL.md secao 17.4 actualizada com tabela de
quando usar qual dos tres caminhos (rank-math-mcp / mcp-rank-math /
WP-CLI).
Testado ponta-a-ponta em producao 19-08-2026: leituras com dados reais
(383 posts score bom, 21 modulos activos, 3 redirects, sitemap 9
entradas) e escritas verificadas sem mutar dados (no-op em option/meta
existentes, ciclo completo create+delete de um redirect de teste). Bug
real apanhado no smoke test: rank_math_modules tem chaves nao-
sequenciais na BD -> json_encode serializa como objecto, nao array -
normalizado em normalizeStringArray() antes de considerar pronto.
Adiciona references/playbooks.md (7 fluxos: ler antes de criar, modulos
opcionais, CPT+taxonomia+meta-box, CCT, glossario, query builder+listing,
levantar contexto) + indice curto em SKILL.md + keywords de trigger.
Documenta 2 gotchas confirmados contra o schema nativo (tools/list
19-08-2026, nao exercidos como writes em producao): CCT exige o modulo
'custom-content-types' activo (so 'booking-forms' estava activo);
query_type 'custom-content-type' aparece na descricao de tool-add-query
mas nao no enum real - usar 'posts' com post_type 'slug/name'.
Documenta o MCP jetengine (proxy stdio<->HTTPS ao MCP nativo do plugin,
Features API v3.8.0+): 11 tools, seguranca, verificacao, relacao com a
skill jetengine e com mcp-wpfc/mcp-webp-express.
20 tools (10 leitura + 10 escrita) para descomplicar.pt (produção, 291k contactos). Escritas via FluentCrmApi()/modelos do próprio plugin por SSH+wp eval, sem escrever ficheiros no servidor. Guardas de status explícitas (force_update/confirm) para nunca rebaixar/ressuscitar contactos sem intenção clara.
- documenta as 8 tools do MCP wpmeteor: status, config, toggle de modulo,
delay, exclusoes, telemetria detected
- wp-meteor actualizada: estado real confirmado nos 8 sites do bundle
(so emanuelalmeida.pt tem o plugin), cross-referencia para mcp-wpmeteor
- mesma convencao de mcp-wpfc/mcp-element-pack/mcp-cloudflare-app: esta
skill e o 'como executar', wp-meteor continua a ser o mapeamento