MarreiraMCP Builders
v1.8.1 Star

Model Context Protocol · WordPress

Um servidor MCP para a IA construir no Bricks e no Elementor.

Um plugin só. Você escolhe o builder na instalação; a IA cria e edita páginas e templates de forma nativa e reversível — com CLI completo de WordPress, tokens com escopos e mudanças aplicadas numa requisição só.

Estrelas no GitHub Forks no GitHub Issues abertas Licenca GPL-2.0 Versao 1.8.1

01Visão geral

O MarreiraMCP Builders funde os antigos plugins MarreiraMCP Bricks e MarreiraMCP Elementor num único produto. O servidor MCP é escrito em PHP dentro do próprio plugin — não há serviço Node separado —, exposto numa rota REST oculta do índice público. A IA conversa por JSON-RPC 2.0; o dono do site controla tudo por um painel e por um token com escopos.

Dois builders, um plugin

Bricks ou Elementor, escolhido no onboarding e trocável depois. Núcleo compartilhado + drivers.

Seguro por padrão

Multi-token HMAC com escopos, throttle, allowlist, audit log e poderes perigosos desligados de fábrica.

Uma requisição só

run_batch aplica várias mudanças num único POST — evita bloqueios por excesso de chamadas.

Adapta à sua IA

Modo premium ou econômico: skill enxuta, mapa compacto e limites menores quando o contexto é caro.

Novo × antigo

Antes eram dois plugins separados, cada um mais simples. O unificado entrega mais poder e segurança para os dois builders de uma vez.

RecursoAntes (2 plugins)Agora (unificado 1.8.1)
PluginsUm pro Bricks, outro pro ElementorUm só — escolhe o builder na instalação e troca depois
Aplicar várias mudançasVários POSTs seguidos (risco de o host bloquear)run_batch: tudo numa requisição
TokensUm token único (SHA-256)Multi-token com escopos, HMAC e expiração
CLI de WordPressCompleto (plugins, temas, banco, arquivos, exec) com trava dupla, desligado por padrão
Modo de IAPremium × econômico (poupa contexto de IA grátis/barata)
AuditoriaAudit log com dados sensíveis mascarados
Segurança de redeRate limit básicoThrottle por IP, IP allowlist, revalidação do admin dono
Terminal (WP-CLI)wp mmcb …

02Arquitetura

O núcleo (servidor MCP, CLI, auth, audit) é agnóstico de builder. Toda lógica específica vive num driver, e o Builder_Manager carrega apenas o driver ativo. Um builder por vez.

   Cliente MCP / IDE / WP-CLI
            │  Bearer <token>
            ▼
  ┌───────────────────────────────┐
  │  Núcleo (Marreira\MCP_Builders)│
  │  MCP_Server · Tool_Registry    │
  │  Rest_Guard · Audit_Log        │
  │  Batch_Runner · Context_Strategy│
  └───────────────┬───────────────┘
                  │ Builder_Manager (1 ativo)
        ┌─────────┴─────────┐
        ▼                   ▼
  ┌───────────┐       ┌────────────┐
  │Bricks_Driver│      │Elementor_Driver│
  │ árvore plana│      │ árvore aninhada│
  │ classes/paleta│    │ Kit (cores/fontes)│
  └───────────┘       └────────────┘

03Instalação & onboarding

Baixar marreira-mcp-builders-1.8.1.zip

  • Instale o zip marreira-mcp-builders-1.8.1.zip em Plugins → Adicionar novo → Enviar e ative.
  • Abra o menu MarreiraMCP e rode o assistente: escolha o builder (ele detecta o que está ativo no site), escolha o tier de IA (premium ou econômico) e gere o primeiro token — ele aparece uma única vez.
  • Configure o cliente MCP com o endpoint e o token (abaixo).
i

O CLI geral de WordPress (plugins, temas, banco, exec) vem desligado. Ligue-o em Configurações só se for usar — e conceda ao token apenas as abilities necessárias.

04Conexão & endpoints

Autentique com Authorization: Bearer <token> sobre HTTPS. As rotas ficam ocultas do índice de /wp-json/.

MétodoRotaDescrição
POST/wp-json/marreira-mcp/v1/mcpEndpoint MCP (JSON-RPC 2.0: initialize / tools/list / tools/call). Exige a ability builder.
GET/marreira-mcp/v1/skillPúblico. Serve o SKILL.md (variante enxuta no modo econômico).
GET/marreira-mcp/v1/describeCom token. Builder ativo, tier, abilities do token e catálogo de tools.
GET/marreira-mcp/v1/cli/...CLI geral de WordPress (desligado por padrão). Ver seção CLI.
handshake · tools/list
POST /wp-json/marreira-mcp/v1/mcp
Authorization: Bearer mmcb_XXXX.XXXXXXXX
Content-Type: application/json

{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }

4bConector (Claude.ai / ChatGPT)

No app de IA, adicione um conector (servidor MCP remoto) apontando para /wp-json/marreira-mcp/v1/mcp. O OAuth é automático: o app se registra, abre a tela de consentimento no seu WordPress (onde um administrador logado autoriza) e recebe o token. A aprovação acontece nessa tela — não é preciso pré-aprovar nada no painel.

Não conecta? Quase sempre é o firewall / CDN — não o plugin

Erros como “Não foi possível registrar no serviço de login” vêm de Cloudflare, WAF ou plugin de segurança bloqueando as requisições que o servidor da Anthropic/OpenAI faz ao seu site. O conector faz três chamadas de servidor (não de navegador) — registrar o app → pegar o token → usar as tools — com User-Agent de biblioteca (ex.: python-httpx). Bot Fight Mode e WAF costumam barrá-las antes de chegarem ao plugin, então a conexão falha mesmo com tudo certo aqui.

!

Sintoma típico: no navegador as chamadas passam (registro 201), mas com o User-Agent do provedor de IA o firewall devolve 520/403 e o pedido nem chega ao PHP. A conexão por token (Claude Code, curl) continua funcionando — porque não passa pelo mesmo bloqueio de bot.

Libere estas rotas no firewall / CDN

allowlist
/wp-json/marreira-mcp/*
/marreira-mcp-oauth/*
/.well-known/oauth-*

No Cloudflare:

  • Security → Bots: desligue o Bot Fight Mode (ou libere essas rotas no Super Bot Fight Mode).
  • Security → WAF → Custom rules: uma regra com ação Skip (pular Managed Rules, Rate Limiting e Bot Fight) quando o URI Path contiver /wp-json/marreira-mcp/, /marreira-mcp-oauth/ ou começar com /.well-known/oauth.
  • Rate Limiting: isente essas rotas — o conector faz várias chamadas.

No host: se usar Wordfence, Imunify360, BitNinja ou mod_security, coloque as mesmas rotas na allowlist (um 520 costuma ser a origem derrubando a requisição).

i

Como confirmar: a aba Logs do painel registra as falhas de OAuth (oauth:register_failed, oauth:authorize_failed, oauth:token_failed). Se você tenta conectar e nada aparece lá, o pedido não chegou ao plugin — é o firewall/CDN. “Gerar um Client ID manual” não resolve sozinho: a troca de token e as chamadas das tools continuam vindo do servidor do provedor e batem no mesmo bloqueio.

05Tools

As tools do builder ativo aparecem em tools/list — sempre confirme os nomes ali. Além delas, o núcleo registra duas tools que valem para qualquer builder.

Do builder (exemplos)

Páginas e templates (CRUD), edição fina de elementos (insert / update / move / delete / duplicate), estilos globais (classes e paleta no Bricks; Kit de cores e fontes no Elementor), introspecção (list_elements, get_element_schema) e utilidades (get_capabilities, validate_tree, regenerate_css).

Do núcleo

ToolO que faz
run_batchAplica vários comandos numa única requisição. Aceita stop_on_error e dry_run.
get_mapMapa compacto do site (páginas, templates, resumo de estilos) — sem as árvores completas.

06run_batch — a regra de ouro

Para aplicar mais de uma mudança, nunca dispare vários POSTs em sequência: muitas requisições remotas seguidas podem ser lidas por hosts e WAFs como um ataque. Agrupe tudo em um run_batch.

tools/call · run_batch
{
  "jsonrpc": "2.0", "id": 7, "method": "tools/call",
  "params": {
    "name": "run_batch",
    "arguments": {
      "commands": [
        { "tool": "create_bricks_page",
          "arguments": { "title": "Home", "elements": [ /* ... */ ] } },
        { "tool": "regenerate_css", "arguments": {} }
      ],
      "stop_on_error": false,
      "dry_run": false
    }
  }
}

A resposta traz o status por comando (results[]) e um resumo (ok / failed). Use dry_run: true para validar sem gravar.

07Modo de IA

O onboarding define um tier que muda como a IA deve consumir contexto — informado também em /describe.

Premium

IA paga/capaz. Skill completa, respostas completas, pode puxar o mapa inteiro e árvores conforme precisar.

Econômico

IA grátis/barata. Skill enxuta servida em /skill, respostas concisas, comece por get_map e liste com limites pequenos — e sempre agrupe escritas em run_batch.

08Tokens & abilities

Cada token é uma credencial estreita: guardamos apenas o hash HMAC-SHA256, com expiração opcional. As abilities limitam o que ele pode fazer — dê ao seu agente só o que ele precisa.

AbilityConcede
builderAs tools MCP do builder (páginas, templates, elementos, estilos).
readLeituras gerais (site, usuários, logs, schema do banco).
contentPosts, termos, comentários e mídia.
plugins · themes · coreGestão de plugins, temas e core do WordPress.
files · snippetsArquivos do tema e snippets PHP.
db · db_queryIntrospecção do banco e SELECT seguro.
execExecução de PHP (trava dupla — ver Segurança).
*Acesso total.

09CLI geral de WordPress

Além do builder, o plugin oferece um controle remoto de WordPress em /wp-json/marreira-mcp/v1/cli/... — no espírito do WP-CLI, porém por token com escopos e auditado.

!

Desligado de fábrica. Nada em /cli/* funciona até você ligar enable_general_cli. Os poderes perigosos (exec/php, db/query, escrita de arquivo) têm trava dupla: uma flag nas configurações e a ability no token. E o CLI nunca desativa o próprio plugin nem apaga o tema ativo.

ÁreaRotas (prefixo /cli)Ability
Descoberta/status · /site · /describetoken válido
Plugins/plugins · /plugins/install|activate|deactivate|update|deleteplugins
Temas/themes · /themes/install|activate|update|deletethemes
Core/core · /core/updatecore
Arquivos do tema/theme/files|file|functionsfiles
Snippets/snippets · /snippets/{id} · /togglesnippets
Conteúdo/posts · /terms · /comments · /media · …content
Banco/db/tables|.../schema|.../sample|relationsdb
Banco (query)/db/query (SELECT com allowlist)db_query
Execução/exec/phpexec

10WP-CLI local

Para o dono operar pelo terminal do servidor, sem rede nem token — reusa o mesmo registry e o mesmo batch runner.

terminal
wp mmcb tools
wp mmcb call get_page --args='{"post_id":12}'
wp mmcb batch mudancas.json --dry-run
wp mmcb builder elementor
wp mmcb token create "agente-ia" --abilities=builder --expires=30

11Segurança

  • Token só como hash HMAC-SHA256 (texto puro nunca é gravado nem logado); comparação com hash_equals.
  • Escopos por token + expiração; throttle por IP (20 falhas / 5 min) e IP allowlist opcional.
  • Revalidação do admin dono a cada requisição — se ele perde o papel, o token para de valer.
  • Audit log de cada requisição, com mascaramento de dados sensíveis e retenção configurável.
  • Guard anti-RCE recusa execução de código nos elementos; rotas ocultas do índice público.
  • Trava dupla para exec/DB/arquivo e self-protection (não se autodesativa, não apaga o tema ativo).
  • MMCB_TRUST_PROXY para ler o IP real atrás de proxy/CDN (desligado por padrão, contra spoofing).