Cómo conectar cualquier servidor MCP a ChatGPT: OAuth, plugins y túneles seguros
Conectar un servidor MCP propio a ChatGPT permite consultar información y utilizar herramientas de aplicaciones externas desde una conversación. Esta guía nace de una integración real, con errores de autenticación, restricciones de firewall y una prueba de funcionamiento, y explica las alternativas para cualquier desarrollador.
Qué es MCP y qué necesitas
Model Context Protocol (MCP) es un protocolo abierto que estandariza cómo un asistente descubre e invoca herramientas. Tener un endpoint funcional no basta: hay que resolver el transporte HTTP compatible, la autenticación, los permisos y la conectividad desde la red del cliente.
Crear el complemento MCP en ChatGPT
- Abre chatgpt.com/plugins.
- Selecciona Añadir → Añadir servidor MCP personalizado.
- Introduce nombre y descripción, y elige URL del servidor o Túnel.
- Configura la autenticación. En la interfaz probada aparecen OAuth, Sin autenticación y OAuth o sin autenticación.
- Revisa los permisos, crea el complemento y completa el consentimiento.
La disponibilidad de estas funciones depende de la cuenta y de la interfaz vigente. La existencia de herramientas de escritura en el catálogo no garantiza que el cliente pueda ejecutarlas ni que el servidor las autorice.
Opción A: endpoint HTTPS público con acceso controlado
La arquitectura habitual es ChatGPT → HTTPS 443 → Caddy o Nginx → servidor MCP. Un dominio como https://mcp.ejemplo.com/mcp permite separar el acceso MCP de la administración, que puede seguir restringida a IP de confianza en otro puerto.
El proxy debe publicar únicamente las rutas MCP y las rutas OAuth necesarias, con certificados TLS válidos. Si el firewall está cerrado para el puerto de administración, no es necesario abrirlo: puede utilizarse un virtual host específico en el 443 existente.
¿Sirven las IP oficiales de ChatGPT?
OpenAI documenta rangos de salida para determinados servicios y conectores. Cuando la lista corresponda realmente al producto utilizado, puede mantenerse actualizada automáticamente y aplicarse en Caddy o en conjuntos del firewall. La IP no identifica a tu usuario: varias cuentas pueden compartir redes. OAuth sigue siendo imprescindible para recursos privados.
Si se utiliza el proxy de Cloudflare, hay que tratar correctamente las cabeceras y los proxies de confianza: el origen observado puede ser una IP de Cloudflare. No se debe confiar ciegamente en una cabecera de IP suministrada por cualquier cliente.
Opción B: Secure MCP Tunnel de OpenAI
Otra alternativa es un túnel: el servidor privado inicia una conexión saliente hacia el servicio de túnel y las solicitudes llegan por ese canal, sin publicar directamente el puerto MCP. OpenAI documenta Secure MCP Tunnel y un cliente tunnel-client. Hay que verificar la disponibilidad en OpenAI Platform, las credenciales, el servicio local y la validación TLS.
El túnel no sustituye OAuth ni hace accesibles por sí solo las pantallas de consentimiento y los endpoints de autorización. Tampoco debe asumirse que el túnel de OpenAI sirve directamente para Claude u otros proveedores. Para clientes de varios fabricantes, un endpoint HTTPS propio suele ofrecer mayor independencia.
Documentación: Secure MCP Tunnels.
OAuth: el paso decisivo
En la integración que motivó esta guía, el MCP original utilizaba un Bearer estático. Sin embargo, el formulario del complemento personalizado no ofrecía un campo genérico para pegar ese token: hubo que implementar OAuth.
En Ajustes avanzados de OAuth encontramos un cliente definido por el usuario, registro dinámico de clientes (DCR), metadatos CIMD, ID y secreto de cliente, métodos none, client_secret_basic y client_secret_post, ámbitos, endpoints y OpenID Connect opcional.
Se utilizó un cliente registrado manualmente con client_secret_basic. Deben coincidir el método admitido por el servidor y la URL exacta de devolución de llamada mostrada por ChatGPT. El servidor OAuth debe implementar correctamente Authorization Code, PKCE, expiración, revocación, validación del recurso y comprobación de ámbitos.
Los ámbitos pueden distinguir lectura, creación de borradores o publicación, pero su nombre es propio de cada implementación. No basta con ocultar botones: el servidor debe comprobar los permisos en cada herramienta.
Errores reales y cómo interpretarlos
HTTP 401 Unauthorized
La primera prueba devolvió 401 porque se había enviado un token de ejemplo. Eso demostraba que el endpoint HTTP respondía y rechazaba credenciales, pero no que la inicialización MCP hubiera funcionado. Hay que corregir la autenticación y repetir la prueba.
HTTP 403 Forbidden
En otra fase, la autorización falló porque el código aceptaba el rol admin pero no superadmin. Se corrigió la comprobación de roles. Un 403 también puede proceder de un proxy, del filtrado de IP o de permisos insuficientes: hay que localizar la capa que lo genera, no desactivar los controles.
Falta el ID de cliente OAuth
ChatGPT mostró «Introduce un ID de cliente de OAuth en los ajustes avanzados de OAuth». La solución fue crear un cliente en el servidor, copiar su ID y secreto en los campos correspondientes y seleccionar el método de autenticación compatible.
Cómo comprobar que la conexión funciona de verdad
Que un complemento aparezca instalado no garantiza el éxito. Hay que ejecutar una herramienta de solo lectura y comprobar su resultado. En nuestra prueba real, ChatGPT obtuvo información de un servidor y sus nodos, consultó servicios y detectó una incidencia de almacenamiento. Después verificamos que otro complemento MCP podía listar los sitios autorizados de un CMS.
Las operaciones de escritura requieren una prueba independiente: idealmente preparar un borrador no publicado y exigir aprobación explícita antes de modificar contenido.
Lista de seguridad antes de producción
- HTTPS y certificados verificados; nunca desactivar la validación TLS para solucionar errores.
- Separar administración y MCP en rutas o dominios específicos.
- OAuth con clientes independientes, tokens caducables y revocación.
- Permisos mínimos por herramienta y por recurso; empezar con lectura.
- Auditoría sin secretos, límites de peticiones y protección ante abusos.
- Filtrado por IP solo como defensa adicional, no como identidad del usuario.
- Confirmación humana para publicar, editar producción, cambiar DNS o administrar sistemas.
- Pruebas de fallos y un procedimiento de desconexión y rollback.
¿HTTPS directo o túnel?
HTTPS directo es flexible para integrar ChatGPT, Claude y otros clientes MCP compatibles, a condición de diseñar correctamente OAuth y la exposición pública. Secure MCP Tunnel es una alternativa para mantener privado el endpoint MCP en entornos compatibles con la infraestructura de OpenAI. La elección depende de las necesidades de red, del proveedor y del control operativo.
Conclusión
La parte difícil de conectar MCP a ChatGPT no es introducir una URL, sino coordinar transporte, firewall, OAuth y permisos. Empezar con lectura, verificar cada capa y ampliar el acceso gradualmente permite construir una integración segura y reutilizable. En una próxima guía abordaremos el caso concreto de MuseDock Panel y MuseDock CMS.
Comentarios (0)
No hay comentarios todavía.
Dejar un Comentario