La forma más rápida de comprender qué es realmente el Model Context Protocol (MCP) en la práctica no es leer extensas especificaciones teóricas ni examinar diapositivas conceptuales. La forma más rápida es enviar una sola solicitud a una URL activa y operativa en la web abierta:
https://wppoland.com/mcp
En esa dirección funciona un servidor Model Context Protocol de producción en nuestro sitio web. Puede enviarle solicitudes POST con formato JSON-RPC 2.0. El servidor responde de inmediato con datos estructurados y tipados. No requiere ningún plugin en el panel de administración de WordPress, no necesita clave de API, no tiene coste y no realiza escrituras en la base de datos.
Si un asistente de IA (como Claude Desktop, Claude Code, Cursor o un agente autónomo de desarrollo) habla MCP, puede consultar directamente nuestros sistemas: ¿Qué servicios ofrecemos realmente? ¿Qué tecnologías admitimos? ¿Cuál es la URL canónica para enviar un brief de proyecto? Lo que no puede hacer es enviar un correo electrónico en su nombre ni insertar clientes potenciales no verificados en nuestro CRM. Esta restricción es la base de nuestro modelo de seguridad de defensa en profundidad.
En esta guía exhaustiva analizamos detalladamente el funcionamiento del endpoint MCP en vivo en wppoland.com, la arquitectura de nuestro servidor gemelo de código abierto woocommerce-mcp, casos de uso empresarial reales para agencias y tiendas online, y lecciones aprendidas en producción en infraestructura edge.
Por qué un servidor MCP directo cambia las reglas del juego
Las plataformas web tradicionales ya disponen de interfaces de programación. WooCommerce incluye una API REST madura. WordPress expone /wp-json/ desde hace años. Nuestro propio sitio publica un catálogo de servicios legible por máquinas en formato JSON bajo /api/services.json.
¿Por qué, entonces, los asistentes de IA siguen alucinando y perdiendo el contexto cuando se les pregunta sobre una empresa en una ventana de chat habitual?
Los modelos de lenguaje grande (LLM) operan mediante la predicción probabilística de secuencias de texto. Cuando un asistente intenta analizar un sitio web mediante raspado de HTML o pesos de entrenamiento desactualizados, a menudo inventa subpáginas inexistentes, asume servicios que nunca se han ofrecido o proporciona datos de contacto obsoletos.
El Model Context Protocol (publicado por Anthropic en noviembre de 2024 y desarrollado bajo la Agentic AI Foundation de la Linux Foundation; especificación: modelcontextprotocol.io) soluciona este problema de raíz. MCP actúa como un estándar universal: el puerto USB para agentes de inteligencia artificial.

De la misma manera que un portátil no necesita un controlador específico para cada fabricante de teclado gracias a los puertos USB normalizados, un asistente de IA necesita un protocolo uniforme para interactuar con herramientas externas. Una herramienta (Tool) en MCP es una operación nombrada y determinista con un esquema JSON estricto para entradas y salidas.
Cuando un cliente de IA admite MCP, puede conectarse a cualquier servidor compatible: un repositorio de código, un gestor de tickets, una base de datos de productos o una web de agencia como wppoland.com.
Los tres componentes en términos prácticos
Una arquitectura MCP consta de tres elementos fundamentales:
- El Cliente (Client): La aplicación con la que interactúa el usuario (Claude Desktop, Claude Code, Cursor IDE, Windsurf). Gestiona la ventana de contexto, interpreta la intención del usuario y decide cuándo invocar una herramienta determinada.
- El Servidor (Server): Un programa ligero o función en el edge (en wppoland.com, una Cloudflare Pages Function) que publica el manifiesto de herramientas y ejecuta las solicitudes recibidas.
- La Herramienta (Tool): Una acción determinista única. En nuestro endpoint público se ofrecen dos herramientas:
check_servicesyrequest_quote.
El flujo de trabajo es directo: el cliente consulta las herramientas disponibles (tools/list), el modelo selecciona una y valida sus parámetros, el servidor ejecuta la lógica y devuelve datos JSON limpios, y el modelo formula una respuesta precisa para el usuario.
Interacción paso a paso desde la terminal
Puede probar el endpoint directamente desde la terminal con curl sin necesidad de escribir código de orquestación de IA:
curl -s -X POST https://wppoland.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
La respuesta devuelve el manifiesto con las herramientas y sus esquemas JSON Schema correspondientes:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "check_services",
"description": "List or search WPPoland services catalog with localized canonical URLs.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional search term to filter services"
},
"lang": {
"type": "string",
"enum": ["pl", "en", "de", "nb", "es", "pt-pt"],
"description": "Target language for service titles and URLs"
}
}
}
},
{
"name": "request_quote",
"description": "Get localized contact URL and brief submission instructions.",
"inputSchema": {
"type": "object",
"properties": {
"project_type": {
"type": "string",
"description": "Type of project (e.g. mcp-server-development, woocommerce, audit)"
},
"lang": {
"type": "string",
"enum": ["pl", "en", "de", "nb", "es", "pt-pt"],
"description": "Preferred language for the inquiry"
}
}
}
}
]
}
}

Al abrir https://wppoland.com/mcp en el navegador, una petición GET apunta a la tarjeta de descubrimiento oficial:
https://wppoland.com/.well-known/mcp/server-card.json

Configuración en Claude Desktop y Cursor
Configuración para Claude Desktop
En el archivo claude_desktop_config.json (en macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"wppoland": {
"url": "https://wppoland.com/mcp/"
}
}
}
Configuración para Cursor IDE
En el archivo .cursor/mcp.json en la raíz del proyecto o en la configuración global:
{
"mcpServers": {
"wppoland": {
"url": "https://wppoland.com/mcp/"
}
}
}

Tras reiniciar el asistente, puede preguntar: “¿Qué servicios de optimización de WooCommerce y desarrollo de servidores MCP ofrece WPPoland?”. El asistente invoca check_services con query: "woocommerce" y devuelve enlaces canónicos reales.
Lección de producción: La barra final que rompía el 90 % del tráfico
JSON-RPC a través de HTTP requiere peticiones POST con cuerpo (body). Muchos servidores web y motores estáticos redirigen automáticamente (301) las rutas sin barra final (/mcp) a rutas con barra (/mcp/).
Muchos clientes automatizados fallaban ante esto:
- Algunas librerías abortaban la conexión inmediatamente al recibir un código 301.
- Otras seguían la redirección pero convertían la petición en un GET, descartando por completo el cuerpo POST.
Nuestras mediciones registraron 29 llamadas fallidas al día frente a solo 2 exitosas en la ruta sin barra.
La solución: Una regla de zona en Cloudflare que procesa las solicitudes POST a /mcp directamente sin redirección y devuelve un estado HTTP 200 limpio. La tasa de éxito pasó inmediatamente al 100 %.
Arquitectura de seguridad: Por qué el solo lectura es innegociable
La herramienta request_quote devuelve información estructurada y precisa:
{
"contact_url": "https://wppoland.com/es/contacto/?source=mcp",
"method": "web-form",
"note": "Endpoint de solo lectura. Envíe la consulta a través del formulario de contacto; esta herramienta no envía mensajes automáticamente.",
"suggested_message": "Solicitud de presupuesto: desarrollo de servidor MCP. Por favor incluir alcance y tecnología.",
"reply_time": "en un plazo de un día laborable"
}

Esto previene el abuso por spam y anula los ataques de inyección de prompts que intenten alterar estados en bases de datos.
El homólogo para tiendas: woocommerce-mcp
Para tiendas WooCommerce, hemos creado y publicado el paquete de código abierto:

https://github.com/wppoland/woocommerce-mcp
Disponible en npm como @wppoland/woocommerce-mcp (MIT, TypeScript), se comunica directamente con las API REST oficiales utilizando claves de solo lectura, proporcionando cinco herramientas:

list_products: Búsqueda en el catálogo por categoría y estado de stock.get_product: Obtención de detalles completos de producto por ID.list_orders: Consulta de pedidos recientes con filtros de estado (processing,on-hold).sales_report: Agregación de cifras de ventas y totales por rangos de fecha.search_posts: Búsqueda en artículos de blog y base de conocimientos vía WordPress REST API.
Implementación en TypeScript con validación Zod
import { z } from "zod";
server.registerTool(
"list_orders",
{
title: "List orders",
description: "List recent WooCommerce orders, newest first. Optionally filter by status.",
inputSchema: {
per_page: z.number().int().min(1).max(100).optional(),
status: z.enum([
"any", "pending", "processing", "on-hold",
"completed", "cancelled", "refunded", "failed"
]).optional(),
},
},
async ({ per_page, status }) => {
const cfg = loadConfig(true);
const data = await wc(cfg, "orders", {
per_page: per_page ?? 10,
status,
orderby: "date",
order: "desc",
});
return ok(data.map((order) => ({
id: order.id,
number: order.number,
status: order.status,
total: order.total,
currency: order.currency,
date_created: order.date_created,
item_count: order.line_items?.length ?? 0,
})));
},
);


Llamadas detalladas a herramientas con cURL
Para comprender cómo funciona tools/call en la práctica, puede enviar una solicitud directa al servidor:
curl -s -X POST https://wppoland.com/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "check_services",
"arguments": {
"query": "mcp",
"lang": "es"
}
}
}'
El servidor procesa la solicitud y responde con el catálogo canónico de servicios:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [
{
"type": "text",
"text": "Servicios encontrados (1):\n- Nombre: Desarrollo de servidores MCP\n ID: mcp-server-development\n URL: https://wppoland.com/es/servicios/mcp-server-development/\n Descripción: Desarrollo de servidores Model Context Protocol para WordPress y WooCommerce."
}
]
}
}
Asimismo, una llamada a request_quote produce una respuesta estructurada sin operaciones de escritura:
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{
"type": "text",
"text": "{\n \"contact_url\": \"https://wppoland.com/es/contacto/?source=mcp\",\n \"method\": \"web-form\",\n \"reply_time\": \"en un plazo de un día laborable\"\n}"
}
]
}
}
Cuatro casos de uso prácticos
Caso de uso 1: Asistente operativo para e-commerce
Los gestores de tiendas online analizan automáticamente los pedidos en estado on-hold y detectan incidencias de stock sin tener que iniciar sesión en wp-admin.
Consulta en lenguaje natural:
“Revisa los últimos 10 pedidos con estado on-hold. Calcula el importe total e identifica los productos afectados.”
Cadena de herramientas interna:
- El asistente invoca
list_orders(status="on-hold", per_page=10). - El servidor MCP devuelve identificadores y totales sin datos PII.
- Para los artículos clave se invoca
get_product(id=...). - El asistente sintetiza una tabla ejecutiva clara.
Caso de uso 2: Triaje de consultas B2B para agencias
Los agentes de IA de clientes potenciales consultan especializaciones técnicas vía check_services y obtienen enlaces de contacto canónicos.
Caso de uso 3: Soporte al cliente de primer nivel
El personal de helpdesk consulta stock y variantes de producto a través de un bot de Slack conectado a MCP.
Caso de uso 4: Orquestación de contenido en WordPress Headless
Los redactores verifican temas existentes con search_posts antes de redactar nuevos artículos para prevenir canibalización SEO.
Comparativa técnica: stdio vs. Streamable HTTP vs. SSE
| Característica | Transporte Stdio | Streamable HTTP (wppoland.com) | Server-Sent Events (SSE) |
|---|---|---|---|
| Entorno | Local (Desktop / CLI) | Edge Functions / Cloud | Servidores backend dedicados |
| Latencia | < 5 ms | 20 - 50 ms (Edge) | 50 - 150 ms (Con estado) |
| Seguridad | Límites de proceso local | Protección pública de solo lectura | Tokens Bearer / OAuth |
| Configuración | Binario Node local | URL directa en el cliente | Infraestructura de servidor requerida |
| Mantenimiento | Actualizaciones en el host | Cero configuración para clientes | Conexiones persistentes |
Conclusión
Hacer que WordPress y WooCommerce sean accesibles para agentes de IA mediante wppoland.com/mcp y woocommerce-mcp en GitHub es viable de forma segura, escalable y sin sobrecargar el servidor.
Consulte nuestros servicios de desarrollo de servidores MCP para WordPress o pruebe el endpoint directamente desde su terminal.






