Migrar uma API WordPress existente para MCP: um plano de 4 semanas

Migrar uma API WordPress existente para MCP: um plano de 4 semanas

Última verificação: 22 de setembro de 2026
10 min de leitura
Guia
500+ projetos WP
Integração IA

#Migrar uma API WordPress existente para MCP: um plano de 4 semanas

Construir um servidor MCP de raiz é simples. Migrar a partir de uma REST API do WordPress existente e a funcionar, enquanto continua a servir tráfego de produção, é uma forma mais difícil. Este plano é o que uso para passar de “temos /wp-json/ e um consumidor parceiro” para “temos /wp-json/, esse parceiro e um servidor MCP amigo dos LLM à frente”, sem partir nada.

O artigo faz parte do pilar desenvolvimento de servidores MCP.

#TL;DR

  • Quatro semanas: auditoria, estrutura, execução em paralelo, transição.
  • A REST continua ativa para os consumidores existentes; o MCP é um acréscimo, não um substituto.
  • Os esquemas Zod vêm da auditoria à REST, não de uma lista de desejos.
  • Execução em paralelo com um agente interno antes de o tráfego externo chegar ao MCP.
  • O Logpush capta cada chamada de ferramenta; as discrepâncias entre respostas MCP e REST aparecem como erros de esquema.

#Como auditar os endpoints da REST API do WordPress

A auditoria é uma folha de cálculo. Uma linha por endpoint, com estas colunas:

ColunaO que registamos
Endpoint/wp-json/wp/v2/posts, /wp-json/wc/v3/products, etc.
Verbos HTTPGET, POST, PUT, DELETE suportados
Consumidores atuaisLoja, ERP do parceiro, recetores de webhooks
Volume de tráfegoPedidos por dia a partir dos registos de acesso
Sensibilidade dos dadosPúblicos, de clientes, só administração
Altera o estado?Sim/não
Corresponde a uma ferramenta MCP?Nome proposto da ferramenta e intenção
NotasPlugins envolvidos, formas de campos personalizados, armadilhas

Para uma loja WooCommerce típica, a folha tem 20 a 60 linhas. A maioria traduz-se de forma limpa em ferramentas MCP; um punhado (internos da administração, endpoints específicos de plugins, recetores de webhooks) fica só em REST.

O resultado da semana 1 são dois artefactos:

  1. Um inventário de ferramentas proposto: catalogue.list, product.detail, order.intent, order.status, inventory.check, mais o que for específico da sua construção.
  2. Um primeiro rascunho dos esquemas Zod para as entradas e saídas de cada ferramenta, derivado das respostas REST reais captadas durante a auditoria.

Capto as respostas REST com curl e jq para inspecionar a forma, ou com uma coleção do Postman partilhada pela equipa. O objetivo é a verdade empírica, não o que o README diz. Os plugins do WordPress são conhecidos por acrescentar campos que a documentação nunca regista; a auditoria apanha-os.

#Como montar um servidor MCP no Cloudflare Workers

O resultado da semana 2 é um servidor MCP funcional, com deploy num ambiente Cloudflare Workers fora de produção, e o inventário de ferramentas da semana 1 implementado como adaptadores finos sobre os endpoints REST existentes.

O esqueleto do servidor:

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
import { catalogueListInput, catalogueListOutput, handleCatalogueList } from "./tools/catalogue-list.js";
import { productDetailInput, productDetailOutput, handleProductDetail } from "./tools/product-detail.js";
// ... jeden import na narzędzie

export function createMcpServer(env: Env): Server {
  const server = new Server({
    name: "wppoland-mcp",
    version: "0.1.0",
  });

  server.tool(
    "catalogue.list",
    catalogueListInput,
    catalogueListOutput,
    (input) => handleCatalogueList(input, env),
  );

  server.tool(
    "product.detail",
    productDetailInput,
    productDetailOutput,
    (input) => handleProductDetail(input, env),
  );

  // ... jedno wywołanie .tool() na narzędzie

  return server;
}

Cada handler é um adaptador fino. Recebe a entrada validada, constrói a query string, faz fetch a /wp-json/, mapeia a resposta para uma forma de saída alinhada com schema.org, chama parse sobre a saída e devolve. A lógica de negócio fica no WordPress; o handler é uma tradução mecânica.

A semana 2 inclui também a estrutura de autenticação do guia de padrões de autenticação MCP. Para a execução em paralelo da semana 3 uso um único token de teste com todos os scopes; os scopes de produção aperto-os na semana 4.

O wrangler.toml do ambiente de preview aponta para uma instalação de staging do WordPress ou uma cópia da produção. O servidor MCP está acessível num URL *.mcp-staging.wppoland.workers.dev disponível apenas para a equipa.

#Como testar o servidor MCP em paralelo com a REST API

É na semana 3 que os bugs aparecem. O padrão:

Construa um harness de comparação. Um pequeno script TypeScript que recebe o nome de uma ferramenta e uma entrada, chama o servidor MCP, depois chama diretamente o endpoint REST equivalente e compara as duas respostas. A diferença fica registada com o nome da ferramenta, a entrada e um caminho ao estilo JSON pointer para cada discrepância.

async function compareToolToRest(toolName: string, input: unknown) {
  const mcpResponse = await callMcp(toolName, input);
  const restResponse = await callEquivalentRest(toolName, input);
  const diff = jsonDiff(restResponse, mcpResponse);
  if (diff.length > 0) {
    await logMismatch({ toolName, input, diff });
  }
}

Cada ferramenta contra um conjunto representativo de entradas. Para catalogue.list: query vazia, query que devolve centenas de produtos, query com filtro de categoria, query com intervalo de preços, query sem resultados. Para product.detail: SKU conhecido, SKU desconhecido, SKU com variações, SKU com campos personalizados. Cubra os casos-limite da auditoria.

Aponte um agente interno para o servidor MCP. O Claude Desktop com o servidor MCP configurado como fonte remota de ferramentas é a configuração que uso. Alguém da equipa passa 30 minutos por dia, durante uma semana, a interagir com a própria loja através do agente e a registar as surpresas num documento partilhado.

Aperte os esquemas com base no que volta. Cada falha de validação Zod no registo é um bug de esquema ou um bug de mapeamento. Corrija, volte a fazer deploy do Worker de preview, repita o harness.

O resultado da semana 3 é um harness que passa com zero diferenças e um inventário de ferramentas que sobreviveu a cinco dias de 30 minutos diários de interação real com o agente. Se faltar algum dos dois, a semana 4 não arranca.

#Como pôr o servidor MCP em produção e monitorizá-lo

A transição não tem drama se as semanas 1 a 3 correram bem.

Faça deploy dos Workers de produção. wrangler deploy --env production. O servidor MCP de produção aponta para a origem WordPress de produção, com scopes de produção nos tokens emitidos pela administração do WordPress.

Emita tokens para o primeiro runtime real de agente. Normalmente um destes: um agente interno para colaboradores, uma integração de parceiro que pede uma superfície MCP, um assistente público na loja. Comece pelo consumidor mais pequeno e de menor risco.

Ligue o Cloudflare Logpush a um armazenamento de longo prazo. Os campos de registo descritos no artigo sobre construir um servidor MCP para WooCommerce são as predefinições certas: nome da ferramenta, hash da entrada, latência, resultado da validação, scope do token. O armazenamento é o que a sua equipa já usa (BigQuery, ClickHouse, S3 + Athena).

Construa um painel de observação. Três consultas desde o primeiro dia:

  1. Chamadas de ferramentas por minuto, divididas por nome da ferramenta. Deteta picos de carga.
  2. Taxa de falhas de validação por ferramenta, dividida por código (input_invalid, output_invalid). Deteta regressões.
  3. Latência p50/p95/p99 por ferramenta. Deteta um WordPress lento mais acima na cadeia.

Mantenha a REST viva e intocada. A loja existente, as integrações de parceiros existentes e os recetores de webhooks existentes continuam a usar /wp-json/ exatamente como antes. O MCP é um acréscimo, não um substituto. É a regra mais importante da migração.

#Os erros mais comuns ao migrar a REST API para MCP

Seis coisas que vi falhar em migrações reais:

Um campo da resposta REST que a auditoria não apanhou. Um plugin acrescenta meta_data: [...] às respostas de produtos. O esquema de saída MCP não o conhece. O parse do Zod falha com dados reais. Correção: repita a auditoria sobre tráfego de produção, alargue o esquema ou descarte o campo explicitamente com .transform().

Permalinks diferentes entre staging e produção. A ferramenta MCP product.detail devolve o campo permalink do WooCommerce. Os permalinks de staging são https://staging.example.com/...; os de produção https://example.com/.... Os dados de teste passam; a produção falha no validador de URL. Correção: configure o Worker de staging com um passo de reescrita de permalinks que espelhe o comportamento de produção.

Tratamento de variações do WooCommerce. A auditoria captou a forma da resposta de um produto simples. As respostas das variações são diferentes (os SKU das variações vivem em /wp-json/wc/v3/products/<id>/variations). Correção: trate as variações como um fetch separado em product.detail e mapeie-as para hasVariant do schema.org.

O token de autenticação vaza para os registos. Um handler regista o cabeçalho Authorization completo para depuração. O token acaba no armazenamento de registos. Correção: oculte o cabeçalho na camada de registo; rode todos os tokens emitidos antes de a ocultação estar em vigor. Relevante para o cumprimento do artigo 32.º do RGPD.

A atualização de um plugin parte a resposta REST. O WooCommerce 9.x muda o nome de um campo, o handler MCP continua à espera do nome antigo, o parse do Zod falha. Correção: fixe a versão do WooCommerce em staging, corra o harness de comparação em cada atualização do WordPress e trate o harness como parte da barreira de atualização.

O agente entra em ciclo numa chamada de ferramenta malformada. Um agente defeituoso repete order.intent 100 vezes por minuto quando a entrada falha a validação. Sem rate limit, a origem WordPress recebe 100 chamadas em cascata. Correção: rate limit por principal, como no guia de padrões de autenticação MCP, e devolva retry_after_seconds no envelope de erro.

#Quanto tempo demora migrar a API do WordPress para MCP

Quatro semanas é a predefinição. Dois ajustes:

Superfície menor, duas semanas. Três ferramentas, um consumidor, sem complexidade de autenticação. Comprima a auditoria e a estrutura na semana 1, a execução em paralelo e a transição na semana 2. O mesmo padrão, um calendário mais curto.

Superfície maior, seis semanas. Uma dúzia de ferramentas, vários modos de autenticação, ações sensíveis que alteram dados. Acrescente uma semana entre a estrutura e a execução em paralelo para revisão de segurança. Acrescente uma semana entre a execução em paralelo e a transição para um lançamento suave com um único utilizador autorizado por OAuth, antes de um rollout mais amplo.

As quatro fases mantêm a mesma ordem, seja qual for o orçamento de tempo.

#O WordPress muda depois de adotar MCP?

Em termos simples, depois da migração:

  • A interface de administração do WordPress fica igual.
  • O Block Editor fica igual.
  • O sistema de autenticação de utilizadores fica igual.
  • Os endpoints REST existentes ficam iguais e continuam a servir os seus consumidores.
  • A lógica de disparo de webhooks fica igual.
  • A camada de dados (wp_posts, wp_postmeta, tabelas do WooCommerce) fica igual.

O que se acrescenta: o servidor MCP no Cloudflare Workers, uma interface de emissão de tokens na administração do WordPress (um pequeno plugin ou uma função do tema) e a configuração do Cloudflare Logpush. Tudo o resto fica igual.

É precisamente isto que torna a migração de baixo risco. Se o servidor MCP tiver um mau dia, desliga o Worker. A superfície para agentes desaparece. A loja continua a funcionar, as integrações de parceiros continuam a funcionar e as encomendas continuam a entrar.

#Temas relacionados

Este artigo trata da forma da migração. A implementação está descrita no artigo sobre construir um servidor MCP para WooCommerce. A estratégia de autenticação é tratada no guia de padrões de autenticação MCP. O desenho de ferramentas tipadas é tratado no artigo sobre ferramentas de catálogo tipadas com Zod para MCP. A decisão ao nível do protocolo é tratada na comparação entre MCP e REST. A página do serviço é desenvolvimento de servidores MCP.

O orçamento é individual, porque o âmbito da migração depende do número de endpoints na auditoria, da complexidade da autenticação e do número de consumidores.

Do lado da implementação, este tema enquadra-se na migração para Next.js ou Astro.

Próximo passo

Transforme o artigo numa implementação real

Este bloco reforça a ligação interna e conduz o leitor para o passo seguinte mais útil dentro da arquitetura do site.

Quer implementar isto no seu site?

Se está a planear headless WordPress, desacoplamento de frontend ou migração para Astro, posso desenhar e implementar a arquitetura completa.

Cluster relacionado

Explorar outros serviços WordPress e base de conhecimento

Reforce o seu negócio com suporte técnico profissional em áreas-chave do ecossistema WordPress.

FAQ do artigo

Perguntas frequentes

Respostas práticas para aplicar o tema na execução real.

SEO-readyGEO-readyAEO-ready5 Q&A
Tenho de descontinuar a REST API para acrescentar MCP?#
Não. O MCP fica à frente da REST; a REST API continua ativa e serve os mesmos consumidores de sempre (lojas, integrações de parceiros, recetores de webhooks). O MCP acrescenta uma nova superfície orientada para agentes sem remover nada.
Porquê exatamente quatro semanas?#
Uma semana para a auditoria, outra para a estrutura, outra para a execução em paralelo e outra para a transição é uma forma que se tem mantido ao longo de várias migrações. Superfícies menores comprimem-se em duas semanas; maiores estendem-se a seis. O que conta é a estrutura, não o número exato de dias.
E se a minha REST API não estiver documentada?#
Faça a auditoria na mesma. Chame cada endpoint do índice /wp-json/, capte a forma da resposta com uma ferramenta como o wp-cli ou uma coleção do Postman e deduza os tipos dos campos. A API não documentada torna-se um esquema Zod antes de qualquer outra coisa acontecer.
Posso migrar uma ferramenta de cada vez?#
Sim, e muitas vezes é a abordagem certa. Lança catalogue.list e product.detail na quarta semana. Acrescenta order.intent quatro semanas depois, quando a estratégia de scopes OAuth estiver estabilizada. Acrescenta inventory.check um mês mais tarde.
O que fica do lado do WordPress?#
A camada de dados, a interface de administração, o fluxo de autoria, os endpoints REST existentes, a lógica de disparo de webhooks e o sistema de autenticação de utilizadores. O MCP envolve e volta a expor; não substitui funcionalidades do WordPress.

Precisa de FAQ adaptado ao setor e mercado? Criamos uma versão alinhada com os seus objetivos de negócio.

Fale connosco

Artigos Relacionados