ChatGPT MCP Connector: cómo añadir un servidor MCP personalizado
Un tutorial práctico para añadir un servidor MCP personalizado a ChatGPT. Activa el modo desarrollador, rellena el formulario del conector, elige OAuth o ninguna autenticación, prueba el servidor con un túnel, corrige los errores más comunes y añade herramientas de imagen y video.
Tienes un servidor que hace algo útil y quieres que ChatGPT lo llame desde un chat normal. La puerta existe y es un único formulario. El problema es que ese formulario esconde cuatro o cinco trampas que hacen que un servidor perfectamente sano parezca roto. Este tutorial recorre todo el camino, desde activar el modo desarrollador hasta aprobar la primera llamada a una herramienta, y señala cada trampa antes de que caigas en ella. Crearás un servidor de prueba pequeño, lo expondrás con un túnel, corregirás los errores con los que más tropieza la gente y, después, verás cómo las herramientas de imagen y video de PicassoIA pueden conectarse al mismo conector.
Qué es un conector MCP personalizado
MCP en pocas palabras
El Model Context Protocol (MCP) es un estándar abierto que permite a un cliente de IA llamar a herramientas de un servidor. El servidor publica una lista de herramientas. Cada herramienta tiene un nombre, una descripción en lenguaje sencillo y un esquema JSON para sus entradas. El cliente lee esa lista, decide cuándo una herramienta resulta útil y envía una solicitud estructurada. El servidor responde con datos o ejecuta una acción.
En ChatGPT, un conector MCP personalizado es la entrada de configuración que apunta ChatGPT a uno de esos servidores. Una vez guardado, tus herramientas aparecen en los chats junto a las integradas.
Por qué añadir tu propio servidor
Los conectores integrados gestionan las aplicaciones más populares. Tu propio servidor se encarga de todo lo demás:
Datos privados: tickets, pedidos, inventario, una base de datos que nadie más puede ver.
Acciones: crear un borrador, iniciar un render, publicar una actualización de estado.
Una base de código, muchos clientes: el mismo servidor suele poder añadirse también a otros clientes MCP.
Lógica en el código, no en los prompts: la validación, los límites de uso y los permisos viven donde deben estar.
💡 Solo remoto. ChatGPT se comunica con servidores MCP remotos. Un servidor que funciona como proceso local por stdio, como hacen muchas herramientas de escritorio, debe envolverse en un endpoint HTTP antes de que ChatGPT pueda alcanzarlo.
Antes de tocar ChatGPT
Requisitos de plan y de espacio de trabajo
El modo desarrollador empezó como beta para cuentas Plus y Pro en la web. Los planes de espacio de trabajo como Business, Enterprise y Edu lo activan mediante un permiso que controla el administrador, en lugar de un interruptor personal. OpenAI ha ajustado qué planes obtienen acciones de escritura y ha movido el interruptor de un menú a otro más de una vez, así que trata cualquier lista de planes (incluida esta) como algo cambiante. Si tu pantalla no coincide con los pasos de abajo, consulta el artículo de ayuda actual de OpenAI sobre el modo desarrollador.
En un espacio de trabajo, el permiso suele estar en el área de permisos y roles de la configuración del espacio. Si no ves el interruptor, pide ayuda a un administrador antes de culpar a tu servidor.
Tu servidor necesita una URL pública
ChatGPT se conecta desde la infraestructura de OpenAI, no desde tu equipo portátil. Eso tiene tres consecuencias:
La URL debe ser accesible desde internet público.
Debe usar HTTPS.
Los servidores detrás de una VPN o de una red privada no se conectarán.
ChatGPT acepta dos transportes remotos:
Transporte
Funciona con ChatGPT
URL típica
Notas
Streamable HTTP
Sí
https://your-domain.com/mcp
La mejor opción para un servidor nuevo
SSE (Server-Sent Events)
Sí
https://your-domain.com/sse
Estilo más antiguo, aún aceptado
stdio (proceso local)
No
ninguna
Envuélvelo primero en un servidor HTTP
Activa el modo desarrollador
Los conectores personalizados están detrás de un interruptor, porque un servidor personalizado puede leer y modificar datos reales. Este es el camino:
Haz clic en el icono de tu perfil, abajo a la izquierda, y abre Configuración.
Abre Conectores. Las versiones más recientes llaman a esta página Apps y conectores.
Busca el interruptor Modo desarrollador cerca de la parte inferior de la página y actívalo. En algunas cuentas está en Seguridad.
Acepta la advertencia. Aparece porque un servidor que añades puede actuar en tu nombre.
Una vez activado el interruptor, aparece un botón Crear en la página de conectores.
💡 ¿No encuentras el interruptor? El ajuste se ha movido durante 2026. Busca en la ventana de configuración la palabra "developer" antes de decidir que tu plan no lo incluye.
Añade el conector paso a paso
Rellena el formulario
Haz clic en Crear y rellena estos campos:
Campo
Qué introducir
Consejo
Nombre
Una etiqueta corta, como "Order Lookup"
Es lo que eliges en el menú del chat
Descripción
Una o dos frases sobre lo que hace el servidor
El modelo la lee para decidir si llama a una herramienta, así que escríbela como una instrucción
Icono
Opcional
Te ayuda a localizarlo en una lista larga
URL del servidor MCP
La URL HTTPS completa con la ruta, como https://api.example.com/mcp
Una ruta que falta es una causa muy común de fallo
Autenticación
Sin autenticación u OAuth
Detalles en la siguiente sección
Marca la casilla que confirma que confías en la aplicación y haz clic en Crear.
Elige sin autenticación u OAuth
Opción
Úsala cuando
Riesgo
Sin autenticación
Datos públicos de solo lectura o un servidor de prueba desechable
Cualquiera que encuentre la URL puede llamar a tus herramientas
OAuth
Todo lo ligado a una cuenta de usuario, datos privados o acciones de escritura
Debes ejecutar o conectar un proveedor de OAuth
Con OAuth, ChatGPT te envía a la página de inicio de sesión de tu proveedor de identidad justo después de hacer clic en Crear. Inicia sesión, pulsa permitir y volverás a ChatGPT con el conector autorizado.
Sea cual sea el proveedor, pide los permisos más restringidos que necesiten tus herramientas. Un conector que solo lee pedidos nunca debería tener permiso para reembolsarlos, porque los permisos que concedes son el techo del daño que puede causar una llamada a una herramienta mal hecha.
Empieza sin autenticación en un servidor de prueba que devuelva datos inofensivos. Pasa a OAuth antes de que el servidor toque algo real.
Úsalo en un chat
Inicia un chat nuevo y haz clic en el icono de más.
Elige Más y luego Modo desarrollador.
Selecciona tu conector como fuente.
Pide algo que el servidor pueda hacer, como "lista mis pedidos abiertos".
ChatGPT propone una llamada a una herramienta y muestra los argumentos.
Revísalos y haz clic en Confirmar.
En las primeras pruebas, menciona el conector en tu prompt: "Usando Order Lookup, lista mis pedidos abiertos." Nombrarlo elimina una variable. Cuando la herramienta funcione, quita el nombre y comprueba si ChatGPT la elige por su cuenta, lo que te dirá si tu descripción cumple su función.
💡 Lee la tarjeta de confirmación. En modo desarrollador, cada llamada a una herramienta se te muestra antes de ejecutarse. Esa tarjeta es tu último control, así que revisa los argumentos en lugar de pulsar sin mirar.
Crea un servidor pequeño para probar
Ejecútalo en local
Una herramienta inofensiva es la forma más rápida de comprobar que la conexión funciona antes de apuntar ChatGPT a datos reales. Esta cuenta palabras y usa el SDK oficial de Python:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("hello-connector", stateless_http=True)
@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a block of text.
Use when the user asks how long a draft is."""
return len(text.split())
if __name__ == "__main__":
mcp.run(transport="streamable-http")
Cuatro hábitos hacen que una herramienta sea fácil de usar para un modelo:
Un trabajo por herramienta.lookup_order y refund_order son mejores que una sola manage_order.
Nombres sencillos. Verbos y sustantivos que el modelo pueda relacionar con una petición.
Argumentos tipados. Cadenas, números y enumeraciones en el esquema, nunca un bloque libre sin estructura.
Salidas cortas. Devuelve los campos que responden a la pregunta, no toda la fila de la base de datos.
Instala el SDK con pip install "mcp[cli]" y ejecuta el archivo. Con los valores por defecto del SDK en el momento de escribir esto, el endpoint es http://127.0.0.1:8000/mcp. Si tu versión usa otro puerto o ruta, su documentación lo indicará.
Antes de que ChatGPT vea el servidor, apunta a él con MCP Inspector:
npx @modelcontextprotocol/inspector
Elige el transporte Streamable HTTP, pega la URL local, conéctate y lista las herramientas. Si word_count aparece y se ejecuta, el servidor está sano y cualquier fallo posterior será de la red o del formulario.
Exponlo con un túnel
Un túnel da a tu puerto local una dirección HTTPS pública:
ngrok http 8000
La herramienta cloudflared tunnel --url http://localhost:8000 de Cloudflare hace lo mismo. Copia la dirección HTTPS que muestra, añade /mcp y pégala en el campo URL del servidor MCP.
💡 Las URL de túneles gratuitos cambian. Si reinicias el túnel, la dirección cambia y el conector se rompe. Vuelve a crearlo con la nueva URL o pasa a un dominio estable cuando la prueba funcione.
Corrige los errores que te bloquean
Errores comunes y soluciones
Síntoma
Causa probable
Solución
El conector no se crea
La URL es HTTP, local o está detrás de una VPN
Usa una dirección HTTPS pública o un túnel
Error «Not found» al conectar
Ruta incorrecta o ausente (/, /mcp, /sse)
Abre primero la URL exacta en el Inspector
Conecta pero muestra cero herramientas
La solicitud de la lista de herramientas da error
Revisa los logs de tu servidor para la solicitud de la lista
El inicio de sesión de OAuth entra en bucle
El proveedor no permite la dirección de redirección
Añade la dirección de callback que pide la página de configuración de tu proveedor
Las herramientas nunca se llaman
Las descripciones son vagas
Indica cuándo usar cada herramienta y cuándo no
Funcionaba ayer, hoy falla
La dirección del túnel cambió
Vuelve a crear el conector con la nueva URL
Depura en este orden y detente en el primer paso que falle. Primero, abre el Inspector y conéctate a la URL exacta. Segundo, solicita esa URL desde una terminal con curl y confirma que responde por HTTPS. Tercero, revisa los logs de tu servidor mientras haces clic en Crear. Solo entonces sospecha de ChatGPT o del formulario. Trabajar desde el servidor hacia fuera te evita tocar ajustes que nunca estuvieron rotos.
Cuando las herramientas parecen desactualizadas
Has cambiado la lista de herramientas, pero ChatGPT sigue mostrando la anterior. Abre la configuración del conector y usa la opción de actualizar. Si no sirve de nada, elimina el conector y vuelve a añadirlo, lo que obliga a leer de nuevo el servidor.
Un detalle más que conviene saber: la documentación de OpenAI describe una herramienta search que devuelve resultados candidatos y una herramienta fetch que devuelve un documento por ID, para funciones como la investigación profunda. Un servidor con solo herramientas personalizadas puede funcionar en modo desarrollador y, aun así, quedar invisible para esas funciones.
Mantenlo seguro en producción
Inyección de prompts y acciones de escritura
El texto que devuelve tu servidor se convierte en texto que el modelo lee. Un ticket de soporte, una página web o un documento compartido pueden llevar instrucciones ocultas destinadas a dirigir al modelo hacia una herramienta que nunca pretendiste llamar. La advertencia de OpenAI es directa: vigila la inyección de prompts y revisa cada llamada a una herramienta, sobre todo las acciones de escritura.
Construye teniendo eso en cuenta:
Separa las herramientas de lectura de las de escritura. Mantén las de escritura acotadas y pocas.
Exige un ID explícito para cualquier acción destructiva, nunca una cadena de búsqueda vaga.
Añade un argumento de confirmación a los borrados y los pagos.
Mantén los secretos fuera de la salida de las herramientas. Si el modelo ve un token, asume que puede repetirlo.
Registra cada llamada con argumentos, usuario y resultado, para poder rastrear una acción incorrecta.
Limita la frecuencia de uso del servidor, porque un modelo en bucle puede llamar a una herramienta mucho más rápido que una persona.
Añade herramientas de imagen y video
Envuelve los modelos de PicassoIA en herramientas
Los conectores más satisfactorios producen algo que puedes ver. PicassoIA ofrece una API para desarrolladores en https://api.picassoia.com/v1, autenticada con un token bearer que empieza por pia_sk_. Los endpoints siguen el estilo de Replicate: un POST a /v1/models/{owner}/{name}/predictions inicia un trabajo, y un GET en /v1/predictions/{id} consulta su estado. Cuatro modelos están disponibles a través de la API y de MCP:
Los trabajos son asíncronos, así que crea dos herramientas en lugar de una: una que inicie y devuelva un ID de predicción, y otra que compruebe y devuelva el resultado cuando el trabajo termine. ChatGPT puede llamar a la de comprobación hasta que el resultado esté listo.
import os
import httpx
PIA = "https://api.picassoia.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['PICASSOIA_TOKEN']}"}
@mcp.tool()
def start_image(prompt: str) -> dict:
"""Start an image job. Returns an id to pass to get_result."""
r = httpx.post(
f"{PIA}/models/picassoia/picassoia-image/predictions",
headers=HEADERS, json={"input": {"prompt": prompt}}, timeout=30,
)
r.raise_for_status()
return {"id": r.json()["id"]}
@mcp.tool()
def get_result(prediction_id: str) -> dict:
"""Check a job. Returns status and, when finished, the output."""
r = httpx.get(f"{PIA}/predictions/{prediction_id}", headers=HEADERS, timeout=30)
r.raise_for_status()
data = r.json()
return {"status": data.get("status"), "output": data.get("output")}
Trátalo como un boceto. El cuerpo de la solicitud sigue la convención de Replicate, así que confirma los campos de entrada exactos en la página del modelo antes de publicarlo.
Algunos límites condicionan el diseño. Una cuenta ejecuta como máximo 5 predicciones a la vez, y ese recuento se comparte entre tokens y conexiones MCP. Los prompts llegan hasta 4000 caracteres, y el cuerpo de una solicitud, hasta 10 MB. Las condiciones de acceso y los precios están en la página de precios de PicassoIA, así que léelos antes de prometerle a alguien un nivel gratuito.
💡 ¿Prefieres no alojar nada? PicassoIA también ofrece conexiones MCP alojadas, gestionadas en picassoia.com/en/mcp/accounts después de iniciar sesión. Comprueba qué clientes admite una conexión antes de depender de ella en ChatGPT.
Las descripciones de las herramientas importan más que el código que hay detrás, porque el modelo elige las herramientas leyéndolas. Un modelo de lenguaje (LLM) puede pulirlas en pocos minutos:
Pega los nombres de tus herramientas, sus descripciones y sus esquemas de entrada en formato JSON, para que no se pierda nada.
Pide: "Reescribe cada descripción para que un modelo sepa exactamente cuándo llamar a esta herramienta y cuándo no."
Pide diez prompts de prueba: cinco que deberían activar la herramienta y cinco que no.
Ejecuta los diez en el chat de tu conector. Anota cada fallo, ajusta la descripción y repite.
Para una segunda opinión sobre la redacción, pega el mismo material en Claude Sonnet 5 y compara las dos reescrituras. Quédate con la descripción que sea más corta y más precisa.
Tu siguiente experimento
Crea primero el contador de palabras y observa cómo aparece esa primera llamada a una herramienta en un chat. Luego dale al conector algo que mostrar. Añade el iniciador de imágenes, pide a ChatGPT una foto de una escena corriente y cambia un detalle en cada petición: la lente, la luz, la hora del día. Los pequeños cambios te enseñan más sobre prompts que cualquier descripción larga.
Cuando quieras imágenes terminadas sin escribir un servidor, abre PicassoIA y prueba a crear tus propias imágenes con PicassoIA Image, refínalas con PicassoIA Image Editor Pro y da vida a una favorita con PicassoIA Video. Elige un prompt, ejecútalo de tres maneras y quédate con la versión que de verdad te llame la atención.