Publicar documentación desde ChatGPT con el MCP nativo
Esta guía explica cómo publicar documentación técnica desde ChatGPT con el MCP nativo del dominio principal o de un tenant, sin depender de Cross Publisher.
Elegir la conexión del sitio
En Ajustes → (MCP) Conexiones IA, el dominio principal utiliza https://musedock.com/mcp. Cada tenant dispone de su propia conexión https://su-dominio/mcp. Copia la URL que muestra el panel del sitio. Los accesos de Cross Publisher son independientes.
Habilitar escritura y publicación
En Servicio y sitios, habilita la conexión y permite las solicitudes de cambios. Para publicar, habilita también la publicación. El acceso OAuth debe tener los permisos de edición de artículos y publicación; para crear la estructura necesita además gestión de categorías y etiquetas.
Aprobaciones automáticas
En el acceso, la aprobación automática de artículos permite ejecutar nuevas solicitudes sin revisión manual cuando todos los permisos lo permiten. La creación automática de categorías requiere su preferencia independiente. Estas opciones no superan los límites de la conexión.
Documentación sin portada
Si la guía no necesita imagen, el requisito de portada debe estar desactivado en ese recurso MCP. La herramienta create_and_publish_article genera una portada; para una guía sin imagen utiliza create_post y, cuando corresponda, publish_post.
Conectar ChatGPT mediante OAuth
Añade un servidor MCP personalizado usando la URL del sitio. Selecciona OAuth, cliente definido por el usuario y client_secret_basic como método de autenticación del punto de acceso de tokens. Copia el ID y secreto de MuseDock en sus campos correspondientes. La URL de retorno debe coincidir exactamente con la proporcionada por ChatGPT.
Asignar la guía al árbol de documentación
La estructura utiliza categorías: Documentación (slug docs) → producto → sección. Consulta los identificadores reales del sitio y asigna el artículo a la categoría de su sección. En este ejemplo se utiliza MuseDock CMS → Configuración.
Campos de la solicitud editorial
Envía el título, contenido HTML, post_type: "docs", el identificador de la sección en category_ids y el estado solicitado. apply: true inicia la solicitud; consulta su resultado antes de confirmar que está publicada. No dupliques la creación mientras la solicitud siga en cola.
Verificar el resultado público
Comprueba que la dirección empieza por /docs/, que la guía aparece en su sección del menú y que los encabezados H2 y H3 forman el índice lateral. El artículo de documentación queda fuera del listado normal del blog. La navegación depende de las vistas de documentación del tema.
Si faltan herramientas de escritura, revisa primero los permisos efectivos del recurso y del acceso. Después actualiza las herramientas del complemento en ChatGPT y abre una conversación nueva si conserva un catálogo anterior. No es necesario revocar tokens para corregir interruptores del recurso conservando el consentimiento vigente.
Consulta también Sistema de Documentación para crear la estructura y Search Console para revisar el sitemap y sus envíos.
Solucionar la detección de OAuth
El servicio global y cada recurso MCP tienen interruptores independientes. Cross Publisher puede funcionar mientras la conexión «Dominio principal» está desactivada. Crear un acceso y sus credenciales no habilita por sí solo el recurso.
Si ChatGPT muestra «No se han podido detectar los ajustes de OAuth», comprueba la URL y el estado de esa conexión. En el caso verificado en MuseDock.com, los metadatos devolvían HTTP 404 porque la conexión principal estaba desactivada. Esa respuesta no demostraba un problema del firewall.
Habilitar sin perder las credenciales
El aviso de conexión desactivada ofrece «Habilitar esta conexión sin salir». La activación se hace sin recargar la página ni borrar el ID y secreto visibles. Después vuelve a ChatGPT y pulsa «Reintentar la detección». Si el servicio global está desactivado, primero debe habilitarlo el administrador principal. El botón de activación no sustituye los permisos editoriales del acceso.
Dónde pegar cada dato en ChatGPT
En Complementos → Añadir → Añadir servidor MCP personalizado, utiliza los datos del mismo recurso y acceso. Los nombres de la interfaz del proveedor pueden cambiar.
| Campo en ChatGPT | Dato correspondiente |
|---|---|
| URL del servidor | La URL completa que muestra MuseDock con «Copiar URL». Para el principal: https://musedock.com/mcp. |
| Autenticación | OAuth. |
| Método de registro | Cliente OAuth definido por el usuario. |
| ID de cliente de OAuth | El ID del cliente generado por MuseDock para ese acceso. |
| Secreto del cliente OAuth | El secreto generado por MuseDock. No es la contraseña del CMS ni una API key de OpenAI. |
| Método de autenticación en el punto de acceso de tokens | Selecciona exactamente client_secret_basic, también denominado Basic. |
| URL de devolución de la llamada | La proporciona ChatGPT. Debe coincidir exactamente con la dirección de retorno guardada en MuseDock. |
Si el callback que muestra ChatGPT difiere del predefinido, selecciona «Personalizado» al crear el acceso en MuseDock y pega la dirección HTTPS completa. La URL de retorno no es la URL del servidor MCP. No copies el callback de otro complemento ni publiques el secreto en capturas o documentación.
Por qué puede haber permisos y seguir faltando herramientas
La conexión establece los límites generales; el cliente y su consentimiento OAuth conceden los permisos específicos. Deben coincidir los tres niveles. Si la conexión no permite solicitudes de cambios, el servidor oculta las herramientas de escritura aunque el cliente tenga los ámbitos concedidos. Publicar requiere además permitir publicación y tener su permiso efectivo.
Al guardar una aprobación automática desde la creación o edición del acceso, MuseDock habilita el recurso y las solicitudes de cambios necesarias. Si el acceso tiene permiso de publicación y el administrador puede concederlo, habilita también publicar en «Servicio y sitios». No desactiva el requisito de portada ni concede permisos adicionales a otros clientes; estos siguen sujetos a sus propios permisos y aprobaciones. El servicio global debe estar activo.
El caso de las 11 herramientas de consulta
En la comprobación realizada el 17 de octubre de 2026, el acceso principal disponía de ámbitos editoriales, pero el recurso todavía bloqueaba cambios y publicación. Tras corregirlo, el catálogo autenticado del endpoint público devolvió 28 herramientas, incluidas create_post, update_post, publish_post y create_category. Ese número describe la configuración comprobada; puede variar según permisos y versión.
Si ChatGPT sigue mostrando el catálogo anterior, abre los detalles del complemento correcto, comprueba la selección de herramientas y actualízalas. Después abre una conversación nueva y selecciona ese complemento. El operador puede contrastar tools/list en el endpoint público con el mismo cliente y consentimiento. No recrees credenciales ni revoques tokens como primer intento de resolver una caché del catálogo.
Renovar el secreto y revocar un acceso son acciones diferentes
«Renovar secreto sin revocar la conexión» conserva el cliente y ofrece un periodo de 24 horas para actualizar su secreto en el proveedor. No lo mueve al historial. Crear después otro acceso con el mismo nombre produce dos clientes distintos.
La fecha «Creado» se muestra en formato español, con hora peninsular y ajuste de verano/invierno, para distinguirlos. En cada tarjeta, «Autorizaciones OAuth de este acceso» agrupa sus consentimientos. «Revocar acceso» deshabilita el cliente y sus autorizaciones y lo mueve al historial de accesos revocados. El historial no significa que el cliente siga autorizado.
Leer esta guía y preparar su traducción mediante MCP
Esta guía tiene el identificador 7339 en el dominio principal. Un acceso autorizado a ese recurso puede recuperar el HTML completo con get_post o get_post_details. El asistente debe leer el contenido actual, no reconstruirlo desde el título o un extracto.
{ "post_id": 7339 }
Antes de traducir, consulta list_translations con ese mismo post_id para comprobar si el idioma ya existe. Para guardar la versión inglesa, utiliza save_translation con post_id, locale: "en", title, content en HTML y los campos SEO traducidos. Debe mantenerse vinculada al artículo original; no crees otro artículo con create_post ni cambies su tipo docs, categorías o URL española.
Guardar una traducción de una guía publicada requiere permisos de traducciones y publicación. Actualmente no existe una preferencia independiente de aprobación automática de traducciones: save_translation puede crear una solicitud pendiente de revisión. Consulta el resultado y no declares que está publicada hasta confirmarlo.
Slug traducido y SEO por idioma mediante MCP
save_translation admite ahora el campo opcional slug. Envía un slug breve y descriptivo en el idioma de la traducción, sin dominio, sin prefijo /en/ y sin /docs/. Para una guía docs en inglés, el CMS combina esos elementos: /en/docs/publish-documentation-with-native-mcp. El slug y la URL españoles se conservan.
Un slug traducido facilita comprender la URL en cada idioma; no garantiza posiciones en Google ni sustituye una buena traducción. Para SEO multilingüe comprueba también un canonical propio de cada versión, enlaces hreflang recíprocos y las URL en el sitemap. No apuntes el canonical de la traducción a la versión española por defecto. El sistema existente LanguageUrl y el sitemap reutilizan el registro del slug localizado.
{
"post_id": 7339,
"locale": "en",
"slug": "publish-documentation-with-native-mcp",
"title": "Publish documentation with native MuseDock MCP",
"content": "<h2>Requirements</h2><p>Replace this example with the complete English translation of the current guide.</p>",
"seo_title": "Publish documentation from ChatGPT with MuseDock MCP",
"seo_description": "Connect ChatGPT to native MuseDock MCP and publish technical documentation with localized URLs, permissions and automatic navigation.",
"apply": true
}
El contenido del ejemplo es ilustrativo: antes de guardar, lee la guía completa y traduce todo su HTML. La operación prepara una solicitud sujeta a las aprobaciones vigentes; no declares la traducción terminada hasta que get_request_status confirme completed. Su resultado devuelve el slug y public_url cuando existe una ruta localizada.
list_translations devuelve el slug propio guardado. Si omites slug al actualizar el texto, la ruta permanece intacta; si aún no hay slug propio, puede utilizarse el slug base con prefijo de idioma. Se normalizan espacios y mayúsculas del slug enviado y se rechazan valores vacíos o colisiones con otra ruta del mismo sitio.
Guardar de nuevo el mismo slug no duplica la ruta. Si la traducción ya tiene un slug propio diferente, el MCP rechaza el cambio para no romper enlaces: primero debe gestionarse la redirección correspondiente. No crea otro artículo, no genera imágenes ni modifica categorías al guardar una traducción.
Referencia: Google Search Central: sitios multilingües y URL localizadas.