Files
claude-plugins/wordpress/skills/mcp-pro-elements/SKILL.md
T

7.6 KiB
Raw Blame History

name, description, layer
name description layer
mcp-pro-elements MCP dedicado (node stdio, ligação `pro-elements` em ~/.omp/agent/mcp.json) para gerir o PRO Elements (fork GPL do Elementor Pro) em starter/ccv/care.descomplicar.pt — estado/versão do plugin, os 4 módulos com toggle próprio via Elementor Experiments (mega_menu, size_variables, atomic_form, pro_interactions), reCAPTCHA v2/v3 das Forms (secret sempre mascarada), licença (vestígio histórico, sempre mascarada), restrições do Element Manager por role (read-only), via WP-CLI/SSH. Usar quando "pro elements", "elementor pro fork", "modulos pro elements", "experiment mega menu", "recaptcha forms elementor", "licenca pro elements", "elementor experiment toggle". wiki

/mcp-pro-elements — MCP dedicado ao PRO Elements

Projecto em /media/ealmeida/Dados/Dev/mcp-pro-elements/ (TypeScript, SDK MCP oficial, stdio). Sem código PHP novo no WordPress — cada tool executa wp option get/update via ssh server sobre o WP-CLI já instalado. Não é uma extensão do EMCP Tools (plugin comercial Freemius, catálogo de tools fixo curado pelo autor, sem mecanismo de terceiros).

O que é o PRO Elements (achado por leitura de código-fonte, 19-08-2026)

Não é um addon pack de terceiros como o Element Pack Pro (BdThemes) — é literalmente o código-fonte do Elementor Pro, rebrandeado: pro-elements.php define ELEMENTOR_PRO_VERSION/namespace ElementorPro, os mesmos core/, modules/, base/ do Elementor Pro genuíno. A diferença está em license/api.php: License\API::get_license_data() está hardcoded para devolver sempre success:true, expires:'lifetime' com a lista completa de features Pro — não há licença real a validar. wp elementor-pro license activate/deactivate (comando WP-CLI próprio) tem os métodos vazios (no-ops). A própria description do plugin em care.descomplicar.pt confirma: "This plugin enables GPL features of Elementor Pro... is not a substitute for Elementor Pro."

Âmbito

Ao contrário do Element Pack Pro (~150 widgets num único array com toggle individual), o PRO Elements não tem ecrã "Modules" com toggle por widget. Só 4 dos ~80 módulos têm toggle próprio, via Elementor Experiments (wp_options.elementor_experiment-<nome>, string simples active/inactive/default):

Tool id Experiment Default Disponível
mega_menu mega-menu inactive 3.31.2 e 3.35.0 (confirmado nos 3 sites)
size_variables e_pro_variables active só 3.35.0 (starter/ccv) — pasta ausente em 3.31.2 (care)
atomic_form e_pro_atomic_form inactive só 3.35.0
pro_interactions e_pro_interactions inactive só 3.35.0

Os restantes módulos (query-control, popup, theme-builder, forms, woocommerce, etc.) activam sempre — Module::is_active() por omissão true + licença hardcoded sempre completa.

A única configuração geral real e gravável é o reCAPTCHA das Forms (v2/v3). Não existe "Google Maps API key" própria do PRO Elements — o Google Maps usa a key do Elementor core (elementor_google_maps_api_key), fora do âmbito deste MCP.

Sites conhecidos

Confirmado por wp plugin get pro-elements nos 3 (19-08-2026) — únicos do bundle com o plugin activo:

  • starter → starter.descomplicar.pt, v3.35.0
  • ccv → ccv.descomplicar.pt, v3.35.0
  • care → care.descomplicar.pt, v3.31.2

descomplicar.pt (produção), emanuelalmeida.pt e os sites *ecommerce* não têm o plugin.

Tools (8)

Tool Read-only Uso
pe_list_sites sim Aliases conhecidos + versão confirmada, sem SSH
pe_get_status sim Versão/estado do plugin via wp plugin get
pe_get_modules sim Estado dos 4 módulos: installed_in_this_version (dir existe nesta versão), raw_state (valor gravado ou null), effective_active (resolvido incl. default)
pe_set_module_state não active/inactive/default num módulo; recusa se installed_in_this_version=false (nunca escreve lixo sem efeito)
pe_get_recaptcha_settings sim Site keys em claro (públicas), secret keys sempre mascaradas ({configured, length})
pe_set_recaptcha_settings não Actualiza campos v2/v3 passados; threshold só válido em v3, 0–1
pe_get_license_status sim Vestígio de elementor_pro_license_key mascarado + nota fixa sobre o bypass hardcoded
pe_get_role_restrictions sim elementor_pro_element_manager_role_permission — restrições de widgets por role (vazio nos 3 sites)

Segurança

  • Allowlist fixa de option keys (src/wpcli.ts) — nunca wp option update genérico.
  • Secrets nunca em claro: secret_key do reCAPTCHA e elementor_pro_license_key passam sempre por describeSecret() → só {configured: boolean, length: number}. Site keys reCAPTCHA são públicas por natureza (embutidas em JS no browser) e são devolvidas em claro.
  • Escritas via base64 em stdin, nunca interpoladas no comando SSH remoto.
  • elementor_experiment-* e as chaves elementor_pro_recaptcha_* são strings escalares simples (nunca --format=json — corromperia o valor, mesmo gotcha da skill mcp-wpfc). elementor_pro_element_manager_role_permission é o único array PHP nativo do allowlist — lido com --format=json, nunca escrito por aqui (formato complexo por-widget-por-role gerido pela app React do editor, sem valor real a expor um write raw).
  • elementor_pro_license_key fica fora da allowlist de escrita — o runtime ignora-a de qualquer forma (ver acima), escrevê-la não activaria nada.

Verificação

Construído e testado ponta-a-ponta contra produção (19-08-2026), os 3 sites:

  • pe_get_status idêntico a wp plugin get pro-elements directo em starter (3.35.0), ccv (3.35.0) e care (3.31.2).
  • pe_get_modules(care) confirmou installed_in_this_version correcto — só mega_menu=true (os outros 3 false, ausência das pastas modules/{variables,atomic-form,interactions} confirmada em disco); pe_get_modules(ccv) confirmou os 4 true e size_variables. effective_active=true (resolve o default active porque raw_state nunca foi gravado).
  • pe_get_recaptcha_settings(care) idêntico à leitura directa (site_key/secret_key vazios, threshold=0.5).
  • pe_get_license_status: care → {configured:true, length:45} (o vestígio real de uma instalação Elementor Pro genuína anterior, encontrado em wp_options); starter/ccv → {configured:false} (nunca tiveram licença real).
  • Escrita com round-trip idempotente, duas vezes: pe_set_module_state(care, mega_menu, "default") — valor antes/depois idêntico ("default"), confirmado por wp option get directo fora do MCP; pe_set_recaptcha_settings(care, v3, threshold=0.5) — valor antes/depois idêntico (0.5), confirmado da mesma forma.
  • Guard testado: pe_set_module_state(care, size_variables, "active") recusado com erro claro (módulo não existe em 3.31.2) — nenhuma escrita tentada.
  • Nenhum segredo devolvido em claro em qualquer chamada.

Skills relacionadas

  • mcp-element-pack — Element Pack Pro (BdThemes), um addon pack de terceiros genuíno, com ~150 widgets num único array de toggle — não confundir com este MCP (o PRO Elements é o próprio Elementor Pro rebrandeado, mecanismo de toggle completamente diferente).
  • element-pack-widgets — catálogo/inserção de widgets Element Pack via EMCP; não aplicável ao PRO Elements (os widgets Pro do Elementor inserem-se pela ligação EMCP normal do site, não por este MCP de configuração admin).
  • mcp-wpfc — mesmo padrão de gotcha JSON vs string escalar em wp option get/update.