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.
6.4 KiB
name: mcp-jetengine
description: MCP dedicado (node stdio, ligação jetengine em ~/.omp/agent/mcp.json) para JetEngine (Crocoblock) em descomplicar.pt — proxy transparente stdio<->HTTPS do MCP nativo do próprio plugin (Features API, v3.8.0+): registar CPT, CCT, taxonomias, meta boxes, queries do Query Builder, listings, glossários, gerir módulos, ler configuração/website-config/macros. Não duplica lógica do plugin — reencaminha tools/list/tools/call tal como o JetEngine os expõe. Usar quando "mcp jetengine", "jetengine mcp", "criar cpt via mcp", "criar cct via mcp", "add-cpt", "add-cct", "query builder mcp", "jetengine features api", "ai command center jetengine".
layer: wiki
/mcp-jetengine — MCP dedicado ao JetEngine
Projecto em /media/ealmeida/Dados/Dev/mcp-jetengine/ (TypeScript, SDK MCP oficial, stdio).
Diferente dos MCPs irmãos (mcp-wpfc, mcp-webp-express): o JetEngine, a partir da v3.8.0,
já expõe o seu próprio servidor MCP nativo (Jet_Engine\MCP_Tools, "Features API") em
{site}/wp-json/jet-engine/v1/mcp — JSON-RPC 2.0 sobre HTTP simples (POST, uma única resposta
JSON por pedido, sem SSE, sem sessão), autenticado por current_user_can('manage_options'). Este
projecto não reimplementa nenhuma lógica de negócio do plugin: é apenas uma ponte
stdio↔HTTPS com autenticação Basic (Application Password), porque o harness liga-se a servidores
MCP locais por stdio, não a endpoints HTTPS arbitrários fora do gateway. tools/list e
tools/call são reencaminhados verbatim — os 11 tools, nomes, descrições e schemas vistos pelo
agente são exactamente os que o próprio plugin regista, não uma cópia mantida à mão.
Site
Único site do bundle com JetEngine activo (19-08-2026): descomplicar.pt
(jet-engine v3.8.11.1). Configurável via JETENGINE_SITE_URL/JETENGINE_APP_USER/
JETENGINE_APP_PASSWORD no env da entrada jetengine em mcp.json — sem parâmetro site por
tool (ao contrário de wpfc/webpx) porque só há um site a servir; adicionar suporte
multi-site (registo tipo sites.ts) se outro site do bundle activar o plugin.
Activação feita nesta sessão (19-08-2026): jet-engine-misc-settings não existia
(enable_features_api teria o default true mesmo assim, mas foi escrito explicitamente);
Application Password dedicada mcp-jetengine criada para ealmeida.
Âmbito
Tudo o que o plugin regista na sua própria Features API. Não cobre: Relations (tabela
wp_jet_rel_default — sem tool nativo, ver references/automation.md da skill jetengine para
gestão via PHP/SQL), Profile Builder, Dynamic Tags dentro do Elementor, bridge MU-plugin
(descomplicar-jet-bridge.php, endpoint próprio POST /wp-json/descomplicar/v1/manage — projecto
à parte, ver skill jetengine §"Bridge Plugin").
Tools (11, nomes nativos do plugin — 19-08-2026)
| Tool | Read-only | Uso |
|---|---|---|
resource-get-configuration |
sim | CPTs, taxonomias, meta boxes, options pages, queries, relations, CCTs, endpoints REST, glossários — visão geral em JSON, por parts |
resource-get-website-config |
sim | Post types/taxonomias/plugins activos registados no WordPress (não só JetEngine) |
resource-get-macros |
sim | Todas as macros JetEngine com argumentos e exemplos de uso |
tool-manage-modules |
sim/não (operation: list|activate|deactivate) |
Listar ou activar/desactivar módulos do JetEngine |
tool-add-cpt |
não | Registar Custom Post Type — labels, storage, meta fields, admin columns/filters |
tool-add-cct |
não | Registar Custom Content Type (tabela SQL própria) com campos tipados |
tool-add-taxonomy |
não | Registar taxonomia e associar a post types |
tool-add-meta-box |
não | Meta Box com campos e condições de visibilidade |
tool-add-query |
não | Query do Query Builder — sql, posts, terms, users, comments, repeater, current-wp-query, merged-query, relations-query |
tool-add-listing |
não | Listing item ligado a uma query existente (elementor/bricks/twig/blocks) |
tool-add-glossary |
não | Glossário manual (source: "manual") com pares value/label |
Schemas de input completos: chamar tools/list (ou o initialize seguido de tools/list — o
proxy devolve exactamente o que wp-json/jet-engine/v1/mcp responde). Não documentados campo a
campo aqui para evitar duplicação que fica desactualizada — a fonte de verdade é o próprio plugin.
Segurança
- Autenticação por Application Password de um utilizador
administrator(manage_options) — o próprio plugin recusa (rest_forbidden, 401/403) sem essa capability; o proxy traduz isso numMcpErrorclaro em vez de deixar a chamada rebentar em silêncio. - Sem lógica local de bloqueio de chaves — todo o
tools/callchega ao plugin tal como recebido do agente. As guardas de segurança (validação de slug, sanitização de campos, etc.) são as do próprio JetEngine, não deste MCP. - Erros JSON-RPC de nível transporte (rede, HTTP != 200,
errorno envelope JSON-RPC — método desconhecido, parse error) tornam-seMcpError. Erros de execução de tool (isError: truenoCallToolResult, ex. "Tool not found") são devolvidos tal como o plugin os construiu — nunca convertidos em excepção, para o agente poder ler o texto do erro.
Verificação
Construído e testado ponta-a-ponta 19-08-2026: tools/list via stdio devolve os 11 tools
idênticos ao pedido directo por curl contra wp-json/jet-engine/v1/mcp (mesmos nomes,
descrições, schemas); tools/call real (resource-get-macros) devolve o mesmo JSON do plugin;
tools/call com nome inexistente devolve isError: true + "Tool not found" passado
verbatim. Ferramentas de escrita (tool-add-cpt, tool-add-cct, etc.) não foram exercidas contra
produção nesta sessão — mesmo caminho de código (callJetEngine + tools/call) já validado pelas
chamadas de leitura e pelo caso de erro.
Skills relacionadas
jetengine— conhecimento do plugin (CPT vs CCT, Relations, Query Builder, Listings, Macros, Profile Builder, bridge MU-plugin). Consultar para entender o que uma tool faz antes de a chamar; este MCP é o "como executar".mcp-wpfc/mcp-webp-express— MCPs irmãos para plugins sem API nativa (reimplementam a gestão via WP-CLI/SSH).mcp-jetengineé o primeiro caso do bundle em que o próprio plugin já fala MCP — o padrão aqui é ponte de transporte, não reimplementação.