Releases: marreiradigital/mrr-mcp-builders
Release list
v1.8.1
Correção do conector OAuth (Claude.ai / ChatGPT)
Conectar o Claude.ai/ChatGPT como conector falhava — tipicamente com "não foi possível registrar no serviço de login" ou, quando passava do registro, "cliente não aprovado" na primeira tentativa.
- A primeira conexão não falha mais. O cliente OAuth nascia "pendente" e a tela de autorização recusava clientes pendentes — mas o app registra e vai direto para a autorização no mesmo fluxo. Agora a própria tela de consentimento (só acessível a um administrador logado, que vê o app, o redirect e os escopos) já aprova o cliente ao autorizar. Apenas clientes revogados continuam bloqueados.
- Registro dinâmico (DCR) mais tolerante: o limite subiu de 5 para 20 por hora por IP — o app registra um cliente novo a cada tentativa, e 5/h travava reconexões legítimas com
temporarily_unavailable. - Falhas de OAuth agora vão para o audit log (registro, autorização e token), com o motivo — para diagnosticar conexões que não completam.
- A permissão
options(1.8.0) passou a ser anunciada no discovery OAuth.
Recomendado para quem conecta via Claude.ai / ChatGPT. Sem quebras.
v1.8.0
Poder total do CLI sobre plugins e ferramentas de terceiros
Esta versão resolve um ponto que vinha do feedback: o CLI geral não aparecia para a IA conectada por conector, e não alcançava a configuração/dados dos plugins de terceiros.
- O CLI geral agora aparece como tools MCP. Com o CLI ligado (
enable_general_cli), as operações passam a aparecer notools/listcomo toolswp_*—wp_list_plugins,wp_activate_plugin,wp_create_post,wp_update_option,wp_db_query,wp_exec_phpe outras. Antes o CLI só existia como rotas REST, invisível para conectores puros (Claude.ai / ChatGPT), que só chamam o que está notools/list. Agora a IA conectada por conector controla plugins, temas, conteúdo, banco e configuração direto pelo MCP. - CRUD de configurações (wp_options) — nova ability
options. É onde praticamente todo plugin de terceiro guarda a config (WooCommerce, Yoast, WPForms…). Ler, buscar por trecho do nome, escrever e remover options. Segredos são redigidos na leitura; as options do próprio plugin são protegidas. - Meta privada e de terceiros. Ler e gravar
_price,_sku,_stock(WooCommerce),_yoast_wpseo_*e campos ACF; term meta e user meta (com proteção contra escalonamento de privilégio). - O CLI enxerga todos os CPTs. Listar posts sem informar o tipo agora inclui os CPTs internos de plugins, e a criação aceita qualquer post type registrado.
Segurança: a autorização das tools passou a ser conferida por tool (ability do token + trava dupla), cobrindo inclusive os sub-comandos do run_batch. Os poderes perigosos continuam desligados de fábrica (master switch + ability + flags específicas). Sem quebras de compatibilidade.
v1.7.0
O que muda para quem usa
- Termo de Responsabilidade com aceite obrigatório no painel. O primeiro acesso pede o aceite (registrado com usuário, data, IP e versão do termo). Quem já usa o plugin vê a tela uma única vez após atualizar — os endpoints MCP continuam funcionando normalmente nesse meio-tempo.
- Wizard guiado ramificado. Configuração passo a passo do zero ao autoteste: termo → builder → tier de IA → escolha da conexão (token manual para Claude Code/Cursor/VS Code, ou conector OAuth para Claude.ai/ChatGPT), com URLs e um bloco de instruções prontos para copiar e colar na IA. O botão "Rever guia" reabre o assistente quando quiser.
- Visual repaginado. Tema claro creme/terracota como padrão e modo escuro automático (com toggle) — no painel, na tela de autorização OAuth e no site da documentação.
- Skill dinâmica.
GET /skillagora entrega o documento com as URLs reais do seu site: a IA só precisa da URL da skill; todos os endpoints vão listados nela com o domínio certo. O/describetambém lista os quatro endpoints, com a skill primeiro. - A skill instrui explicitamente a montar interfaces completas em um único
run_batch, evitando bloqueio por rate-limit de hosts durante a estilização. - Nova seção "Aviso Legal" no readme do plugin.
Sem quebras de compatibilidade — tokens, conectores e integrações existentes continuam funcionando.
v1.6.2 — corrige tools/list rejeitado por clientes estritos (Claude Code)
Instalação: baixe marreira-mcp-builders.zip abaixo e envie em Plugins → Adicionar novo → Enviar plugin. Se você está na 1.6.0+, o próprio painel oferece esta atualização.
Atualize se o seu cliente MCP conecta mas não mostra nenhuma tool.
Correção
Clientes MCP com validação estrita não carregavam nenhuma tool.
As tools sem argumentos declaravam inputSchema.properties como array vazio do PHP, e o json_encode serializa isso como []. O JSON Schema exige que properties seja um objeto ({}), então clientes que validam de verdade — o Claude Code, por exemplo — recusavam o tools/list inteiro, não só a tool problemática.
O sintoma enganava: o servidor conectava normalmente e nenhuma tool ficava disponível.
Status: ! Connected · tools fetch failed
Issue: Invalid input: expected record, received array (at tools.15.inputSchema.properties)
Eram 11 tools nos dois builders, e o /describe sofria do mesmo problema — não só o tools/list.
Documentação
- Nova seção Problemas comuns no README, com este sintoma e com uma dica para hosts LiteSpeed: o throttle por user-agent pode retornar 429 durante o handshake do Claude Code, antes de a requisição chegar ao plugin. Registrar o MCP com um
User-Agentpróprio resolve.
Reportado por @HermesMacedo em #1 — com diagnóstico, reprodução e patch. Obrigado.
Changelog completo: CHANGELOG.md
v1.6.1 — corrige o link do autor no painel
Instalação: baixe marreira-mcp-builders.zip abaixo e envie em Plugins → Adicionar novo → Enviar plugin.
Se você já está na 1.6.0, o próprio painel do WordPress oferece esta atualização — não precisa baixar nada.
Correções
Author URIapontava para um endereço fora do ar. A 1.6.0 corrigiu só oPlugin URI; o link do nome do autor na lista de plugins continuou quebrado para todos os usuários. AgoraPlugin URI,Author URIeUpdate URIapontam todos para o site do plugin.- O link do autor no modal "Ver detalhes" passou a sair do próprio manifesto de atualização, em vez de repetir a URL no código.
Changelog completo: CHANGELOG.md
v1.6.0 — atualização pelo painel do WordPress
Instalação: baixe marreira-mcp-builders.zip abaixo e envie em Plugins → Adicionar novo → Enviar plugin.
Esta é a última vez que você precisa atualizar na mão. A partir da 1.6.0 o plugin passa a oferecer "Atualizar agora" direto no painel do WordPress.
Atualização pelo painel
O plugin não está no WordPress.org, então até agora atualizar era baixar o zip e reenviar — e quem instalou não ficava sabendo que saiu versão nova, inclusive correção de segurança.
- "Atualizar agora" no wp-admin, servindo o zip destas Releases.
- Coluna "Atualizações automáticas" do WordPress passa a funcionar para este plugin (é a nativa do núcleo).
- Link "Checar atualização" nas ações do plugin, para checagem imediata (a checagem normal fica 12h em cache).
- "Ver detalhes da versão" abre o modal com as informações e o link das notas da release.
Usa o mecanismo oficial do WordPress para plugins hospedados fora do WordPress.org (header Update URI: + filtro update_plugins_{hostname}, disponível desde a WP 5.8) — não um hack no transient de updates. De quebra, isso impede que um plugin homônimo publicado no WordPress.org sequestre as atualizações deste.
A checagem lê um manifesto servido pelo próprio site do plugin, não a API do GitHub: a API limita a 60 requisições por hora por IP, e em hospedagem compartilhada vários sites saem pelo mesmo IP — a checagem falharia justo em quem mais precisa.
Segurança
- O manifesto de atualização diz o que instalar, mas não de onde: o pacote é recusado se não vier das Releases deste repositório. Sem essa trava, um comprometimento do site que serve o manifesto viraria execução de código arbitrário em todo site com o plugin.
Correções
Plugin URIapontava para um endereço fora do ar (erro 520), deixando quebrado o link "Visitar site do plugin" que aparece no painel de todo usuário. Agora aponta para o site do plugin.- Os links de versão do changelog apontavam para o mesmo endereço fora do ar; agora vão para a tag da release.
Changelog completo: CHANGELOG.md
v1.5.1 — auditoria completa (13 + 10 correções)
Instalação: baixe marreira-mcp-builders.zip abaixo e envie em Plugins → Adicionar novo → Enviar plugin.
Atualize se você usa o conector OAuth. Até a 1.4.0, revogar um conector no painel não cortava o acesso: o refresh token continuava rotacionando indefinidamente.
Roda em PHP 7.4, 8.0, 8.1, 8.2, 8.3 e 8.4 (o php -l roda em todas a cada push).
Correções de segurança
- Revogar um conector não cortava o acesso. O
Rest_Guardnunca consultava o status do client e o refresh continuava rotacionando — cada rotação renovava por mais 30 dias. Acesso permanente apesar da revogação. - A trava dupla sumia na renovação do token. Desligar
allow_php_execnão tirava o escopoexecde uma conexão OAuth já existente: a trava valia só na emissão inicial. - Bricks: desligar o anti-RCE liberava injeção de
<script>no<head>. O toggle existe para permitir o elemento Code (que entra inerte e exige assinatura manual), mas desativava junto a checagem das page settings — ecustomScriptsHeaderexecuta sem assinatura nenhuma. - Headers de proxy sem validação. Com
MMCB_TRUST_PROXY, dava para mandarX-Real-IP: <ip da allowlist>e furar a allowlist. A constante agora aceita uma lista de IPs de proxy. - Ativar snippet contornava
allow_php_exec. Snippet ativo executa PHP em toda requisição; agora exige a mesma flag do/exec/php. - Elementor: árvores sem limite de profundidade derrubavam o processo antes de qualquer validação.
safe_theme_path()validava só o diretório pai imediato — um symlink acima permitia gravar fora do tema.
Correções
/cli/db/queryexecutava um SQL diferente do pedido. As strings literais eram esvaziadas para análise e a versão esvaziada é que era executada:WHERE post_status = 'publish'virava= ''. Toda query com literal voltava vazia ou errada, sem erro — a IA concluía que a tabela estava vazia.- Elementor: CPTs eram gravados como documento de página, e o Elementor abria com a classe errada.
- Bricks: o gerador de ID ignorava os IDs já em uso — colisão fazia insert/duplicate falhar com "Id duplicado".
state='0'era descartado do redirect OAuth, violando a RFC 6749.uninstall.phpdeixava as duas tabelas OAuth no banco.- Tokens OAuth acumulavam sem limpeza (cada renovação insere uma linha).
- Rate limit tinha corrida em requisições simultâneas; throttle não contava token revogado.
- MCP:
notifications/initializedcomidnão recebia resposta. - Painel: horários misturavam fusos (token de 1h aparecia expirando 4h depois).
Novo
- A aba Conectores mostra conexão de verdade: conectado / desconectado / nunca conectou / acesso revogado, com a data do último uso. Antes ela só mostrava o status de registro e nunca dizia se o app tinha realmente conectado.
- CI roda
php -lem 7.4/8.0/8.1/8.3/8.4 a cada push, com um job que trava oRequires PHPdo header, do readme e o piso da matriz no mesmo valor.
Changelog completo: CHANGELOG.md
v1.5.0
Versão 1.5.0 do MarreiraMCP Builders. Veja o CHANGELOG para os detalhes desta versão.
v1.4.0
Versão 1.4.0 do MarreiraMCP Builders. Veja o CHANGELOG para os detalhes desta versão.
v1.3.1
Versão 1.3.1 do MarreiraMCP Builders. Veja o CHANGELOG para os detalhes desta versão.