Agent Abilities for MCP
Un plugin gratuito de WordPress que convierte tu sitio en un servidor MCP gobernado: 153 capacidades que permanecen desactivadas hasta que las activas, vinculadas a un usuario de WordPress con privilegios mínimos, y con cada llamada auditada.
Documentación
Agent Abilities for MCP - Servidor MCP con Controles de Permisos y Registro de Auditoría
Servidor MCP para WordPress. Conecta Claude, ChatGPT o cualquier agente de IA, con controles de permisos, desactivado por defecto, y un registro de auditoría completo.
| Colaboradores | unaibamir |
| Etiquetas | chatgpt, claude, mcp, mcp-server, woocommerce |
| Requiere al menos | 6.9 |
| Probado hasta | 7.1 |
| Requiere PHP | 7.4 |
| Versión estable | 1.7.5 |
| Licencia | GPL-2.0-o-posterior |
Descripción
Servidor MCP de WordPress para agentes de IA, gobernado y desactivado por defecto
Agent Abilities for MCP es un plugin de WordPress que convierte tu sitio en un servidor de Protocolo de Contexto de Modelo (MCP) gobernado. Expone 179 "habilidades" (herramientas) de WordPress seleccionadas a agentes de IA como ChatGPT, Claude, Cursor y VS Code a través de MCP, para que tu cliente de IA pueda leer y, cuando lo permitas, escribir en tu sitio como un usuario real de WordPress con privilegios mínimos que tú elijas. Está construido sobre la API de Habilidades de WordPress 6.9 y el Adaptador MCP oficial, por lo que no hay servidor o transporte personalizado en el que confiar.
Nada se expone hasta que lo actives. Los controles de permisos son el punto clave: el agente solo actúa como el usuario de WordPress al que lo vincules, nunca como una clave equivalente a administrador, y cada llamada se vuelve a verificar contra las capacidades de ese usuario y se escribe en el registro de auditoría antes de ejecutarse, incluidos los intentos denegados. Añades alcance a medida que construyes confianza, no todo de una vez. Consulta Servicios Externos a continuación para ver exactamente a qué puede acceder el plugin por sí solo.
El Protocolo de Contexto de Modelo (MCP) es una especificación abierta desarrollada originalmente por Anthropic. Claude, ChatGPT, Cursor, VS Code, Gemini y otros nombres de productos son marcas comerciales de sus respectivos propietarios. Agent Abilities for MCP es un plugin de terceros y no está afiliado, respaldado ni patrocinado por ninguno de ellos.
Enlaces rápidos: Documentación | Primeros pasos | Clientes compatibles | Biblioteca de indicaciones | Sitio web
¿Qué es un servidor MCP de WordPress?
Un servidor MCP de WordPress permite que un asistente de IA trabaje directamente en tu sitio, en lugar de copiar texto entre una ventana de chat y wp-admin. MCP (Protocolo de Contexto de Modelo) es un estándar abierto que le indica a un cliente de IA qué herramientas ofrece un servicio y cómo llamarlas, para que Claude, ChatGPT o cualquier otro cliente MCP pueda listar tus publicaciones, redactar una o actualizar un pedido de WooCommerce.
Un servidor MCP le da a un modelo de lenguaje la capacidad de cambiar tu sitio en vivo, por lo que tanto el alcance que puede tener como si puedes auditarlo después importan: exactamente lo que Agent Abilities for MCP gobierna, desactivado por defecto y registrado.
¿Prefieres verlo primero? Aquí tienes un breve recorrido del plugin en acción.
🛡️ Controles de permisos y un registro de auditoría en cada llamada
- Privilegio mínimo por diseño. El agente de IA se conecta como un usuario real y limitado de WordPress a través de OAuth o una Contraseña de Aplicación, nunca como una clave equivalente a administrador.
- Desactivado por defecto. Nada se expone hasta que lo actives, y las actualizaciones nunca amplían silenciosamente el acceso.
- Modo de solo lectura. Un interruptor detiene el registro de toda habilidad de escritura, sin importar lo que esté marcado, incluidas las habilidades de otros plugins, y tus selecciones no se modifican cuando lo desactivas de nuevo.
- Control de capacidades en dos capas. Una conexión solo ve las herramientas que su usuario puede llamar, y cada llamada vuelve a verificar esa capacidad antes de ejecutarse.
- Lista de permitidos por rol y por conexión. Limita lo que un rol, o una conexión, puede alcanzar además de la lista global. Las listas solo limitan: una habilidad debe superar la lista global, la lista del rol y la lista de esa conexión antes de que un agente pueda llamarla. Un sitio que nunca abre la pantalla no ve ningún cambio.
- Registro de auditoría honesto. Cada llamada se registra, incluidos los intentos denegados, junto con el usuario o la conexión que hizo la llamada, las claves de los argumentos y una nota breve solo con identificadores de lo que tocó. El contenido de texto libre de los argumentos nunca se almacena, y el registro vive en tu propia base de datos.
- Acotado por construcción. Sin acceso arbitrario a opciones o metadatos, sin ejecución de código. Las subidas se validan por sus bytes reales contra una lista de permitidos de imágenes, y una subida por URL rechaza objetivos privados, de bucle local o de enlace local sin seguir redirecciones. Un usuario nuevo recibe el rol predeterminado, nunca administrador, y el último administrador nunca puede ser eliminado. Cualquier acción destructiva está desactivada por defecto, controlada por capacidades y dirigida a la Papelera cuando es compatible.
- Controles de seguridad opcionales. Activa un límite de velocidad por minuto, una lista de permitidos por IP, un modo de forzar a borrador o un límite de longitud de título. Los cuatro permanecen desactivados hasta que los configures.
- Ningún contenido sale de tu sitio. El plugin no contacta a ningún proveedor de IA y no tiene telemetría; consulta Servicios Externos a continuación para las dos solicitudes salientes que puede hacer por sí solo.
- Dos formas de conectarse. Aprueba un agente a través de OAuth (sin secreto en un archivo de configuración) o apunta un usuario dedicado de bajo privilegio a una Contraseña de Aplicación; una pantalla guiada construye la configuración por ti. Una Contraseña de Aplicación es una credencial de todo el sitio limitada solo por el rol de ese usuario, por lo que los límites propios de este plugin (lista de permitidos, mínimo de alto riesgo, registro de auditoría) se aplican solo a las llamadas a través de su punto final MCP. OAuth no tiene tal límite, ya que un token emitido por este plugin solo autentica este único punto final.
🤖 Construido sobre la API de Habilidades de WordPress y el Adaptador MCP
WordPress 6.9 incluye la API de Habilidades y el Adaptador MCP oficial (wordpress/mcp-adapter). Agent Abilities for MCP registra un conjunto seleccionado y gobernado de habilidades sobre ellos, en lugar de inventar su propio protocolo o servidor, por lo que no hay transporte personalizado en el que confiar.
📦 179 habilidades gobernadas
El plugin incluye 179 habilidades gobernadas: 85 en el núcleo de WordPress y 94 de integraciones detectadas automáticamente, todas desactivadas hasta que las actives, limitadas, controladas por capacidades y registradas. También puede puentear habilidades de tus otros plugins (ver más abajo).
Núcleo de WordPress (85 habilidades). Lecturas más escrituras protegidas en todo tu sitio:
- 📝 Publicaciones y Páginas: listar, leer, crear, actualizar y eliminar, con acciones destructivas desactivadas por defecto y eliminaciones dirigidas a la Papelera.
- 🏷️ Términos y Taxonomías: gestionar categorías, etiquetas y términos de taxonomías personalizadas.
- 💬 Comentarios: leer y moderar la cola de comentarios.
- 🖼️ Medios: listar y leer la biblioteca, y añadir imágenes desde datos en línea o una URL HTTPS, validadas por sus bytes reales contra una lista de permitidos.
- 🗂️ Metadatos de Publicaciones: leer y escribir solo claves de metadatos permitidas por el administrador; las claves protegidas, con prefijo de guion bajo y de autenticación nunca pueden ser permitidas.
- 👥 Usuarios: leer y gestionar usuarios dentro de los límites de capacidad; un usuario nuevo recibe el rol predeterminado, nunca administrador, y el último administrador no puede ser eliminado.
- 🧭 Estructura del sitio: trabajar con menús y las piezas estructurales que mantienen unido el sitio.
- 🕓 Historial de revisiones: leer el rastro de revisiones del contenido.
- 🧱 Bloques y Plantillas: trabajar con bloques reutilizables, temas y plantillas.
- ⚙️ Ajustes limitados y salud del sitio: un conjunto de ajustes estrictamente limitado, más estado de salud del sitio y de plugins de solo lectura.
- 🔍 Búsqueda en todo el sitio: una búsqueda que abarca todos los tipos de publicación a la vez.
Integraciones (94 habilidades). Detectadas automáticamente por plugin activo, desactivadas hasta que las actives, controladas por capacidades, registradas y solo presentes mientras ese plugin esté activo:
- 🛒 WooCommerce MCP (52 habilidades): leer y escribir productos, pedidos y clientes para ayudar a gestionar tu tienda. Estas tocan datos personales (nombres, correos electrónicos, direcciones), por lo que están detrás de un aviso administrativo claro y permanecen desactivadas hasta que se activen.
- 🧩 Advanced Custom Fields (7 habilidades): leer y escribir datos de campos ACF; como WooCommerce, estas pueden alcanzar datos personales y están detrás del mismo aviso.
- 📈 Rank Math SEO (5 habilidades): leer y gestionar datos de SEO de Rank Math.
- 📈 Yoast SEO (3 habilidades): leer y gestionar datos de SEO de Yoast.
- 📈 All in One SEO (3 habilidades): leer y gestionar datos de AIOSEO.
- 📅 The Events Calendar (13 habilidades): leer y gestionar eventos, sedes y organizadores.
- 🎫 Event Tickets (3 habilidades): leer boletos y asistentes de un evento. No se expone ninguna escritura de compra de boletos.
- 📈 Slim SEO (2 habilidades): leer y gestionar datos de Slim SEO.
- 🎨 Avada / Fusion Builder (2 habilidades): leer el marcado crudo de Fusion Builder de una página y reemplazar texto sin alterar el diseño de shortcodes.
- 📍 GeoDirectory (4 habilidades, desactivadas por defecto): leer y gestionar listados de negocios y lugares; permanece desactivado incluso cuando está activo, actívalo en la pestaña de Integraciones.
Se planean más integraciones.
🔗 Habilidades de tus otros plugins (nuevo en 1.1.0)
WordPress 6.9 permite que cualquier plugin registre sus propias habilidades, no solo este, y Agent Abilities for MCP también puede incorporarlas. Las habilidades de otros plugins activos aparecen en una pantalla dedicada de Otros plugins, agrupadas por plugin, todas desactivadas hasta que las actives; luego se convierten en herramientas MCP gobernadas bajo las mismas reglas que el catálogo integrado: limitadas, verificadas por capacidades, con límite de velocidad y registradas solo con identificadores.
Un límite que vale la pena conocer: como es el código del otro plugin el que hace el trabajo, WordPress solo puede verificar la respuesta de una habilidad puenteada contra una descripción si ese plugin publica una. La gobernanza anterior (permisos, limitación de alcance, límite de velocidad, registro de auditoría) se aplica en su totalidad de cualquier manera.
Así que no estás limitado a las integraciones incluidas aquí: cualquier plugin que hable la API de Habilidades puede ser entregado a tu agente, con el conjunto completo de un plugin activado de una vez. El comando WP-CLI incluido wp aafm catalog export imprime las habilidades descubribles de un sitio como JSON.
Páginas de constructores de páginas: rechazadas, no rotas silenciosamente
Elementor, Divi, Beaver Builder y Avada mantienen su diseño fuera del contenido normal de la publicación, por lo que una escritura que reporta éxito puede dejar el front-end exactamente como estaba. Desde 1.7.4 el plugin verifica antes de escribir y rechaza la llamada con un error que nombra al constructor que posee la página. Esto es una protección, no una integración con ninguno de ellos, y OptimizePress aún no está cubierto.
Conecta Claude a WordPress
Instala el plugin, activa las habilidades que quieres que Claude tenga, añade el punto final MCP de tu sitio como conector personalizado en Claude y aprueba el inicio de sesión OAuth una vez. Sin clave API ni archivo de configuración. La aplicación claude.ai, Claude Desktop y Claude Code comparten este flujo, y Claude solo actúa como el usuario de WordPress que lo aprobó.
Conecta ChatGPT a WordPress
Activa el Modo Desarrollador en ChatGPT (Configuración, luego Conectores, luego Avanzado), añade el punto final MCP de tu sitio como conector personalizado y aprueba una vez a través de OAuth: una función beta en los planes de pago de ChatGPT, no un límite del plugin. ChatGPT entonces solo alcanza las habilidades que activaste, actuando como el usuario de WordPress que aprobó la conexión.
🔌 Conecta ChatGPT, Claude, Cursor y otros clientes MCP
Conecta cualquier cliente MCP que pueda alcanzar tu punto final. Las aplicaciones en la nube alojadas (ChatGPT, Claude y Manus) se conectan por URL: añades tu punto final como conector personalizado y apruebas el inicio de sesión una vez a través de OAuth, sin archivo de configuración que editar ni puente que instalar. ChatGPT necesita el modo desarrollador activado, lo que requiere un plan de pago. La entrada única de Claude cubre tanto la aplicación web de Claude como Claude Desktop, ya que comparten el mismo flujo de conector. Los editores y clientes de línea de comandos (Claude Code, Cursor, VS Code, Windsurf y Gemini CLI) se conectan directamente o a través del puente de código abierto mcp-remote que se ejecuta en tu propia máquina. También puedes conectarte con una Contraseña de Aplicación en lugar de OAuth, apuntando un usuario de bajo privilegio al punto final. La aplicación Gemini alojada aún no es compatible.
Instalación
- Sube el plugin al directorio
/wp-content/plugins/agent-abilities-for-mcp, o instálalo desde la pantalla de plugins de WordPress. - Actívalo desde la pantalla de Plugins.
- Abre el menú Agent Abilities for MCP en tu barra lateral de administración. En la pestaña Abilities, activa solo las habilidades que quieras que el agente tenga. Todo comienza apagado.
- En la pestaña Connection, copia el endpoint MCP de tu sitio. La ruta más sencilla es OAuth: pega el endpoint en tu cliente MCP y aprueba la conexión una vez en el navegador, donde el agente actúa como tu propia cuenta.
- ¿Prefieres no usar OAuth, o estás en un cliente que no puede? Crea el usuario agente dedicado de bajo privilegio que ofrece la pestaña Connection, genera una Contraseña de Aplicación para él y conéctate con esa en su lugar.
- Usa la comprobación de conexión en la pestaña Connection para confirmar que el endpoint es accesible desde tu servidor.
Configuración
El endpoint MCP de tu sitio vive en una ruta fija bajo tu API REST (reemplaza example.com con tu propio dominio):
https://example.com/wp-json/agent-abilities-for-mcp/mcp
Las aplicaciones alojadas (ChatGPT, Claude y Manus) toman esa URL directamente: añádela como conector personalizado y aprueba la conexión una vez mediante OAuth. Los editores y clientes de línea de comandos usan un archivo de configuración en su lugar. El bloque estándar ejecuta el puente de código abierto mcp-remote en tu propia máquina, que te guía a través de la misma aprobación OAuth única en el navegador, por lo que el archivo de configuración no guarda ningún secreto. El puente mantiene los tokens que recibe en tu propia máquina, bajo ~/.mcp-auth:
{
"mcpServers": {
"agent-abilities": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://example.com/wp-json/agent-abilities-for-mcp/mcp"]
}
}
}
VS Code guarda el mismo bloque como servers en .vscode/mcp.json en lugar de mcpServers. ¿Prefieres una Contraseña de Aplicación en lugar de OAuth? Crea el usuario agente dedicado de bajo privilegio que ofrece la pestaña Connection, luego conéctate a través del puente @automattic/mcp-wordpress-remote con las credenciales en su bloque env:
{
"mcpServers": {
"agent-abilities": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://example.com/wp-json/agent-abilities-for-mcp/mcp",
"WP_API_USERNAME": "your-agent-user",
"WP_API_PASSWORD": "PASTE-APPLICATION-PASSWORD-HERE"
}
}
}
}
No tienes que escribir ninguno de los dos bloques a mano: la pestaña Connection genera ambos, completados con tu endpoint real, con una variante para Windows y una comprobación de accesibilidad.
Preguntas Frecuentes
Más ayuda: Documentación | Conectar un cliente | Seguridad y divulgación | Foro de soporte
¿Cómo conecto Claude a WordPress?
Instala el plugin, activa las habilidades que quieras en la pestaña Abilities, luego copia tu endpoint MCP desde la pestaña Connection y añádelo a Claude como conector personalizado. Aprueba el inicio de sesión una vez en el navegador. La aplicación web claude.ai y Claude Desktop usan ese mismo flujo; Claude Code se conecta desde la línea de comandos.
¿El agente obtiene acceso de administrador?
No. El agente se autentica como el usuario de WordPress que tú le asignes. Apúntalo al usuario dedicado de bajo privilegio que el plugin puede crear para ti, y solo podrá hacer lo que ese usuario pueda hacer. Cada habilidad también vuelve a comprobar la capacidad del usuario antes de ejecutarse, por lo que una conexión nunca puede llamar a una herramienta que su usuario no tenga permitido usar.
¿Qué controles de permisos tengo sobre el agente de IA?
Agent Abilities for MCP te da tres capas. Cada habilidad está apagada hasta que la actives. El agente se conecta como un usuario real de WordPress que tú eliges, por lo que solo puede hacer lo que el rol de ese usuario ya permite. Cada llamada vuelve a comprobar la capacidad de ese usuario antes de ejecutarse, y una llamada que falla la comprobación es denegada y registrada.
¿Puedo dar a una conexión menos acceso que a otra?
Sí. Más allá de la lista global de habilidades habilitadas, puedes añadir una lista de permitidos por rol, una lista de permitidos por conexión, o ambas, en la pantalla Connections. Cualquiera de ellas solo reduce lo que ya estaba habilitado: una habilidad aún tiene que superar la lista global, luego la lista del rol correspondiente, luego la lista de la conexión correspondiente, antes de que un agente pueda llamarla. No hay un ámbito más fino que el rol y la conexión OAuth: una Contraseña de Aplicación hereda todo el rol de su usuario, sin un límite separado por contraseña. Deja la pantalla en paz y nada cambia; cada conexión existente sigue funcionando exactamente como antes.
¿Hay un registro de auditoría de lo que hizo el agente?
Sí. Agent Abilities for MCP escribe cada llamada de habilidad en un registro de auditoría en tu propia base de datos, incluidos los intentos denegados. Cada entrada registra el usuario que actúa, el nombre de la habilidad, las claves de los argumentos y una nota breve de lo que tocó la llamada: solo valores identificativos pequeños, como ids, nombres de claves de metadatos, slugs y valores de estado. El contenido de texto libre de los argumentos, como el cuerpo de una publicación o una dirección de correo electrónico, nunca se almacena. Puedes borrar el registro desde la pantalla de administración.
¿Es seguro conectar un agente de IA a mi sitio WordPress?
Sí, cuando la conexión está limitada, que es para lo que está construido este plugin. El agente se conecta como un usuario real de WordPress de mínimo privilegio que tú eliges, nunca una clave equivalente a administrador. Cada habilidad está apagada hasta que la actives, cada llamada vuelve a comprobar la capacidad del usuario antes de ejecutarse, y cada llamada se registra, incluidos los intentos denegados. El plugin en sí nunca tiene una clave equivalente a administrador.
¿Qué puede hacer realmente un agente?
Solo las habilidades que hayas habilitado, y solo dentro de las capacidades del usuario vinculado. El catálogo son lecturas y escrituras protegidas sobre publicaciones, páginas, términos, comentarios, medios, metadatos de publicaciones y estructura del sitio, más el historial de revisiones y una búsqueda que abarca todos los tipos de publicación a la vez. No hay habilidad para cambiar opciones arbitrariamente, cambiar roles o ejecutar código. La única habilidad que obtiene una URL remota es una subida de medios: solo acepta https, rechaza un destino que resuelva a una dirección privada, de bucle local o de enlace local, nunca sigue una redirección, y permanece apagada hasta que la actives como cualquier otra habilidad. Un agente solo puede escribir metadatos de publicaciones para claves que un administrador haya permitido explícitamente, y las claves protegidas, con prefijo de guion bajo y de autenticación nunca pueden ser permitidas. Las eliminaciones mueven el contenido a la Papelera donde la habilidad lo soporta, y las permanentes están apagadas por defecto y limitadas por capacidad.
¿Un agente romperá mi página de Elementor o Divi?
No, rechazará la escritura en su lugar. Elementor, Divi, Beaver Builder y Avada almacenan su diseño en otro lugar que no es el contenido normal de la publicación, por lo que una edición sin protección podría informar éxito mientras no cambia nada visible, o corromper el marcado propio del constructor. El plugin comprueba la propiedad del constructor de páginas antes de cualquier escritura de contenido y rechaza la llamada con un error que nombra al constructor que posee la página, para que te enteres de inmediato en lugar de descubrirlo más tarde. Edita esa página en su propio constructor en su lugar. Esto es un guardián de rechazo, no una integración con ninguno de estos constructores, y OptimizePress aún no está cubierto.
¿Cómo maneja el plugin las herramientas y el acceso?
Agent Abilities for MCP envía todo apagado, vincula al agente a un usuario de WordPress que tú eliges, vuelve a comprobar la capacidad de ese usuario en cada llamada y registra cada llamada, incluidas las denegaciones. Añades alcance a medida que construyes confianza, no todo a la vez. Cambia el recuento bruto de herramientas por control que puedas auditar.
¿Es gratis?
Sí. Agent Abilities for MCP es gratis en WordPress.org, sin nivel de pago, sin clave API que comprar y sin límites de uso añadidos por el plugin.
¿Funciona con mis otros plugins?
Sí, para un conjunto de plugins compatibles. Cuando uno está activo, Agent Abilities for MCP añade habilidades para él bajo las mismas reglas que el núcleo: detectadas automáticamente, apagadas hasta que las actives, limitadas por capacidad y registradas. De serie cubre WooCommerce, Advanced Custom Fields y SEO (Yoast, Rank Math y All in One SEO). Las habilidades de WooCommerce y ACF pueden leer y escribir datos reales de clientes y pedidos, incluidos datos personales como nombres, correos electrónicos y direcciones, por lo que están detrás de un aviso claro en la administración y permanecen apagadas hasta que las actives. Más allá de estas integraciones integradas, el plugin también puede puentear habilidades que cualquiera de tus otros plugins registre a través de la API de Abilities de WordPress. Se planean más integraciones.
¿Puedo exponer habilidades de mis otros plugins?
Sí. WordPress 6.9 permite que cualquier plugin registre habilidades, y Agent Abilities for MCP puede puentear las declaradas por tus otros plugins activos. Abre Other plugins en la administración, donde están agrupadas por el plugin que las registró y comienzan apagadas. Activa una y se convierte en una herramienta MCP gobernada bajo las mismas reglas que todo lo demás: limitada al usuario vinculado, comprobada por capacidad en cada llamada, con límite de velocidad y registrada. Puedes habilitar o deshabilitar todo el conjunto de un plugin a la vez, y nada se expone hasta que lo elijas.
¿Puede un agente gestionar mis eventos, entradas o listados de directorio?
Sí, cuando el plugin correspondiente está activo. Con The Events Calendar activo, un agente puede leer y gestionar eventos, sedes y organizadores; con Event Tickets activo, puede leer entradas y asistentes, aunque no se expone ninguna escritura de compra de entradas. Con GeoDirectory activo, puede leer y gestionar listados de negocios y lugares, pero esa integración permanece apagada incluso cuando el plugin está activo: la activas tú mismo en la pestaña Integrations, a diferencia de la mayoría de las otras integraciones, que simplemente están apagadas hasta que se habilitan. Todas estas habilidades siguen las mismas reglas que todo lo demás: apagadas hasta que las actives, limitadas por capacidad y registradas.
¿Es esto lo mismo que la API de Abilities de WordPress, o el adaptador MCP oficial?
Está construido sobre ambos. WordPress 6.9 incluye la API de Abilities y el Adaptador MCP oficial; Agent Abilities for MCP registra un conjunto curado y gobernado de habilidades sobre ellos en lugar de inventar su propio protocolo o transporte. Así que no hay un servidor hecho a medida en el que confiar, y el plugin hereda el comportamiento del estándar. Lo que añade es la capa de gobernanza: el catálogo apagado por defecto, el control de capacidades, los controles de seguridad y el registro de auditoría.
¿En qué se diferencia de otros plugins MCP de WordPress?
La mayoría de los plugins MCP para WordPress compiten en cuántas herramientas pueden exponer. Agent Abilities for MCP compite en control. Todo está apagado hasta que lo actives, el agente actúa como un usuario real de WordPress de mínimo privilegio en lugar de una clave equivalente a administrador, cada llamada vuelve a comprobar la capacidad de ese usuario antes de ejecutarse, y cada llamada se registra, incluidas las denegaciones. Se basa en la API de Abilities y el Adaptador MCP oficiales de WordPress en lugar de un servidor hecho a mano, por lo que no hay transporte personalizado en el que confiar. Cambia el recuento bruto de herramientas por alcance que puedas auditar y ampliar a medida que construyes confianza.
¿Cuál es la diferencia entre esto y la API REST de WordPress?
La API REST expone endpoints en bruto. MCP describe las habilidades de tu sitio como herramientas descubribles que un agente de IA puede razonar y llamar, y este plugin envuelve cada una en una capa de gobernanza: apagada por defecto, limitada por capacidad en cada llamada y registrada. Es el mismo WordPress subyacente, gobernado para que un agente pueda manejarlo dentro de los límites que establezcas.
¿Qué versión de WordPress necesito?
WordPress 6.9 o más reciente, que es donde están disponibles la API de Abilities y el Adaptador MCP oficial sobre los que se construye el plugin. Se requiere PHP 7.4 o más reciente.
¿Qué clientes de IA funcionan?
Cualquier cliente MCP que pueda alcanzar el endpoint de tu sitio. Con OAuth pegas la URL del endpoint en el cliente y apruebas la conexión una vez en el navegador. Las aplicaciones en la nube alojadas (ChatGPT, Claude y Manus) se conectan de esta manera por URL, sin puente que instalar. Claude Desktop, Claude Code, Cursor, VS Code, Windsurf y Gemini CLI también se conectan, algunos directamente y otros a través del puente mcp-remote que se ejecuta en tu propia máquina. También puedes conectarte con una Contraseña de Aplicación en lugar de OAuth, aunque las aplicaciones en la nube alojadas usan solo OAuth. La aplicación Gemini alojada aún no es compatible.
¿Funciona con ChatGPT?
Sí. En ChatGPT, activa el modo desarrollador, luego añade tu sitio como conector personalizado usando tu URL de endpoint MCP y aprueba la conexión una vez mediante OAuth. Esto necesita un plan de ChatGPT que permita conectores personalizados. Claude Desktop, Claude Code, Cursor, VS Code, Windsurf y Gemini CLI también funcionan, algunos directamente y otros a través del puente mcp-remote que se ejecuta en tu propia máquina.
¿Necesito exponer mi computadora para conectar un sitio remoto?
No. Tu sitio de WordPress es el servidor MCP, por lo que el endpoint ya es público a través de HTTPS en el propio sitio, no en tu computadora. Conectar un cliente alojado como ChatGPT o Claude a una instalación remota de WordPress significa pegar la URL de ese endpoint en el cliente y aprobar un inicio de sesión OAuth en el navegador. Sin túnel, sin proxy inverso, sin proceso puente local que mantener en ejecución. Un puente solo es necesario para un cliente que no puede abrir una conexión MCP remota por sí mismo, como se cubrió anteriormente.
¿Puede ChatGPT editar mi sitio de WordPress?
Solo las partes que tú permitas. ChatGPT llega a tu sitio a través de un conector personalizado que tú mismo agregas, actúa como el usuario de WordPress que aprobó la conexión y no ve nada más allá de las habilidades que activaste. Cada escritura se verifica por capacidad antes de ejecutarse y se registra en el registro de auditoría, y puedes detener todas las escrituras de una vez con el modo de solo lectura.
Estoy en Windows y la configuración no arranca.
Los clientes MCP de Windows no pueden iniciar el shim de npx por nombre. Envuélvelo en cmd: establece command a cmd y coloca /c, npx al frente de args. La pestaña Conexión tiene una pestaña de Windows que genera esto por ti.
Mi agente no puede conectarse a un sitio local o de staging.
Los entornos locales como DDEV, Local y Valet sirven un certificado autofirmado que Node rechaza, por lo que el proxy nunca llega a WordPress. Solo para pruebas locales, agrega "NODE_TLS_REJECT_UNAUTHORIZED": "0" al bloque env (la pestaña Conexión lo agrega automáticamente cuando detecta un sitio local). No envíes esa configuración a producción; un sitio público tiene un certificado de confianza y no lo necesita.
Mi agente no puede conectarse y mi sitio está detrás de Cloudflare u otro CDN.
Un CDN o firewall frente a WordPress puede detener al agente antes de que su solicitud llegue a tu sitio. El culpable común es la configuración "Bloquear bots de IA" de Cloudflare (y el Modo de lucha contra bots súper): el agente termina de iniciar sesión, pero su solicitud MCP se bloquea en el borde porque proviene de los servidores del cliente de IA con un User-Agent de IA. El inicio de sesión aparece en el Registro de actividad y no le siguen llamadas de habilidades.
Para confirmarlo, abre el registro de eventos de seguridad o firewall de tu CDN y busca una solicitud bloqueada al endpoint MCP del plugin (su ruta termina en /mcp) desde el rango de IP del cliente de IA, alrededor del momento en que intentaste conectarte. La entrada nombra la regla que lo bloqueó.
La solución es dejar pasar ese endpoint. En Cloudflare, desactiva "Bloquear bots de IA" en Seguridad, Bots, o agrega una regla que omita la protección de bots para la ruta /mcp para que el resto de tu sitio permanezca cubierto. Otros CDN y plugins de seguridad tienen el mismo tipo de lista de permitidos o excepción.
¿Hay límite de velocidad?
Sí. Establece un límite por minuto en la pestaña Configuración bajo "Límite de velocidad (por minuto)". Cada conexión puede hacer esa cantidad de llamadas de agente por minuto, contadas por usuario de agente; 0 desactiva el límite. Las llamadas que superen el límite se deniegan y se registran en la pestaña Registro de actividad, para que puedas detectar una conexión que sigue alcanzándolo.
¿Envía mi contenido a OpenAI, Anthropic o Google?
No. El plugin nunca se conecta a OpenAI, Anthropic, Google ni a ningún otro proveedor de IA. Tu propio cliente de IA se conecta a tu sitio y llama a las habilidades que tienes habilitadas. Lo que tu cliente de IA haga con los resultados después es entre tú y quien fabrica ese cliente. (Lo único que el plugin en sí puede obtener es una URL, si habilitas la habilidad de subir desde URL; consulta "¿Envía datos a algún lugar?" más abajo).
¿Envía datos a algún lugar?
Sin proveedor de IA y sin telemetría. Tu agente habla directamente con tu sitio. La única excepción es la habilidad de subir medios desde URL, desactivada por defecto: si la activas, obtiene la URL que tu cliente de IA le da (solo HTTPS, direcciones privadas y reservadas rechazadas, sin seguir redirecciones) para que ese archivo se agregue a tu biblioteca de medios. Esa obtención es un GET HTTP ordinario, como cualquier solicitud a esa dirección, su destino ve la URL, la IP de tu sitio y cuándo ocurrió la solicitud, pero no lleva ninguno de tus contenidos, credenciales u otros datos del sitio; solo extrae el archivo en la URL que pediste obtener.
¿Qué registra el registro de auditoría?
Cada llamada de habilidad, ya sea que comenzó, tuvo éxito, falló o fue denegada, con el usuario que actuó, el nombre de la habilidad, las claves de argumentos y una nota breve de lo que tocó la llamada: solo valores identificativos pequeños, como IDs, nombres de claves de metadatos, slugs y valores de estado. El contenido de texto libre de argumentos, un cuerpo de publicación o una dirección de correo electrónico, nunca se almacena. El registro de actividad vive en tu propia base de datos y se puede borrar desde la pantalla de administración.
¿Desinstalar el plugin revoca el acceso de mi agente?
No por sí mismo. Desinstalar elimina la configuración del plugin y el registro de actividad, y, solo si activaste "Eliminar datos al desinstalar" primero, también sus tablas OAuth. Nunca elimina el usuario de agente dedicado que el plugin puede crear para ti, ni ninguna Contraseña de aplicación emitida para él, porque esas son credenciales ordinarias de cuenta de WordPress que existen fuera de los datos del plugin. Para cortar por completo a un agente, revoca su concesión OAuth desde la pestaña Conexión, o elimina su Contraseña de aplicación o cuenta de usuario desde la pantalla Usuarios, antes o después de eliminar el plugin.
¿Cómo informo un problema de seguridad?
Informa los problemas de seguridad de forma privada en lugar de en el foro de soporte, para que una corrección pueda publicarse antes de que los detalles sean públicos. Usa el contacto de seguridad listado en este repositorio.
Servicios externos
Este plugin no contacta a ningún proveedor de IA y no incluye análisis ni telemetría.
Realiza dos tipos de solicitudes HTTP salientes por sí mismo: la verificación de alcance de la pestaña Conexión (una llamada de mismo origen que confirma que tu endpoint MCP responde) y, solo cuando habilitas la habilidad de subir medios desde URL, desactivada por defecto, una obtención de la URL HTTPS exacta que tu cliente de IA proporciona para que ese archivo se agregue a tu biblioteca de medios. Esa obtención está endurecida contra SSRF para objetivos privados, reservados y basados en redirecciones, y no lleva ninguno de tus contenidos, credenciales o datos del sitio; solo lee lo que ya es público en esa URL.
Conectar un cliente lo hace el cliente, no este plugin. Algunos llegan a tu endpoint directamente; otros usan un puente como el de código abierto mcp-remote o @automattic/mcp-wordpress-remote, ejecutado en tu propia máquina y no incluido con este plugin.
Historial de cambios
1.7.5
- Característica: La pestaña Conexión cambia el área de texto de lista de permitidos por un selector de casillas de verificación buscable y agrega selectores de rol y cliente, un control de copia de ID de cliente, tablas paginadas y búsqueda de habilidades entre pestañas.
- Corrección: Una búsqueda de habilidades sin coincidencias dejaba el botón Guardar varado en una tarjeta vacía; la barra de guardado ahora se oculta y regresa con los resultados.
- Corrección: Los estados de hover y seleccionado del selector de cliente se veían idénticos; el hover ahora es solo un contorno de borde.
- Corrección: El orden de habilidades ahora sobrevive a un re-guardado, una búsqueda obsoleta se limpia con la navegación por teclado, una lista de permitidos grande ya no renderiza cada casilla al cargar, y los nuevos controles tienen nombres accesibles y traducciones.
- Corrección: Las escrituras de publicaciones, bloques y plantillas ahora confirman lo que se guardó, una migración OAuth atascada ya no puede re-habilitar un interruptor que desactivaste, los conteos de comentarios ya no insinúan comentarios ocultos, y una revocación de token fallida ya no informa éxito.
1.7.4
- Característica: 26 nuevas habilidades cubren The Events Calendar, Event Tickets, Slim SEO, Avada y GeoDirectory, además de subir medios directamente desde una URL. Todas permanecen desactivadas hasta que las actives.
- Característica: Un guardián de constructores de páginas rechaza una escritura que haría silenciosamente nada en una página propiedad de Elementor, Divi, Beaver Builder o Avada. Una nueva lista de permitidos reduce lo que cada rol o conexión puede alcanzar.
- Corrección: El aumento a mcp-adapter 0.6.1 cierra un error de multisitio donde una conexión real de subsitio se informaba como fallida.
- Corrección: Varias rutas OAuth trataban una lectura de base de datos fallida como permiso concedido. Un cliente desactivado, un registro de cliente faltante o un límite de registro ilegible ahora rechazan la solicitud en lugar de dejarla pasar.
- Corrección: Las concesiones pertenecientes a un usuario eliminado se limpian, la pantalla Conexiones muestra el rol actual de cada identidad, y un lote de correcciones más pequeñas llega a WooCommerce, las pantallas de administración y la pestaña de conexión.
1.7.3
- Corrección: El plugin ahora es totalmente compatible con una caché de objetos persistente de WordPress (Redis, Memcached o un drop-in del propio host): un interruptor que apagas permanece apagado, y un cambio que no se aplicó se informa en lugar de registrarse como hecho.
- Corrección: Restablecer a valores predeterminados y eliminar al desinstalar también limpian las entradas de caché de opciones del plugin, para que una caché obsoleta no pueda traer de vuelta una configuración después de un restablecimiento.
1.7.2
- Característica: La pantalla de consentimiento que un agente ve al iniciar sesión fue reconstruida. Lleva una marca real, tu Icono de sitio y el icono del conector cuando el plugin lo reconoce por su host de redirección verificado.
- Característica: El Registro de actividad ahora registra cada solicitud MCP que llega a WordPress. Un inicio de sesión sin llamadas después significa que un CDN o firewall detuvo al agente antes de que llegara.
- Corrección: ChatGPT no podía conectarse en sitios donde el registro dinámico de clientes estaba desactivado. Tiene su propio interruptor en la pestaña Configuración nuevamente, activado por defecto, y las instalaciones existentes se activan al actualizar.
- Corrección: Tres errores de conexión han desaparecido: el paso de autorización OAuth distorsionaba las direcciones de redirección codificadas en porcentaje, una escritura de sesión fallida devolvía un ID de sesión que no existía, y un esquema de herramienta muy grande podía agotar la memoria mientras se construía la lista de herramientas.
- Corrección: Correcciones de precisión más pequeñas en WooCommerce, ACF y Rank Math, además de una verificación de capacidad incorrecta en eliminar-revisión, opciones OAuth dejadas atrás al desinstalar, y una nueva FAQ de readme para CDN que bloquean al agente en el borde.
1.7.1
- Corrección: lang:"all" medía un conjunto parcial de idiomas y aun así informaba éxito. Ahora consulta cada idioma de WPML configurado para entradas, páginas, medios, términos, búsqueda y productos de WooCommerce, y el helper de conteo compartido suma todos ellos.
- Corrección: La visibilidad de una herramienta en tools/list podía discrepar con lo que su verificación de permisos en tiempo de ejecución realmente permitía, en ambas direcciones, ocultando herramientas que un agente podía usar y anunciando unas que no podía. El descubrimiento se reconcilia con los permisos en tiempo de ejecución en tipos de contenido personalizados, páginas y campos de término de ACF.
- Corrección: La ruta de metadatos de recursos protegidos RFC 9728 devolvía 404 en la ruta que los agentes realmente solicitan, rompiendo las conexiones de Claude para al menos un usuario que lo reportó. Ahora se resuelve en la URL con sufijo de ruta que especifica la norma.
- Corrección: moderate-comment informaba fallo cuando un comentario ya estaba en el estado solicitado (ya aprobado, ya spam, etc.), aunque no hubiera nada malo. Ahora informa éxito en una operación sin efecto y ya no lo registra como error de auditoría.
- Corrección: Varias rutas de código podían cortocircuitar o rechazar una llamada antes de que terminara, dejando una fila "iniciada" atascada o ilegible en el registro de auditoría en lugar de un resultado real, incluso en núcleos de WordPress anteriores a 7.1. Cada invocación ahora recibe un token único y cierra su fila limpiamente.
- Corrección: La salida puenteada de la propia capacidad de un plugin de terceros podía ocultar un objeto inseguro uno o dos niveles de profundidad. El puente ahora recurre en el resultado para encontrarlo y rechaza un objeto desnudo o ambiguo en lugar de asumir que es seguro. La salida puenteada no se redacta como la salida de las capacidades propias de este plugin, y el readme ahora lo dice.
- Corrección: Las subidas de medios ahora pasan por el manejo de sideload propio de WordPress y re-sanean el contenido del adjunto resultante, y el límite de tamaño en píxeles que ya no coincidía con esa ruta ha desaparecido.
- Corrección: Un lote de correcciones de exactitud más pequeñas en WooCommerce, ACF, AIOSEO, Rank Math y Yoast: las escrituras y lecturas pasan por las funciones propias de cada proveedor en lugar de re-derivar su comportamiento, además de correcciones en descripciones de herramientas, invalidación de caché y algunas páginas que tenían el nivel de descubrimiento incorrecto.
- Tarea: La desinstalación ahora limpia ambos eventos cron diarios, no solo el vinculado a la eliminación de datos.
1.7.0
- Característica: Las secciones de la pestaña Abilities ahora tienen un botón "Habilitar todas las escrituras" junto a "Habilitar todas las lecturas". Marca las escrituras ordinarias y deja las eliminaciones y las capacidades de alto riesgo intactas.
- Característica: El registro de auditoría registra más. Las eliminaciones permanentes nombran lo que eliminaron, y las actualizaciones de meta de términos, meta de usuario y ajustes del sitio nombran las claves que escribieron. Registra nombres e identificadores, no el texto libre que llevaba una llamada.
- Corrección: Una solicitud de autorización en vuelo cuando revocaste una concesión aún podía acuñar un código, y el endpoint de token nunca volvía a verificar el consentimiento, por lo que ese código se canjeaba por un token funcional después de que la pantalla dijera que la revocación había tenido éxito. El consentimiento se verifica de nuevo en el canje.
- Corrección: Los ajustes de pasarela de pago devolvían claves de credenciales en camelCase completas y no marcaban ninguna como redactada. apiLoginID y transactionKey de Authorize.Net son el caso real.
- Corrección: Cuatro escrituras de ACF destruían contenido almacenado y luego informaban fallo: un diseño de contenido flexible irresoluble, una limpieza a través de una dirección casi coincidente, una verificación de meta protegida que leía la dirección del llamante en lugar de la de ACF, y una escritura de subcampo que aterrizaba bajo un nombre no declarado. Todas se rechazan antes de escribir nada.
- Corrección: WooCommerce contaba los reembolsos como pedidos, por lo que una tienda con seis pedidos y tres reembolsos informaba nueve. Las variaciones se validaban contra un filtro de visualización en lugar del producto padre, una eliminación de variación informaba fallo en éxito, y una búsqueda de pedido que lanzaba una excepción escapaba de su rollback.
- Corrección: Dos rechazos sobre MCP decían "Permiso denegado" cuando ese no era el problema. Establecer texto alternativo lo provocaba porque WordPress almacena alt bajo una clave protegida, y el rechazo ahora nombra aafm-update-media en su lugar. Una llamada que faltaba un argumento requerido también lo provocaba, y ahora recibe el error de esquema que nombra lo que falta.
- Corrección: Los caracteres invisibles se eliminan del texto en su camino hacia el almacenamiento, cubriendo campos de WooCommerce, SEO y ACF, direcciones de pedido y texto de entrada almacenado. Las eliminaciones permanentes dejan de ofrecer recuperación que el sitio no puede entregar, y una capacidad que no declara riesgo se trata como una eliminación permanente. Además, correcciones más pequeñas en zonas de envío, listados de menús en WordPress 6.9, escrituras de contenedores ACF, el asistente de primera ejecución y mensajes de rechazo que nombraban la causa incorrecta.
- Tarea: Probado contra WordPress 7.1. Una pasada de accesibilidad sobre las pantallas de administración cubre operación con teclado, anillos de enfoque bajo colores forzados y nombres adecuados en alternadores y encabezados de tabla. El mantenimiento de OAuth es más robusto, con tablas InnoDB para que el trabajo de tokens se revierta y un cron de limpieza que se auto-repara en subsitios. Un aviso ahora pide una reseña en wordpress.org una vez que el plugin ha estado llevando tráfico por un tiempo, y se puede descartar para siempre. Los metadatos del repositorio del proveedor ya no se envían a wordpress.org.
1.6.3
- Tarea: Condensó el changelog para que el historial completo de versiones quepa dentro del límite de longitud del listado de wordpress.org, en ambos readmes. Mismas versiones, menos líneas, con las correcciones de seguridad e integridad de datos aún señaladas una por una.
- Tarea: Corrigió un comentario de código que exageraba ligeramente cuándo el cortocircuito de un plugin consumidor es visible para el hook de liberación de límite de tasa.
1.6.2
- Característica: El registro de actividad de administración puede filtrar por "Iniciado", el estado que deja una llamada bloqueada, coincidiendo con lo que la capacidad de registro de actividad ya exponía.
- Corrección: Cerró una brecha de privilegios donde editar un cliente de WooCommerce, o escribir meta de usuario o campos de usuario ACF, solo necesitaba la capacidad de gestionar WooCommerce y podía leer o sobrescribir los detalles de cualquier cuenta. Ahora requieren una capacidad real de edición de usuario y están detrás del bloqueo de alto riesgo.
- Corrección: El límite de tasa en los endpoints OAuth nunca surtía efecto en sitios sin caché de objetos persistente, lo que cubre la mayoría del hosting compartido. Ahora sí, y el límite por usuario ya no cuenta cada llamada dos veces.
- Corrección: Varias escrituras de WooCommerce informaban éxito cuando no pasaba nada: eliminaciones que no eliminaban nada, cambios de estado de pedido que fallaban al aplicarse y reembolsos por línea que silenciosamente se convertían en reembolsos completos. Cada una se confirma o se rechaza antes de informar éxito ahora, y un correo de facturación inválido ya no borra la dirección almacenada.
- Corrección: Los valores malos que solían ser coaccionados silenciosamente ahora se rechazan: fechas de informe de ventas y cupones no analizables, montos de cupón no numéricos, límites negativos, clases de impuestos desconocidas (que se habían archivado bajo Estándar y cambiaban el impuesto del checkout) y un estado de stock establecido mientras la gestión de stock está activa.
- Corrección: Las escrituras de repetidor, grupo y contenido flexible de ACF guardaban sus filas pero informaban un fallo, por lo que un agente reintentaría sobre contenido que ya había publicado; y los campos anidados en diseños de contenido flexible o clon se saneaban como texto plano, aplanando texto enriquecido y dejando pasar un enlace javascript:. Ambos están corregidos, a cualquier profundidad de anidamiento.
- Corrección: Endureció lo que un agente puede ver y alcanzar: una herramienta solo-admin habilitada podía filtrarse en la lista de herramientas de una conexión de menor privilegio, una lectura de cabecera SEO podía devolverse para un tipo de contenido que el operador no había expuesto, y un llamante en una IP bloqueada podía inundar el registro de actividad con filas de denegación.
- Corrección: La activación en multisitio crea las tablas del plugin en cada sitio ahora, incluidos los sitios añadidos después; eliminar un usuario informa que solo se eliminó del sitio actual en lugar de eliminarse por completo; y crear un usuario agente respeta el ajuste de añadir nuevos usuarios de la red.
- Corrección: Corrigió una serie de descripciones de herramientas y divulgaciones de operador que exageraban el comportamiento (qué almacena el registro de actividad, cómo se clavean los mapas ACF, semántica de conteo, reversibilidad de revisiones), y arregló un lote de defectos más pequeños de bloqueo y forma de respuesta en entradas, bloques, comentarios, WPML y lecturas SEO.
- Tarea: Limpió comentarios obsoletos y andamiaje de pruebas muerto, y alineó los stubs de prueba de WooCommerce con lo que el plugin real hace.
1.6.1
- Característica: Una nueva acción aafm_ability_resolved se dispara cuando una llamada termina, para que un monitor de tiempo de actividad o un plugin de registro puedan reaccionar a un fallo en lugar de esperar a que alguien abra wp-admin.
- Característica: La capacidad de registro de actividad devuelve el detalle de cada entrada, para que un agente pueda leer por qué falló una llamada, no solo que falló.
- Corrección: Los mapas vacíos de categoría, etiqueta, campo personalizado, galería, ajustes y usuario devolvían un array donde el esquema declara un objeto, por lo que un cliente MCP estricto rechazaba toda la respuesta. Reportado por un usuario externo como problema #81; el barrido que provocó corrigió el mismo defecto en todo el catálogo.
- Corrección: Llamar a una capacidad puenteada de otro plugin con argumentos podía tumbar el sitio en 1.6.0, porque el puente reescribía el esquema del plugin fuente en una forma que el validador del núcleo de WordPress no puede leer. Esa reescritura ha desaparecido.
- Corrección: El registro de actividad almacenaba el texto crudo de un error inesperado, que para un plugin como WooCommerce a menudo cita el valor que causó el fallo, como un correo o un SKU. Ahora registra el tipo y la ubicación del error, que no pueden llevar tus datos.
- Corrección: Una verificación de permisos que fallaba inesperadamente devolvía el error subyacente al agente conectado y podía vaciar toda la lista de herramientas; ahora deniega la llamada y la registra.
- Corrección: Las lecturas de métodos de envío devolvían los ajustes globales heredados de WooCommerce, vacíos para métodos de zona desde WooCommerce 2.6, por lo que un título o costo que acababas de escribir no aparecía; ahora informan la configuración real por instancia. Una variación ya no afirma que gestiona stock que hereda de su padre.
- Corrección: La validación de cupones y productos que solía bloquearse o guardar un registro malo ahora devuelve un error limpio: un cupón de porcentaje sobre 100 (incluido uno elevado por encima de 100 por un cambio de tipo posterior), un SKU de variación duplicado, un monto negativo y un máximo por debajo del mínimo.
- Tarea: Corrigió texto y un comentario de código: las dos lecturas de métodos de envío y la nota de la pantalla de consentimiento indican que un método lleva sus propios ajustes por instancia, y el redactor de ajustes se describe como la denylist de mejor esfuerzo que es, no denegación por defecto.
1.6.0
- Característica: Modo de solo lectura, un interruptor en la pestaña Settings que detiene que cualquier capacidad que escriba se registre como herramienta MCP, sea lo que sea que esté marcado, y cubre capacidades de otros plugins también. Activarlo o desactivarlo no habilita ni deshabilita nada por sí mismo, por lo que tus selecciones sobreviven, y terminar Quick Connect sin elegir acceso de escritura lo activa en lugar de marcar casillas.
- Característica: Un botón "Habilitar todas las lecturas" en las pestañas Abilities, Integrations y Bridge marca cada capacidad de lectura en una sección y deja las escrituras intactas.
- Característica: El encabezado de página indica la postura del sitio en cada pestaña (solo lectura, lectura más escritura, o lectura más escritura con alto riesgo desbloqueado), calculada a partir de lo que realmente se registraría en lugar del ajuste almacenado. Activar o desactivar el modo de solo lectura se registra en el registro de actividad.
- Corrección: Un monto de reembolso con espacios circundantes se recorta antes de la verificación numérica ahora, varias listas que podían ordenarse de manera diferente en PHP 7.4 que en 8.x se ordenan igual en todas partes, y una capacidad de otro plugin que devuelve una forma inesperada se captura y se informa en lugar de fallar más abajo.
- Tarea: La versión mínima de PHP ahora es 7.4, bajada de 8.0. La pestaña Settings se reorganiza con los controles de seguridad al frente, la pestaña "Otros plugins" tiene su propio nombre e icono, y el listado lidera con lo que el plugin te da en lugar del marco genérico "para agentes de IA".
1.5.0
- Característica: Ocho capacidades de WooCommerce que mueven dinero u otorgan autoridad (reembolsos, estado y actualizaciones de pedidos, configuración de pasarelas de pago, creación y actualización de cupones y tasas de impuestos) están bloqueadas por defecto ahora detrás de un único interruptor maestro auditado en la pestaña de Ajustes.
- Característica: El registro de actividad registra los cambios de capacidades y ajustes, no solo las llamadas, con una columna de detalle que nombra qué cambió y enlaza cada identificador a su pantalla de edición, y puede exportarse como CSV con el filtro actual.
- Característica: Un intento fallido de Contraseña de Aplicación contra el endpoint de MCP ahora se registra, y se limita la tasa por IP de origen para que una ejecución de relleno de credenciales no pueda inundar el registro.
- Corrección: Crear un cliente de WooCommerce ahora requiere la capacidad create-users, y listar o leer uno requiere list-users, cerrando una brecha que permitía a un llamador con solo manage-WooCommerce leer el correo, la dirección y el teléfono de cualquier usuario, incluidos los administradores. Un Gestor de Tienda estándar ahora tiene denegadas ambas cosas donde antes no.
- Corrección: La configuración de pasarelas de pago y envío podía devolver secretos bajo nombres de campo que la lista de redacción omitía, como passphrase y salt, y eliminar una variación de producto no verificaba la capacidad del llamador sobre ese producto específico. Ambos están corregidos.
- Corrección: Una serie de defectos del registro de administración: un identificador podía enlazar al objeto equivocado, las columnas Evento y Detalle podían desalinearse después de filtrar, una exportación grande podía truncarse pareciendo completa, y los contadores no se actualizaban hasta recargar.
- Tarea: Aclarado el texto sobre qué otorga una Contraseña de Aplicación, que desinstalar no revoca el acceso por sí solo, y que el alcance solicitado de una concesión OAuth no limita el token; la nota del límite de tasa indica que se envía desactivado con un valor inicial sugerido.
1.4.3
- Corrección: Las lecturas de medios entregaban toda la biblioteca a cualquiera que pudiera subir un archivo o editar una publicación; un agente conectado como autor ahora solo ve lo que subió, y el contador de medios sigue la misma regla. Eliminar un producto de WooCommerce verifica si ese producto en particular era tuyo para eliminar.
- Corrección: Un SKU de producto duplicado o un código de cupón ahora devuelve un mensaje que nombra la colisión en lugar de un error no capturado, y una capacidad puenteada que respondía con una lista simple donde el protocolo pide un objeto siempre se forma como objeto antes de llegar al cable.
- Corrección: El puntero de OAuth 401 comparaba la ruta de la solicitud distinguiendo mayúsculas, por lo que una solicitud con mayúsculas diferentes no obtenía puntero, y la respuesta de autorización omitía el emisor que RFC 9207 requiere. Ambos están corregidos, también en las redirecciones de error.
- Tarea: Reforzadas las comprobaciones de compilación que protegen estas herramientas, incluida una que pasaba silenciosamente cualquier capacidad cuyo código no podía leer.
1.4.2
- Característica: Cada entrada en cada herramienta ahora se explica a sí misma, las 505, donde antes solo tres capacidades estaban completamente documentadas.
- Corrección: El estado de la publicación se ignoraba al crear: "crear una publicación como borrador" la publicaba en vivo y reportaba éxito. Crear ahora respeta el estado que pides, trata programar y privado como publicar, y rechaza un estado que tu usuario no puede publicar, también en tipos de publicación personalizados.
- Corrección: Actualizar un pedido de WooCommerce con line_items añadía artículos en lugar de cambiarlos, elevando silenciosamente el total; ahora hay un campo claro add_line_items, y una solicitud que mezcla ids de producto válidos e inválidos se valida completamente antes de escribir nada. Un tipo de producto que no coincide con el producto devuelve un error en lugar de descartarse.
- Tarea: Añadida una comprobación de compilación que falla cuando cualquier entrada de herramienta queda sin documentar, para que esto no pueda volver a desviarse.
1.4.1
- Corrección: Los errores de OAuth volvían en la forma {code, message, data} de WordPress en lugar de la forma {error, error_description} que RFC 6749 requiere, por lo que ningún cliente OAuth estándar podía leerlos; reportado como problema #68, y incorrecto desde la primera versión. Un cuerpo JSON malformado a una ruta OAuth escapaba con la misma forma incorrecta y sin cabeceras de caché.
- Corrección: Las respuestas que llevan una credencial carecían de Pragma: no-cache junto a Cache-Control: no-store, incluida la respuesta de token.
- Corrección: Llamar a una herramienta que no existe o está desactivada devolvía HTTP 404, que la especificación MCP reserva para una sesión muerta, por lo que un error ordinario decía al cliente que se reconectara; ahora devuelve el error correcto. El documento de descubrimiento OAuth ya no anuncia un endpoint de registro de clientes cuando el registro dinámico está desactivado.
- Corrección: Cada capacidad declara openWorldHint false ahora, que el esquema MCP de otro modo lee como "puede llegar a internet abierto", lo contrario de lo que el plugin realmente hace.
- Tarea: Las respuestas OAuth con límite de tasa ahora envían Retry-After.
1.4.0
- Característica: Un asistente de Quick Connect de primera ejecución conecta a un nuevo administrador en una pantalla: activa OAuth y copia el endpoint, o crea un usuario agente dedicado y genera una contraseña de aplicación, luego activa las lecturas de contenido y, si quieres, las escrituras. Un puntero de menú saluda a una instalación nueva y apunta a la página del plugin.
- Corrección: El paso de incorporación "Conecta tu agente" y el contador de "Usuarios agente" ya no leen cualquier contraseña de aplicación como un agente conectado; rastrean los usuarios agente que este plugin creó o una conexión OAuth aprobada, por lo que una contraseña no relacionada deja de mostrar un "hecho" falso o inflar el contador.
1.3.2
- Característica: Las lecturas de contenido (publicaciones, páginas, búsqueda, términos, medios, productos) ahora aceptan un argumento de idioma opcional y reportan qué idioma devolvieron, y una lectura de un solo elemento puede obtener una traducción específica. Los sitios sin WPML no se ven afectados.
- Corrección: En un sitio WPML, las listas de contenido devolvían solo el idioma predeterminado mientras los contadores reportaban todos los idiomas; los contadores ahora coinciden con el idioma devuelto, y las herramientas de elementos de menú ya no reportan un fallo falso cuando el filtro de idioma de WPML oculta el nuevo elemento de la relectura.
- Tarea: Añadida una prueba de contrato real-WPML y una guardia que falla la compilación si una capacidad de solo lectura empieza a escribir.
1.3.1
- Característica: Las capacidades de WooCommerce ahora requieren WooCommerce 9.1 o más reciente; por debajo de eso simplemente no se registran, con una razón clara en la pantalla de Integraciones en lugar de un error fatal.
- Característica: El registro de actividad atribuye cada llamada a su cliente OAuth, muestra un contador de resultados para llamadas de lista y lectura, y deja un marcador cuando se limpia el registro.
- Corrección: Una serie de correcciones de WooCommerce: listar clientes puede filtrar por rol para que un cliente en otro rol siga visible, la autoría de notas de pedido se detecta correctamente, se reportan el orden de visualización real y los valores guardados de una pasarela de pago, el ejecutor de reembolsos ya no falla en una pasarela sin método de impuestos, y las actualizaciones de atributos de producto funcionan en todas las versiones de WooCommerce.
- Corrección: Correcciones de SEO y contenido: las rutas de Rank Math y AIOSEO para head y verificación de escritura devuelven un error claro o aceptan una normalización benigna en lugar de un fallo falso, el padre de un término debe pertenecer a la misma taxonomía, count-media ignora la papelera, upload-media falla claramente sin la extensión fileinfo, y update-site-settings reporta fallo cuando WordPress revierte silenciosamente un valor.
- Corrección: Correcciones de administración y OAuth: las capacidades de una integración inactiva sobreviven a un guardado de formulario, el selector de usuarios agente encuentra usuarios más allá de la primera página, una fila filtrada realmente se oculta, los intentos de portador OAuth denegados se registran, y la pantalla de consentimiento y la redirección de código nunca se almacenan en caché.
- Tarea: Añadida una suite de pruebas de contrato con proveedores reales que se ejecuta contra código fijado de WooCommerce, Rank Math, AIOSEO y ACF para detectar regresiones de forma de API antes del lanzamiento, y se dejó de enviar los metadatos del paquete Node del mcp-adapter en el zip.
1.3.0
- Característica: La pantalla de consentimiento OAuth advierte cuando la cuenta que aprueba una conexión es administradora, la pantalla de ajustes advierte antes de que un bloqueo de API REST corte tus conexiones OAuth, y el directorio Abilities Bridge muestra el permiso efectivo de cada capacidad puenteada.
- Corrección: Las instalaciones nuevas ahora envían OAuth desactivado por defecto, mientras que los sitios que ya lo tenían activado lo mantienen, y se cierra una ruta de phishing de consentimiento que podía lograr que un administrador aprobara un cliente malicioso.
- Corrección: Gobernanza endurecida: la puerta de capacidad MCP verifica que el adaptador en ejecución aún aplica su filtro en lugar de confiar en una coincidencia de texto, update-user requiere edit_users, y una capacidad puenteada sin anotación destructiva se trata como destructiva en lugar de asumirse segura.
- Corrección: Las lecturas de WooCommerce que fallaban en cada tienda real están corregidas: listado de clientes (llamaba a una función que WooCommerce no tiene), zonas de envío vacías, paginación de pedidos ignorada en almacenamiento heredado, y atributos de producto eliminados al crear y borrados al actualizar.
- Corrección: Correcciones de SEO y contenido: robots_noindex de Yoast estaba invertido, por lo que un agente escribía lo contrario de lo que pedía, las imágenes sociales de Rank Math y AIOSEO ahora se renderizan porque el plugin escribe el id del adjunto, las escrituras numéricas y booleanas de ACF dejaron de reportar un fallo falso, una actualización parcial de elemento de menú ya no borra campos no tocados, y la comprobación de publicación de página reconoce estados públicos personalizados.
1.2.1
- Tarea: El enlace del sitio web del plugin ahora apunta a agentabilitieswp.com en lugar del repositorio de GitHub.
- Tarea: Documentación actualizada para que la lista de clientes compatibles coincida con lo que funciona: ChatGPT, Claude (la aplicación web claude.ai y Claude Desktop) y Manus se conectan por URL sobre OAuth, mientras que Claude Code, Cursor, VS Code, Windsurf y Gemini CLI se conectan desde tu propia máquina.
1.2.0
- Característica: Añadido ChatGPT como opción de conexión y una única entrada de Claude que cubre tanto la aplicación web como Claude Desktop; las aplicaciones alojadas se conectan por URL sobre OAuth, por lo que ya no muestran los pasos de contraseña de aplicación, y Manus se conecta de la misma manera.
- Corrección: Los visitantes sin sesión podían ver "Ha ocurrido un error crítico" en cada página cuando otro plugin activo comprobaba el usuario actual muy temprano en la carga (The Events Calendar es un ejemplo); el plugin ahora espera hasta haber terminado de cargar.
- Corrección: La pantalla de Ajustes ahora guarda correctamente los interruptores de Activar OAuth, Registro Dinámico de Clientes y validación estricta de bloques (se estaban desactivando al guardar), y ya no hay pantalla blanca cuando el plugin independiente MCP Adapter está activo junto a este.
- Corrección: Endurecido el alcance de tokens OAuth para que un token de acceso MCP solo pueda autenticar el endpoint MCP y nunca otra ruta REST, cerrada una condición rara que podía agotar la memoria durante la configuración de conexión, y publicado siempre requiere permiso de publicación, incluidos los estados de publicación públicos personalizados. Los bloques válidos de Cover y Media & Text ya no se marcan como inválidos.
- Tarea: Reforzados los ayudantes de fragmentos de conexión.
1.1.1
- Los agentes de IA que escriben páginas, publicaciones o plantillas ahora se dirigen a mantener el estilo de bloque en los atributos del bloque en lugar de CSS en línea, el error que hacía que los bloques mostraran "contenido inesperado o inválido" en el editor.
- El marcado de bloques se comprueba antes de guardarse, y cualquier cosa que rompería el editor se señala al agente para que lo corrija en su siguiente intento.
- Una nueva opción estricta bajo Controles de Seguridad rechaza una escritura directamente cuando su marcado de bloque sería inválido, desactivada por defecto para que los sitios existentes no cambien.
1.1.0
- Puente de capacidades desde tus otros plugins: cualquier plugin activo que registre capacidades a través de la API de Capacidades de WordPress ahora puede exponerse como una herramienta MCP gobernada, opt-in por capacidad y desactivada por defecto, en una nueva pantalla "Capacidades de otros plugins" agrupada por el plugin de origen.
- Activa o desactiva las capacidades de un plugin completo de una vez, con el nombre de cada plugin de origen mostrado en mayúsculas y minúsculas.
- Las capacidades puenteadas se ejecutan bajo la capa de gobernanza completa: una re-verificación de capacidades en cada llamada, limitación de velocidad y el mismo registro de auditoría que el catálogo integrado.
- Se añadió un exportador de catálogo WP-CLI,
wp aafm catalog export, que lista las capacidades descubribles de un sitio como JSON. - Se renovó la marca con un nuevo icono, banner y una marca de menú administrativo a juego.
- Se añadió un blueprint de WordPress Playground para que la página del plugin pueda ofrecer una vista previa en vivo con un clic.
1.0.0
- Lanzamiento inicial. 153 capacidades gobernadas: 83 en el núcleo de WordPress (lecturas y escrituras protegidas para entradas, páginas, términos, comentarios, medios, usuarios, metadatos de entradas, revisiones, bloques, plantillas y estructura del sitio, además de una búsqueda que abarca todos los tipos de entrada), y 70 de integraciones auto-detectadas para WooCommerce, Advanced Custom Fields, Yoast, Rank Math y All in One SEO. Construido sobre la API de Capacidades de WordPress y el Adaptador MCP oficial, sin transporte personalizado. Conéctate a través de OAuth en el navegador o con un usuario de Contraseña de Aplicación de privilegio mínimo. Todo desactivado por defecto, control de capacidades en dos capas, filtrado de herramientas por conexión, controles de seguridad opcionales (límite de velocidad, lista blanca de IP, borrador forzado, límite de longitud de título), un registro de auditoría que registra denegaciones y una pantalla de conexión guiada con diagnósticos.
