=== MD MCP Connector ===
Contributors: marcosdicaprio
Requires at least: 6.9
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.268.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Conecta un sitio WordPress con Claude, ChatGPT, Codex y otros clientes MCP mediante MCP Streamable HTTP y OAuth 2.1.

== Description ==

MD MCP Connector expone herramientas controladas para consultar, crear y editar contenido de WordPress, subir imágenes a la Biblioteca multimedia y moderar comentarios. Detecta entradas, páginas y CPT registrados por temas y plugins. Cada conexión selecciona permisos independientes por tipo de contenido.

Seguridad incluida:

* OAuth 2.1 Authorization Code con PKCE S256.
* Registro dinámico limitado a callbacks oficiales de ChatGPT y callbacks locales seguros de Codex.
* Tokens opacos almacenados únicamente como hashes.
* Matriz de consentimiento por CPT: leer, consultar contexto, crear borradores, editar, publicar y enviar a la papelera.
* Contexto por CPT configurable desde el administrador, almacenado en WordPress y disponible sólo con el permiso Contexto de esa fila.
* Contexto general del sitio: la IA puede partir de la portada cuando esté vacío y ampliarlo con información verificada durante su trabajo.
* Permisos adicionales separados para imágenes y comentarios.
* Gestión optativa de Biblioteca multimedia: consulta de imágenes y edición de nombre visible, ALT, leyenda y descripción, sin borrado.
* Cuando Elementor está activo, permisos independientes para fuentes personalizadas y estilos globales del Kit.
* Cuando Yoast SEO o Rank Math están activos, permiso independiente para consultar y ajustar por página el slug, título SEO, meta descripción y noindex/nofollow.
* Los permisos concedidos nunca superan las capacidades del usuario ni los límites globales del administrador.
* Actualizaciones mediante MD Codes con origen HTTPS y checksum SHA-256 obligatorio.
* Publicación y papelera desactivadas por defecto.
* Subida de imágenes limitada a JPEG, PNG, WebP o GIF, con un máximo de 10 MB y comprobaciones SSRF para URLs remotas.
* Sin borrado permanente, acceso arbitrario a archivos, SQL arbitrario ni telemetría.
* Registro de auditoría limitado que no guarda prompts, contenidos ni tokens.

== Installation ==

1. Instala el ZIP y activa el plugin.
2. Abre Ajustes > MCP Connector.
3. Publica el sitio con HTTPS o usa un túnel MCP seguro.
4. Crea una conexión MCP en Claude, ChatGPT o Codex y pega el endpoint mostrado.
5. Autoriza la conexión con tu usuario de WordPress.
6. Define opcionalmente las instrucciones por tipo de contenido y selecciona el acceso mínimo necesario para cada CPT detectado.

== Frequently Asked Questions ==

= ¿Funciona desde localhost? =

El cliente MCP (Claude, ChatGPT, Codex, etc.) necesita alcanzar el endpoint. Usa un sitio HTTPS público o un túnel MCP seguro para desarrollo.

= ¿Puede borrar contenido permanentemente? =

No. La única acción destructiva disponible mueve contenido a la papelera y está desactivada por defecto.

= ¿Puedo dar permisos distintos para cada CPT? =

Sí. Durante la autorización OAuth aparece una matriz para entradas, páginas y cada CPT de contenido detectado. Puedes conceder por separado lectura, contexto, creación de borradores, edición, publicación y papelera. Contexto sólo permite recibir las instrucciones configuradas por el administrador para esa fila.

= ¿Qué ocurre con las conexiones creadas antes de la versión 1.2.0? =

Sus tokens se revocan durante la migración para que el usuario vuelva a autorizar y seleccione permisos granulares. El cliente OAuth registrado se conserva.

= ¿Puede usar imágenes generadas por ChatGPT? =

Sí. En ChatGPT, adjunta o selecciona la imagen al usar «Subir imagen»: ChatGPT la entrega directamente al connector como archivo, sin URL pública ni Base64 manual. También está disponible «Seleccionar imagen de ChatGPT» para elegir una imagen de su biblioteca cuando el cliente muestra la interfaz. Claude y otros clientes MCP pueden enviar una URL HTTPS temporal, un data URI o los bytes de la imagen como `image_base64` con su `mime_type`. La herramienta devuelve el attachment ID para usarlo como imagen destacada y un bloque listo para insertar en el contenido.

= ¿Se envían datos a Marcos Di Caprio u otros servicios? =

El plugin no incluye telemetría. El actualizador consulta la API pública de MD Codes en marcosdicaprio.dev, sin enviar intencionadamente la URL del sitio, correos, lista de plugins ni identificadores de instalación. Durante una acción de subida también descarga la imagen desde la URL HTTPS indicada expresamente. Los datos solicitados por el usuario viajan entre el cliente MCP (Claude, ChatGPT, Codex, etc.) y este WordPress durante las llamadas MCP autorizadas.

= ¿Dónde se consulta el historial de cambios? =

Cada versión mantiene su changelog en este archivo y en la versión publicada mediante MD Codes. WordPress lo muestra desde el enlace «Ver detalles» de la actualización.

= ¿Por qué Codex utiliza una dirección localhost? =

Codex abre un receptor OAuth temporal en el propio equipo. El plugin solo admite HTTP para callbacks de loopback estrictos (`localhost`, `127.0.0.1` o `::1`) con puerto explícito y una ruta de callback válida; nunca acepta HTTP para destinos externos.

== Changelog ==

= 1.268.1 =

* Corrige un error que impedía activar el plugin y, por tanto, mostrar la autorización MCP.
* Limita la gestión comercial desde MCP a productos simples para evitar altas incompletas de otros tipos.
* Comprueba las categorías y etiquetas antes de guardarlas y comunica si alguna no existe o no puede asignarse.

= 1.268.0 =

* Amplía las herramientas MCP para consultar y gestionar productos WooCommerce, con categorías y etiquetas de producto, precios, SKU, inventario, impuestos y dimensiones.
* Los productos nuevos se crean como borrador salvo que la conexión y el administrador permitan publicar; los datos comerciales se guardan mediante la API de productos de WooCommerce.


= 1.264.1 =

* Añade integración opcional con Yoast SEO y Rank Math para consultar y editar el slug, título SEO, meta descripción y directivas noindex/nofollow de cada página o contenido autorizado.
* Cada cambio SEO requiere un permiso independiente, las capacidades de edición de WordPress y una lectura previa del contenido para evitar cambios fuera de contexto o sobrescribir una edición reciente.
* Las conexiones existentes deben volver a autorizarse para conceder explícitamente el nuevo permiso SEO.

= 1.264.0 =

* Añade una sección de Biblioteca multimedia para listar y revisar imágenes, y actualizar su nombre visible, texto alternativo, leyenda y descripción sin modificar ni borrar el archivo original.
* Añade herramientas para consultar y actualizar colores y tipografías globales del Kit activo de Elementor, limpiando la caché de Elementor después de guardar.
* Los permisos de fuentes y estilos de Elementor solo se habilitan cuando Elementor está activo; las conexiones existentes deben volver a autorizarse para conceder los nuevos permisos.
* Añade un botón para seleccionar de una vez todos los permisos disponibles para el usuario de la conexión.

= 1.262.0 =

* `upload-media` rechaza con un error claro cualquier imagen descargada o decodificada de menos de 8x8 px, en vez de guardarla igualmente en la Biblioteca multimedia. Evita adjuntos inservibles cuando la URL indicada apunta a un marcador de posición en lugar de la imagen real.

= 1.6.0 =

* `upload-media` acepta archivos nativos de ChatGPT mediante el parámetro de archivo oficial, por lo que ya no necesita URL pública ni Base64 manual.
* Añade una interfaz MCP Apps para seleccionar una imagen de la biblioteca de ChatGPT y subirla directamente a WordPress.

= 1.5.2 =

* Las operaciones de crear, actualizar y enviar contenido a la papelera confirman explícitamente el éxito, los cambios guardados, estado, visibilidad y URL pública o de vista previa cuando existe.

= 1.5.1 =

* Permite que `upload-media` reciba `image_base64` y `mime_type` para subir directamente imágenes generadas o adjuntadas desde clientes MCP, sin URL pública.
* Mantiene las comprobaciones de permisos, formato y máximo de 10 MB de las demás entradas de imagen.

= 1.5.0 =

* Añade memoria general del sitio y herramientas MCP para leerla y actualizarla.
* Propone un contexto inicial desde identidad y portada cuando aún no existe uno guardado.
* Permite registrar decisiones visuales mediante `context_note` al subir imágenes.
* Las conexiones existentes deben volver a autorizarse para conceder el permiso Contexto general del sitio.

= 1.4.0 =

* Añade contexto configurable por tipo de contenido y el permiso Contexto independiente por fila.
* Añade la herramienta genérica `get-content-context` sin reglas específicas de un sitio.
* Las conexiones existentes deben volver a autorizarse para conceder el nuevo permiso.

= 1.3.5 =

* Antepone Elementor y WooCommerce al resto de grupos de plugin.

= 1.3.4 =

* Reordena las secciones: WordPress primero, luego el tema activo, luego cada plugin (alfabético), y "Otro" al final.

= 1.3.3 =

* Renombra "Contenido nativo de WordPress" a "WordPress" y etiqueta los grupos por plugin como "Plugin: {nombre}".
* Convierte las secciones de tipos de contenido en bloques plegables, colapsados por título.

= 1.3.2 =

* Reemplaza el botón único "Acceso total" por un checkbox "Todos" en cada fila de tipo de contenido.
* Agrupa los tipos de contenido personalizados por el plugin (o tema) que los registró, tanto en el consentimiento OAuth como en el editor de permisos del administrador.

= 1.3.1 =

* Separa el consentimiento OAuth en contenido nativo de WordPress y tipos de contenido personalizados.
* Añade un botón "Acceso total" en el consentimiento y en la edición de permisos.
* Añade gestión por usuario de las conexiones activas: editar permisos o revocar una conexión concreta desde el administrador.

= 1.2.0 =

* Añade permisos granulares por conexión y por CPT.
* Detecta automáticamente tipos de contenido registrados por temas y plugins.
* Separa lectura, borradores, edición, publicación y papelera.
* Añade permisos independientes para imágenes y comentarios.
* Revoca tokens antiguos para exigir una nueva autorización con privilegio mínimo.

= 1.1.1 =

* Añade autenticación OAuth desde Codex Desktop mediante callbacks loopback estrictamente validados.
* Mantiene la compatibilidad con los callbacks oficiales de ChatGPT.
* Tolera de forma segura la variación localhost/127.0.0.1 de Codex sin aceptar destinos externos.

= 1.1.0 =

* Añade subida segura de imágenes desde URL HTTPS o data URI.
* Devuelve attachment ID, HTML de imagen y bloque de Gutenberg listo para insertar.
* Limita formatos, tamaño y destinos remotos y exige el permiso upload_files.
* Integra actualizaciones verificadas mediante MD Codes y documenta el changelog por versión.

= 1.0.0 =

* Primera versión.
