wordpress-mcp
Servidor MCP leve para WordPress com 42 ferramentas. Respostas otimizadas em tokens reduzem a verbosidade da API REST em mais de 95%. Posts, páginas, usuários, plugins, temas, mídia, taxonomias, comentários.
Documentação
wordpress-mcp
Servidor MCP leve para WordPress, focado em gerenciamento de sites. 249 ferramentas com respostas otimizadas em tokens — as respostas da API REST são automaticamente reduzidas de kilobytes para o essencial.
v3.2: legal_consent_log_get / legal_consent_log_stats / legal_consent_log_export para o log de decisões de consentimento do cvrt-legal (requer cvrt-legal 0.5.0+); legal_put_consent aceita log_enabled.
v3.1: Ferramentas para nossos próprios plugins — seo_* (31) para cvrt-seo-manager, legal_* (15) para cvrt-legal incl. legal_link_page (cvrt-legal 0.4.2+), e fulfillment_* (8) para cvrt-order-fulfillment.
v3.0 (MUDANÇA IMPORTANTE): Multi-site — uma única instância do servidor gerencia qualquer número de sites através de uma única variável de ambiente WORDPRESS_SITES. Todas as ferramentas agora exigem um argumento site; use a nova ferramenta list_sites para descobrir os ids configurados. As antigas variáveis de ambiente de site único foram removidas. wp_activate_plugin / wp_deactivate_plugin / wp_delete_plugin agora usam rotas cvrt-mcp-endpoints mcp/v1 e recebem o caminho do arquivo do plugin (ex.: akismet/akismet.php) em vez de um slug.
v2.1: Agora inclui módulos Pro para ACF e WooCommerce via wp-pilot-pro.
v2.0: Ferramentas estendidas para o plugin cvrt-mcp-endpoints — instalar plugins/temas do WordPress.org, gerenciamento de banco de dados, controle completo de widgets/menus e muito mais.
Por que este servidor?
A API REST do WordPress retorna JSON extremamente verboso (~5-10KB por post). Este servidor reduz isso:
| Resposta | Antes | Depois | Redução |
|---|---|---|---|
wp_list_posts (10 posts) | ~50KB | ~2KB | 96% |
wp_get_post | ~5KB | ~200 bytes | 96% |
wp_list_plugins | ~15KB | ~800 bytes | 95% |
Menos tokens = respostas mais rápidas, custos menores, mais contexto para sua IA.
Instalação
npm install -g @cavort-it-systems/wordpress-mcp
Ou execute diretamente:
npx @cavort-it-systems/wordpress-mcp
Configuração
v3.0 é multi-site (MUDANÇA IMPORTANTE). Uma única instância do servidor agora gerencia qualquer número de sites WordPress, definidos em uma variável de ambiente WORDPRESS_SITES como um array JSON de objetos {id, url, username, password}. As antigas variáveis de ambiente de site único (WORDPRESS_SITE_URL, WORDPRESS_USERNAME, WORDPRESS_PASSWORD) não são mais lidas — defina WORDPRESS_SITES em vez disso.
Toda ferramenta (exceto list_sites) agora exige um argumento site nomeando o id do site de destino. Chame list_sites primeiro para descobrir quais ids estão configurados — ele retorna {id, url} para cada site (senhas nunca são retornadas ou registradas).
Claude Desktop / Manual
Adicione à sua configuração MCP (~/.claude.json ou configurações do Claude Desktop):
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["@cavort-it-systems/wordpress-mcp"],
"env": {
"WORDPRESS_SITES": "[{\"id\":\"boardcouture\",\"url\":\"https://boardcouture.shop\",\"username\":\"cavortkonzepte\",\"password\":\"xxxx xxxx xxxx\"}]"
}
}
}
}
Adicione mais sites anexando objetos ao array WORDPRESS_SITES — uma instância do servidor gerencia todos eles.
Claude Code CLI
claude mcp add wordpress \
-e WORDPRESS_SITES='[{"id":"boardcouture","url":"https://boardcouture.shop","username":"cavortkonzepte","password":"xxxx xxxx xxxx"}]' \
-- npx @cavort-it-systems/wordpress-mcp
A partir do código-fonte
git clone https://github.com/cvrt-jh/wordpress-mcp.git
cd wordpress-mcp
npm install && npm run build
Autenticação
Usa Senhas de Aplicativo (WordPress 5.6+):
- Vá para Usuários → Perfil no admin do WordPress
- Role até Senhas de Aplicativo
- Crie uma nova senha para "Claude MCP"
- Use a senha gerada (mantenha os espaços)
Redução de Respostas
Todas as respostas são automaticamente reduzidas. Exemplo:
wp_get_post — de ~5KB para ~200 bytes:
// Before (WordPress REST API raw)
{"id":123,"date":"2026-01-15T10:30:00","date_gmt":"2026-01-15T09:30:00",
"guid":{"rendered":"https://example.com/?p=123"},"modified":"2026-01-20T14:00:00",
"modified_gmt":"2026-01-20T13:00:00","slug":"my-post","status":"publish",
"type":"post","link":"https://example.com/my-post/","title":{"rendered":"My Post"},
"content":{"rendered":"<p>Full content...</p>","protected":false},
"excerpt":{"rendered":"<p>Excerpt...</p>","protected":false},
"author":1,"featured_media":456,"comment_status":"open","ping_status":"open",
"sticky":false,"template":"","format":"standard","meta":{"footnotes":""},
"categories":[1,5],"tags":[10,20],"class_list":["post-123","type-post",...],
"_links":{"self":[...],"collection":[...],"about":[...],...}}
// After (slimmed)
{"id":123,"title":"My Post","slug":"my-post","status":"publish",
"date":"2026-01-15T10:30:00","modified":"2026-01-20T14:00:00",
"link":"https://example.com/my-post/","excerpt":"Excerpt...",
"author":1,"categories":[1,5],"tags":[10,20],"featured_media":456}
O que é removido:
| Campo | Onde | Por quê |
|---|---|---|
guid, _links | em todo lugar | Dados internos do WordPress |
content.rendered | listas | Incluído apenas quando solicitado explicitamente |
meta, class_list | posts/páginas | Metadados de tema/plugin |
ping_status, comment_status | posts | Raramente necessário |
template, format, sticky | posts | Específico do tema |
| Tags HTML | excertos | Saída de texto limpa |
| JSON com formatação bonita | todos | Saída compacta em linha única |
Ferramentas (249)
Toda ferramenta abaixo exige um argumento site (o id da sua configuração WORDPRESS_SITES), exceto list_sites em si.
Sites (1)
list_sites— Lista ids e URLs de sites configurados (sem argumentosite; senhas nunca são retornadas)
API REST padrão do WordPress (42 ferramentas)
Estas funcionam com qualquer site WordPress:
Site (4)
wp_site_info— Obtém nome, descrição e URL do sitewp_get_settings— Obtém configurações do sitewp_update_settings— Atualiza configurações do sitewp_get_namespaces— Lista namespaces da API REST
Posts (6)
wp_list_posts— Lista posts com filtroswp_get_post— Obtém um post individualwp_create_post— Cria postwp_update_post— Atualiza postwp_delete_post— Exclui postwp_search_posts— Pesquisa posts
Páginas (5)
wp_list_pages— Lista páginaswp_get_page— Obtém uma página individualwp_create_page— Cria páginawp_update_page— Atualiza páginawp_delete_page— Exclui página
Usuários (6)
wp_list_users— Lista usuárioswp_me— Obtém usuário atualwp_get_user— Obtém usuário por IDwp_create_user— Cria usuáriowp_update_user— Atualiza usuáriowp_delete_user— Exclui usuário
Plugins (5)
wp_list_plugins— Lista pluginswp_get_plugin— Obtém detalhes do pluginwp_activate_plugin— Ativa plugin (mcp/v1;pluginé o caminho do arquivo, ex.:akismet/akismet.php)wp_deactivate_plugin— Desativa plugin (mcp/v1;pluginé o caminho do arquivo)wp_delete_plugin— Exclui plugin (mcp/v1;pluginé o caminho do arquivo)
Temas (4)
wp_list_themes— Lista temaswp_get_active_theme— Obtém tema ativowp_get_theme— Obtém detalhes do temawp_activate_theme— Alterna temas
Mídia (4)
wp_list_media— Lista biblioteca de mídiawp_get_media— Obtém item de mídiawp_update_media— Atualiza metadados de mídiawp_delete_media— Exclui mídia
Categorias e Tags (8)
wp_list_categories— Lista categoriaswp_create_category— Cria categoriawp_update_category— Atualiza categoriawp_delete_category— Exclui categoriawp_list_tags— Lista tagswp_create_tag— Cria tagwp_update_tag— Atualiza tagwp_delete_tag— Exclui tag
Comentários (6)
wp_list_comments— Lista comentárioswp_get_comment— Obtém comentáriowp_create_comment— Cria comentáriowp_update_comment— Atualiza/modera comentáriowp_delete_comment— Exclui comentáriowp_moderate_comments— Moderação em lote
Ferramentas Estendidas (43 ferramentas) — Requer plugin cvrt-mcp-endpoints
Estas exigem que o plugin WordPress cvrt-mcp-endpoints esteja instalado e ativado.
Gerenciamento de Plugins (4)
mcp_search_plugins— Pesquisa plugins no WordPress.orgmcp_install_plugin— Instala plugin do WordPress.orgmcp_update_plugin— Atualiza um único pluginmcp_update_all_plugins— Atualiza todos os plugins
Gerenciamento de Temas (5)
mcp_search_themes— Pesquisa temas no WordPress.orgmcp_install_theme— Instala tema do WordPress.orgmcp_update_theme— Atualiza um único temamcp_update_all_themes— Atualiza todos os temasmcp_delete_theme— Exclui tema inativo
Gerenciamento do Núcleo (6)
mcp_get_version— Obtém informações da versão do WordPressmcp_get_system_info— Obtém informações abrangentes do sistemamcp_check_updates— Verifica todas as atualizaçõesmcp_update_core— Atualiza o núcleo do WordPressmcp_flush_rewrite— Limpa regras de reescritamcp_flush_cache— Limpa todos os caches
Gerenciamento de Banco de Dados (5)
mcp_get_tables— Lista tabelas com tamanhosmcp_search_replace— Pesquisa/substitui no banco de dadosmcp_optimize_tables— Otimiza todas as tabelasmcp_clean_revisions— Exclui revisões antigasmcp_clean_comments— Exclui comentários de spam/lixeira
Gerenciamento de Opções (5)
mcp_list_options— Lista opções com filtro de prefixomcp_get_option— Obtém uma única opçãomcp_set_option— Cria/atualiza opçãomcp_delete_option— Exclui opçãomcp_bulk_get_options— Obtém múltiplas opções
Gerenciamento de Menus (8)
mcp_list_menus— Lista menus de navegaçãomcp_get_menu_locations— Obtém localizações de temamcp_get_menu— Obtém menu com itensmcp_create_menu— Cria menumcp_delete_menu— Exclui menumcp_add_menu_item— Adiciona item de menumcp_delete_menu_item— Exclui item de menumcp_assign_menu_location— Atribui menu a uma localização
Gerenciamento de Widgets (8)
mcp_list_sidebars— Lista todas as barras lateraismcp_get_sidebar_widgets— Obtém widgets da barra lateralmcp_list_widget_types— Lista tipos de widgetsmcp_get_widget— Obtém detalhes do widgetmcp_add_widget— Adiciona widget à barra lateralmcp_update_widget— Atualiza configurações do widgetmcp_delete_widget— Remove widgetmcp_move_widget— Move widget para barra lateral
Saúde e Diagnóstico (6)
mcp_get_health— Pontuação de saúde do sitemcp_get_debug_info— Informações de depuraçãomcp_get_php_info— Configuração do PHPmcp_get_plugins_health— Saúde/atualizações de pluginsmcp_get_cron_status— Status dos trabalhos cronmcp_run_cron— Executa hook cron manualmente
Módulo ACF (31 ferramentas) — Requer wp-pilot-pro + ACF
Requer wp-pilot-pro e Advanced Custom Fields.
Grupos de Campos (4)
acf_list_field_groups— Lista todos os grupos de camposacf_get_field_group— Obtém grupo de campos com esquemaacf_export_field_groups— Exporta como JSONacf_import_field_groups— Importa de JSON
Campos de Posts (4)
acf_get_post_fields— Obtém todos os campos de um postacf_update_post_fields— Atualiza múltiplos camposacf_get_post_field— Obtém valor de um único campoacf_update_post_field— Atualiza um único campo
Campos de Termos e Usuários (4)
acf_get_term_fields— Obtém campos ACF de termoacf_update_term_fields— Atualiza campos de termoacf_get_user_fields— Obtém campos ACF de usuárioacf_update_user_fields— Atualiza campos de usuário
Páginas de Opções (3)
acf_list_options_pages— Lista páginas de opçõesacf_get_options_fields— Obtém campos da página de opçõesacf_update_options_fields— Atualiza campos de opções
Campos Repetidores (5)
acf_get_repeater— Obtém linhas do repetidoracf_add_repeater_row— Adiciona linhaacf_update_repeater_row— Atualiza linhaacf_delete_repeater_row— Exclui linhaacf_reorder_repeater— Reordena linhas
Conteúdo Flexível (5)
acf_get_flexible— Obtém layoutsacf_add_flexible_layout— Adiciona layoutacf_update_flexible_layout— Atualiza layoutacf_delete_flexible_layout— Exclui layoutacf_reorder_flexible— Reordena layouts
Campos de Relacionamento (4)
acf_get_relationship— Obtém posts relacionadosacf_set_relationship— Define posts relacionadosacf_add_to_relationship— Adiciona postsacf_remove_from_relationship— Remove posts
Utilitários (2)
acf_get_clone_references— Obtém referências de campos clonadosacf_get_field_object— Obtém esquema de campo
Módulo WooCommerce (42 ferramentas) — Requer wp-pilot-pro + WooCommerce
Requer wp-pilot-pro e WooCommerce.
Produtos (5)
woo_list_products— Lista produtos com filtroswoo_get_product— Obtém detalhes do produtowoo_create_product— Cria produtowoo_update_product— Atualiza produtowoo_delete_product— Exclui produto
Variações (4)
woo_list_variations— Lista variações de produtowoo_create_variation— Cria variaçãowoo_update_variation— Atualiza variaçãowoo_delete_variation— Exclui variação
Atributos (4)
woo_list_attributes— Lista atributoswoo_list_attribute_terms— Lista termos de atributowoo_create_attribute— Cria atributowoo_create_attribute_term— Cria termo
Categorias e Tags (5)
woo_list_categories— Lista categorias de produtowoo_create_category— Cria categoriawoo_update_category— Atualiza categoriawoo_delete_category— Exclui categoriawoo_list_tags— Lista tags de produto
Pedidos (5)
woo_list_orders— Lista pedidoswoo_get_order— Obtém detalhes do pedidowoo_update_order_status— Atualiza statuswoo_add_order_note— Adiciona notawoo_get_order_notes— Obtém notas
Clientes (5)
woo_list_customers— Lista clienteswoo_get_customer— Obtém clientewoo_create_customer— Cria clientewoo_update_customer— Atualiza clientewoo_get_customer_orders— Obtém histórico de pedidos
Cupons (5)
woo_list_coupons— Lista cuponswoo_get_coupon— Obtém cupomwoo_create_coupon— Cria cupomwoo_update_coupon— Atualiza cupomwoo_delete_coupon— Exclui cupom
Relatórios (3)
woo_sales_report— Relatório de vendaswoo_top_sellers— Produtos mais vendidoswoo_stock_report— Relatório de status de estoque
Metadados e Inventário de Produtos (3)
woo_get_product_meta- Obter metadados do produtowoo_update_product_meta- Atualizar metadados do produtowoo_bulk_update_stock- Atualização de estoque em massa
Módulo de SEO (31 ferramentas) - Requer cvrt-seo-manager
seo_status- Obter status do cvrt-seo-manager (versão, configurado, dependências)seo_get_settings- Obter configurações do cvrt-seo-managerseo_update_settings- Atualizar configurações do cvrt-seo-managerseo_get_post_seo- Obter os metadados de SEO de um postseo_update_post_seo- Atualizar os metadados de SEO de um postseo_delete_post_seo- Excluir (redefinir) os metadados de SEO de um postseo_get_post_analysis- Obter a análise de SEO (pontuação, problemas) de um postseo_list_posts_seo- Listar metadados de SEO em vários postsseo_bulk_update_posts_seo- Atualização em massa de metadados de SEO em vários postsseo_get_term_seo- Obter os metadados de SEO de um termo de taxonomiaseo_update_term_seo- Atualizar os metadados de SEO de um termo de taxonomiaseo_delete_term_seo- Excluir (redefinir) os metadados de SEO de um termo de taxonomiaseo_keyword_check- Executar a verificação de análise de palavras-chaveseo_list_redirects- Listar todos os redirecionamentosseo_create_redirect- Criar um redirecionamentoseo_get_redirect- Obter um redirecionamento por idseo_update_redirect- Atualizar um redirecionamento por idseo_delete_redirect- Excluir um redirecionamento por idseo_list_monitor_log- Listar as entradas do log do monitor de 404/redirecionamentosseo_clear_monitor_log- Limpar o log do monitor de 404/redirecionamentosseo_create_redirect_from_log- Criar um redirecionamento diretamente de uma entrada do log do monitorseo_sitemap_status- Obter status do sitemapseo_sitemap_ping- Enviar ping aos mecanismos de busca com o sitemapseo_indexnow_ping- Enviar URLs para o IndexNowseo_export_settings- Exportar configurações do cvrt-seo-managerseo_import_settings- Importar configurações do cvrt-seo-managerseo_export_csv- Exportar metadados de SEO de posts como CSVseo_import_csv- Importar metadados de SEO de posts de CSVseo_export_redirects- Exportar redirecionamentosseo_import_redirects- Importar redirecionamentosseo_import_migrate- Executar uma importação de migração (ex.
Módulo Jurídico (18 ferramentas) - Requer cvrt-legal (legal_get_page / legal_link_page precisam de 0.4.2+, legal_consent_log_* precisa de 0.5.0+)
legal_status- Status do documento jurídico de um site: quais documentos são obrigatórios, preenchidos e publicados, além de um único sinalizador de conformidadelegal_list_documents- Listar todos os tipos de documentos jurídicos com seu estado obrigatório/preenchido e página vinculadalegal_get_document- Obter um documento jurídico incluindo suas seções ordenadaslegal_put_document- Substituir um documento jurídicolegal_render_document- Renderizar um documento em HTML normalizado sem salvarlegal_get_page- Obter a qual página um documento jurídico está vinculado: vinculado, page_id, o status do post da página e ok (vinculado E publicado)legal_link_page- Vincular um documento jurídico à sua página do WordPress (somente tipo de post page; posts e produtos são recusados)legal_add_section- Adicionar uma seção a um documento jurídicolegal_update_section- Atualizar uma seçãolegal_delete_section- Excluir uma seção de um documento jurídicolegal_get_consent- Obter a configuração do banner de consentimento de cookieslegal_put_consent- Configurar o banner de consentimento e todas as credenciais de rastreamento que o site usalegal_get_theme- Obter o tema do banner: nome do preset, substituições de propriedades personalizadas CSS e o CSS renderizadolegal_put_theme- Definir o preset do tema do banner e/ou propriedades personalizadas CSS individuaislegal_get_settings- Obter configurações do cvrt-legallegal_consent_log_get- Obter todas as decisões de consentimento registradas para um consent_idlegal_consent_log_stats- Agregar contagens de decisões de consentimento por ação e banner_version em um intervalo de diaslegal_consent_log_export- Exportar o log bruto de decisões de consentimento como CSV para um intervalo de dias
Módulo de Atendimento de Pedidos (8 ferramentas) - Requer cvrt-order-fulfillment 0.2.0+
fulfillment_get_settings- Obter as configurações do plugin cvrt-order-fulfillmentfulfillment_update_settings- Atualizar configurações do cvrt-order-fulfillmentfulfillment_status- Saúde do pipeline: quais credenciais estão definidas, lista/atribuído do ClickUp, quando o agente de impressão fez a última sondagem e contagens da fila de impressãofulfillment_queue- Estado da fila de impressão: contagens de status (pendente/imprimindo/impresso/falhou) e os trabalhos recentes com seus errosfulfillment_reprint_job- Redefinir um trabalho de impressão para pendente para que o agente o imprima novamentefulfillment_fulfill_order- Executar manualmente (forçar) o atendimento de um pedido: renderiza o comprovante de envio, cria a tarefa no ClickUp, notifica o Slackfulfillment_update_check- Forçar uma verificação imediata de atualização do plugin (ignorando o limite do PUC) e informar se uma versão mais recente está disponívelfulfillment_update_apply- Instalar uma atualização pendente do cvrt-order-fulfillment via o próprio atualizador do WordPress (mesmo caminho de código da atualização de um clique do wp-admin)
Arquitetura
src/
index.ts # Entry: McpServer + StdioServerTransport
client.ts # WordPress REST API client (Basic Auth)
types.ts # Shared Zod schemas + jsonResult helper
slim.ts # Response slimming transformers
tools/
# Standard WP REST API (wp/v2)
site.ts # 4 tools
posts.ts # 6 tools
pages.ts # 5 tools
users.ts # 6 tools
plugins.ts # 5 tools
themes.ts # 4 tools
media.ts # 4 tools
taxonomies.ts # 8 tools (categories + tags)
comments.ts # 6 tools
# Extended (mcp/v1) - requires cvrt-mcp-endpoints plugin
mcp-plugins.ts # 4 tools - install from WordPress.org
mcp-themes.ts # 5 tools - install from WordPress.org
mcp-core.ts # 6 tools - updates, cache flush
mcp-database.ts # 5 tools - search-replace, optimize
mcp-options.ts # 5 tools - full options CRUD
mcp-menus.ts # 8 tools - navigation menus
mcp-widgets.ts # 8 tools - sidebar widgets
mcp-health.ts # 6 tools - diagnostics, cron
# Pro modules (mcp/v1) - requires wp-pilot-pro
mcp-acf.ts # 31 tools - ACF integration
mcp-woo.ts # 42 tools - WooCommerce
Suporte a Múltiplos Sites
Uma instância do servidor gerencia todos os seus sites via a variável de ambiente WORDPRESS_SITES (veja Configuração). Chame list_sites para ver os ids configurados e depois passe site: "<id>" para qualquer outra ferramenta:
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["@cavort-it-systems/wordpress-mcp"],
"env": {
"WORDPRESS_SITES": "[{\"id\":\"site1\",\"url\":\"https://site1.com\",\"username\":\"admin\",\"password\":\"xxxx xxxx xxxx xxxx\"},{\"id\":\"site2\",\"url\":\"https://site2.com\",\"username\":\"admin\",\"password\":\"yyyy yyyy yyyy yyyy\"}]"
}
}
}
}
Licença
MIT