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.

ChatGPT MCP Connector: cómo añadir un servidor MCP personalizado
Cristian Da Conceicao
Fundador de Picasso IA

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.

Cable de fibra óptica amarillo conectado a un switch de red

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:

  1. La URL debe ser accesible desde internet público.
  2. Debe usar HTTPS.
  3. Los servidores detrás de una VPN o de una red privada no se conectarán.

ChatGPT acepta dos transportes remotos:

TransporteFunciona con ChatGPTURL típicaNotas
Streamable HTTPSíhttps://your-domain.com/mcpLa mejor opción para un servidor nuevo
SSE (Server-Sent Events)Síhttps://your-domain.com/sseEstilo más antiguo, aún aceptado
stdio (proceso local)NoningunaEnvuélvelo primero en un servidor HTTP

Vista desde abajo de un pasillo de centro de datos entre racks de servidores

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:

  1. Haz clic en el icono de tu perfil, abajo a la izquierda, y abre Configuración.
  2. Abre Conectores. Las versiones más recientes llaman a esta página Apps y conectores.
  3. Busca el interruptor Modo desarrollador cerca de la parte inferior de la página y actívalo. En algunas cuentas está en Seguridad.
  4. 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.

Mujer trabajando en un equipo portátil en una mesa de cafetería con una pantalla de configuración

Añade el conector paso a paso

Rellena el formulario

Haz clic en Crear y rellena estos campos:

CampoQué introducirConsejo
NombreUna etiqueta corta, como "Order Lookup"Es lo que eliges en el menú del chat
DescripciónUna o dos frases sobre lo que hace el servidorEl modelo la lee para decidir si llama a una herramienta, así que escríbela como una instrucción
IconoOpcionalTe ayuda a localizarlo en una lista larga
URL del servidor MCPLa URL HTTPS completa con la ruta, como https://api.example.com/mcpUna ruta que falta es una causa muy común de fallo
AutenticaciónSin autenticación u OAuthDetalles en la siguiente sección

Marca la casilla que confirma que confías en la aplicación y haz clic en Crear.

Vista cenital de un escritorio con un diagrama en cuaderno, un equipo portátil y café

Elige sin autenticación u OAuth

OpciónÚsala cuandoRiesgo
Sin autenticaciónDatos públicos de solo lectura o un servidor de prueba desechableCualquiera que encuentre la URL puede llamar a tus herramientas
OAuthTodo lo ligado a una cuenta de usuario, datos privados o acciones de escrituraDebes 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.

Token de seguridad de hardware conectado al puerto USB de un equipo portátil

Úsalo en un chat

  1. Inicia un chat nuevo y haz clic en el icono de más.
  2. Elige Más y luego Modo desarrollador.
  3. Selecciona tu conector como fuente.
  4. Pide algo que el servidor pueda hacer, como "lista mis pedidos abiertos".
  5. ChatGPT propone una llamada a una herramienta y muestra los argumentos.
  6. 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

Primer plano de manos escribiendo en un teclado mecánico en un despacho en casa

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íntomaCausa probableSolución
El conector no se creaLa URL es HTTP, local o está detrás de una VPNUsa una dirección HTTPS pública o un túnel
Error «Not found» al conectarRuta incorrecta o ausente (/, /mcp, /sse)Abre primero la URL exacta en el Inspector
Conecta pero muestra cero herramientasLa solicitud de la lista de herramientas da errorRevisa los logs de tu servidor para la solicitud de la lista
El inicio de sesión de OAuth entra en bucleEl proveedor no permite la dirección de redirecciónAñade la dirección de callback que pide la página de configuración de tu proveedor
Las herramientas nunca se llamanLas descripciones son vagasIndica cuándo usar cada herramienta y cuándo no
Funcionaba ayer, hoy fallaLa 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.

Desarrollador reclinado en una silla, frustrado ante un equipo portátil

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.

Ingeniero de seguridad revisando registros de acceso impresos en una sala de reuniones

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.

Usa GPT 5.6 Sol en PicassoIA

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:

  1. Abre la página de GPT 5.6 Sol en PicassoIA.
  2. Pega los nombres de tus herramientas, sus descripciones y sus esquemas de entrada en formato JSON, para que no se pierda nada.
  3. Pide: "Reescribe cada descripción para que un modelo sepa exactamente cuándo llamar a esta herramienta y cuándo no."
  4. Pide diez prompts de prueba: cinco que deberían activar la herramienta y cinco que no.
  5. 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.

Fotógrafo colocando fotos impresas de paisajes en un estudio luminoso

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.

Compartir este artículo

Elige tu idioma