En este artículo te cuento cómo hemos conectado nuestro WordPress con asistentes de IA como Claude, OpenCode y cualquier cliente MCP compatible. Te explicamos paso a paso qué problemas nos hemos encontrado, cómo los hemos resuelto y qué puedes hacer tú para integrar tu sitio WordPress con la IA de forma segura y profesional.
¿Qué es el MCP Adapter de WordPress?
El WordPress MCP Adapter es un plugin oficial que implementa el Model Context Protocol (MCP), un estándar abierto desarrollado por Anthropic que permite a los asistentes de IA descubrir y ejecutar capacidades (abilities) de WordPress de forma programática.
En palabras simples: convierte tu WordPress en un servidor MCP al que cualquier cliente compatible (Claude, OpenCode, Cursor, VS Code) puede conectarse para interactuar con tu sitio: consultar productos, crear posts, revisar pedidos y mucho más.
¿Por qué es importante?
- Interoperabilidad: un solo protocolo estándar para conectar WordPress con cualquier IA
- Seguridad: cada ability tiene su propio control de permisos
- Descubrimiento automático: las IA pueden ver qué puede hacer tu sitio sin documentación manual
- Extensible: plugins y temas pueden exponer sus propias funcionalidades
Requisitos previos
- WordPress ≥ 6.9 (la Abilities API se incluye en el núcleo desde esta versión)
- PHP ≥ 7.4
- Acceso de administrador al sitio
- Una Application Password de WordPress
- Node.js ≥ 18 (para el proxy
@automattic/mcp-wordpress-remote)
Instalación del plugin MCP Adapter
Paso 1: Descargar e instalar
Descargamos el MCP Adapter desde el repositorio oficial de WordPress en GitHub:
- Ve a github.com/WordPress/mcp-adapter
- Descarga el último release como ZIP
- En tu WordPress: Plugins → Añadir nuevo → Subir plugin
- Activa el plugin
Paso 2: Instalar dependencias (si usas Composer)
Si instalas desde Git, necesitarás ejecutar Composer para instalar la dependencia php-mcp-schema:
cd wp-content/plugins/mcp-adapter
composer install
Alternativa: puedes preparar el ZIP con todas las dependencias incluidas desde tu máquina local y subir el ZIP completo al servidor.
Paso 3: Crear una Application Password
- En WordPress, ve a Usuarios → Tu perfil
- Desplázate hasta Application Passwords
- Escribe un nombre (por ejemplo: OpenCode MCP)
- Haz clic en Añadir nueva application password
- Copia la contraseña generada (¡solo se muestra una vez!)
Configuración del cliente MCP
Para conectar cualquier cliente MCP a tu WordPress, usamos el proxy oficial @automattic/mcp-wordpress-remote. Este proxy traduce el protocolo STDIO de MCP a llamadas HTTP a la REST API de WordPress.
1. OpenCode
Edita el archivo ~/.config/opencode/opencode.json:
{
"mcp": {
"wordpress": {
"type": "local",
"command": ["npx", "-y", "@automattic/mcp-wordpress-remote@latest"],
"environment": {
"WP_API_URL": "https://tusitio.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "tu-email",
"WP_API_PASSWORD": "tu-application-password"
},
"enabled": true
}
}
}
Una vez añadido, reinicia OpenCode. Los comandos MCP de WordPress estarán disponibles automáticamente.
2. Claude Desktop
Edita la configuración según tu sistema operativo:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%Claudeclaude_desktop_config.json
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://tusitio.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "tu-email",
"WP_API_PASSWORD": "tu-application-password"
}
}
}
}
Guarda y reinicia Claude Desktop. Aparecerá un icono de herramienta ) indicando que el servidor MCP está conectado.
3. Claude Code (CLI)
Configúralo en ~/.claude/claude.json (global) o en un claude.json local dentro del proyecto:
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://tusitio.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "tu-email",
"WP_API_PASSWORD": "tu-application-password"
}
}
}
}
4. VS Code + GitHub Copilot
En .vscode/settings.json del proyecto:
{
"github.copilot.chat.mcpServers": {
"wordpress": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://tusitio.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "tu-email",
"WP_API_PASSWORD": "tu-application-password"
}
}
}
}
5. Cursor
En .cursor/mcp.json del proyecto:
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://tusitio.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "tu-email",
"WP_API_PASSWORD": "tu-application-password"
}
}
}
}
Cómo funciona el MCP Adapter
El MCP Adapter expone tres herramientas principales en su servidor por defecto:
| Herramienta | Función |
|---|---|
mcp-adapter-discover-abilities | Lista todas las abilities registradas |
mcp-adapter-get-ability-info | Muestra el esquema de entrada/salida de una ability |
mcp-adapter-execute-ability | Ejecuta una ability con los parámetros indicados |
Las abilities deben ser registradas por plugins o temas mediante wp_register_ability() con el flag meta.mcp.public = true. Esto permite que los desarrolladores expongan funcionalidades específicas de forma segura.
Creando abilities personalizadas: la lección que aprendimos
Durante nuestra implementación nos encontramos con un problema crítico que nos costó horas de debugging: las abilities que registrábamos solo funcionaban la primera. La segunda, tercera y siguientes fallaban silenciosamente.
El problema: las categorías de abilities
El código fuente de WordPress 6.9 incluye esta validación en wp_register_ability():
if ( isset( $args['category'] ) ) {
if ( ! wp_has_ability_category( $args['category'] ) ) {
_doing_it_wrong( ... );
return null; // ← Falla SILENCIOSAMENTE
}
}
Si usas una categoría que no existe (como 'woocommerce' o 'content'), la ability no se registra y no hay error visible. Solo la categoría 'site' está registrada por defecto en WordPress.
La solución
Usar 'category' => 'site' (que ya existe) o registrar primero tu categoría con wp_register_ability_category(). Aquí tienes un ejemplo completo de plugin que funciona:
<?php
/**
* Plugin Name: Mis Abilities MCP
*/
add_action('wp_abilities_api_init', function () {
// Usar categoría 'site' que ya existe
wp_register_ability('mi-plugin/get-products', [
'label' => 'Listar productos',
'description' => 'Devuelve productos WooCommerce',
'category' => 'site', // ← ¡OBLIGATORIO usar una categoría existente!
'execute_callback' => function ($input = []) {
$limit = $input['limit'] ?? 10;
return get_posts([
'post_type' => 'product',
'posts_per_page' => $limit
]);
},
'permission_callback' => function () {
return current_user_can('read');
},
'meta' => [
'mcp' => ['public' => true]
],
]);
}, -1000);
Consejos de seguridad importantes
- Usa siempre Application Passwords en lugar de tu contraseña principal de WordPress
- Revoca las contraseñas que ya no uses desde Usuarios → Perfil
- No compartas archivos de configuración con contraseñas en Git. Añádelos a
.gitignore - Cada cliente MCP tiene permisos independientes según el usuario de WordPress que uses
- Usa HTTPS obligatoriamente para todas las conexiones MCP
- Las abilities del core (
core/get-site-info, etc.) no están expuestas al MCP por defecto por seguridad
Aplicaciones reales y casos de uso
Una vez conectado, las posibilidades son enormes. Desde el chat de tu asistente de IA puedes: Consultar productos: «¿Cuántos productos tenemos en stock?»
- Crear contenido: «Crea un post sobre recetas de verano con 5 bloques de Gutenberg»
- Revisar pedidos: «Muéstrame las últimas 10 órdenes completadas»
- Auditoría SEO: «Lista todas las páginas sin meta descripción»
- Administración: «Actualiza el precio del producto XYZ a 29.99€»
Es ideal para equipos que quieren integrar WordPress en flujos automatizados sin tener que escribir código REST API manualmente.
Preguntas frecuentes (FAQ)
¿Puedo usar el MCP Adapter con WooCommerce?
Sí, totalmente. Puedes registrar abilities que usen funciones de WooCommerce (wc_get_product(), wc_get_orders(), etc.) siempre que uses la categoría 'site' o registres primero la categoría 'woocommerce'.
¿Funciona con cualquier cliente MCP?
Sí. Cualquier cliente que soporte el protocolo MCP puede conectarse. Hemos probado OpenCode, Claude Desktop, Claude Code, VS Code con Copilot y Cursor.
¿Necesito conocimientos de programación?
Para la configuración básica, no. Pero para crear abilities personalizadas que expongan funcionalidades específicas de tu negocio, sí necesitarás escribir un poco de PHP o pedir ayuda a un desarrollador.
¿Es seguro dar acceso MCP a mi WordPress?
Sí, si sigues las buenas prácticas: usa Application Passwords (no tu contraseña principal), limita los permisos del usuario, y expón solo las abilities que realmente necesites con meta.mcp.public = true.
¿Quién crea las abilities? Core vs. Personalizadas
Es importante entender la diferencia entre las abilities que vienen con WordPress y las que puedes crear tú mismo. No todas las funcionalidades de WordPress están expuestas automáticamente al MCP.
Abilities del núcleo (Core)
WordPress 6.9 incluye tres abilities por defecto:
core/get-site-info— Información básica del sitiocore/get-user-info— Datos del usuario autenticadocore/get-environment-info— Versión de PHP, WordPress, etc.
Importante: Estas abilities del núcleo NO están visibles para los clientes MCP porque WordPress las registra sin el flag meta.mcp.public = true. Esto es una medida de seguridad intencional.
Abilities personalizadas
Para que la IA pueda interactuar con tu WooCommerce, tu contenido o cualquier funcionalidad específica de tu negocio, un desarrollador debe crear un plugin que registre abilities con:
wp_register_ability('mi-plugin/accion', [
'label' => 'Descripción',
'description' => 'Qué hace esta ability',
'category' => 'site', // ← Obligatorio usar una categoría existente
'execute_callback' => function() { ... },
'permission_callback' => function() { ... },
'meta' => [
'mcp' => ['public' => true] // ← Esto la hace visible al MCP
],
]);
¿Dónde está todo?
| Elemento | Ubicación | Quién lo controla |
|---|---|---|
| Abilities del core | wp-includes/abilities-api.php | WordPress |
| MCP Adapter (plugin) | wp-content/plugins/mcp-adapter/ | Equipo de WordPress |
| Abilities personalizadas | wp-content/plugins/tu-plugin/ o functions.php | Tú / Tu desarrollador |
| Configuración del cliente | ~/.config/opencode/opencode.json (u otro) | Tú |
Analogía simple: el MCP Adapter es como una centralita telefónica. WordPress instala 3 números internos (abilities del core) pero no los publica en la guía telefónica. Para que la IA pueda llamar a tu tienda WooCommerce o gestionar tu contenido, tú debes crear y registrar esos números adicionales (abilities personalizadas) en la centralita.Conclusión
El WordPress MCP Adapter es un paso enorme hacia la interoperabilidad entre WordPress y los asistentes de IA. La instalación es sencilla, la configuración minimalista, y una vez conectado, las posibilidades son prácticamente ilimitadas.
En nuestro caso, tras superar el obstáculo de las categorías de abilities, conseguimos exponer 6 funcionalidades personalizadas que nos permiten gestionar productos, pedidos y contenido directamente desde el chat de IA.
Si trabajas con WordPress y usas asistentes de IA, esta es una integración que no te puedes perder. El futuro de la gestión de contenido es conversacional, y el MCP Adapter te pone en la delantera.
«La clave del éxito no es evitar los errores, sino aprender de ellos rápidamente.»— Experiencia real implementando MCP en WordPress