blog/developers·24 sept 2026·5 min·por el equipo de eroq
El servidor MCP de eroq ahora usa OAuth: sin claves que pegar
Cómo funciona «Conectar eroq» en Claude, ChatGPT, Claude Code, Cursor y VS Code: OAuth 2.1 con PKCE, registro dinámico y una clave revocable por app.
Hasta este mes, conectar eroq a una app de IA significaba pegar una clave de API en un archivo de configuración o, en las apps que no podían enviar cabeceras, meter la clave en la URL. Funcionaba, pero no era la forma correcta: una clave en los ajustes de una app de chat es un secreto en el lugar equivocado, y nadie la rota. El servidor MCP remoto de https://eroq.ai/mcp ahora tiene un inicio de sesión como es debido. Haz clic en Connect, inicia sesión en eroq.ai, haz clic en Allow y listo. Así es como funciona, lo que recibe la app y lo que cambiamos en las herramientas de paso.
Lo que recibe la app
Cuando haces clic en Allow, eroq emite una clave eroq_sk_… normal para esa app, con su nombre («Claude (connected)», «Cursor on studio-mac (connected)»), y se la entrega a la app como token de acceso. Esa clave aparece en Desarrolladores → Claves de API como cualquier otra. Revócala ahí y la conexión se corta al instante; vuelve a conectar y se emite una nueva. Reconectar una app con el mismo nombre sustituye su clave anterior, así que si pierdes un equipo, basta con una revocación para dejarlo todo limpio.
No hay tabla de sesiones, ni refresh token, ni una segunda identidad: la app llama a /mcp y /v1 con una clave, así que la facturación, los roles del espacio de trabajo, los límites de frecuencia, los bloqueos y la revocación funcionan exactamente igual que con una clave creada a mano. La página MCP tiene un botón por app.
El flujo, para curiosos
Es OAuth 2.1 estándar, y por eso cualquier cliente que hable la especificación de autenticación de MCP funciona sin que tengamos que escribir código para cada cliente:
- La app llama a
POST /mcpsin token y recibe un401con una cabeceraWWW-Authenticateque apunta a/.well-known/oauth-protected-resource, que a su vez apunta a/.well-known/oauth-authorization-server. - La app se registra (
POST /oauth/register, registro dinámico según RFC 7591, con su nombre y sus URI de redirección) y recibe unclient_id. ChatGPT se registra de otra forma: suclient_ides la URL de un documento de metadatos que aloja él mismo, y que nosotros descargamos y verificamos. - Abre
GET /oauth/authorizeen tu navegador con un desafío PKCE (S256, obligatorio). Inicias sesión si hace falta, ves «App wants to use your eroq account» (la app quiere usar tu cuenta de eroq) y haces clic en Allow. - Intercambia el código en
POST /oauth/tokencon el verificador PKCE y recibe la clave. Los códigos viven dos minutos y están ligados al cliente, a la URI de redirección y al desafío. POST /oauth/revokecon la clave cuando te desconectas desde el lado de la app.
El client_id es un blob firmado con los datos del registro (cualquiera en internet puede registrarse, así que una tabla solo acumularía spam), y el código de autorización es la propia clave, sellada, ligada y de vida corta. Nada nuevo que aprovisionar; nada que filtrar de una base de datos que no existe.
Las claves siguen funcionando. Los scripts y los clientes sin flujo OAuth envían Authorization: Bearer eroq_sk_…, y los clientes que no pueden enviar cabeceras usan https://eroq.ai/mcp/<key>; en ese caso, esa URL es un secreto. Codex CLI usa la CLI de eroq como servidor stdio local con una clave en su entorno.
App por app
- Claude (web y escritorio): un clic en la página de Claude abre «Add custom connector» con la URL de eroq ya incluida; Add, Connect, Allow.
- ChatGPT: Developer mode (modo desarrollador; Plus, Pro, Business, Enterprise, Edu), crea una app con la URL y elige OAuth. La guía de ChatGPT lo explica paso a paso.
- Claude Code:
claude mcp add --transport http eroq https://eroq.ai/mcp, y luego/mcp→ eroq → Authenticate. O el plugin. - Cursor y VS Code: enlaces de instalación en un clic en sus páginas; el inicio de sesión se hace en el primer uso. La guía de editores cubre los dos.
Qué cambió en las herramientas
La lista de herramientas sigue siendo la misma, diez (generate_image, get_image_status, generate_video, get_video_status, generate_speech, enhance_prompt, list_models, list_voices, list_characters, get_account), con tres cambios que conviene conocer si construiste algo encima:
Las imágenes vuelven como imágenes. generate_image pone el render en cola (las imágenes ahora son asíncronas en /v1, un job por toma, como el video), lo consulta dentro de la propia llamada (muy por debajo del tiempo máximo de la petición) y devuelve la imagen inline más un enlace firmado válido durante treinta minutos; el render también se queda en tu biblioteca. Las apps de chat muestran las imágenes de las herramientas y rara vez descargan una URL, así que lo inline es lo que aparece en la conversación. Un arranque en frío lento devuelve un id de job para get_image_status, que es gratis. Nuevo parámetro aspect: 1:1, 3:4, 4:3, 9:16, 16:9, mismo precio.
El video conoce el catálogo de motores. generate_video acepta un model entre los 16 motores (por defecto, Seedance 2.0 Mini), una resolution entre las que ofrece ese motor, un interruptor audio en los motores con banda sonora y reference_image_url como primer fotograma en los motores con imagen a video. Los precios de list_models salen de la función de facturación, nunca de un número escrito a mano: un clip de cinco segundos cuesta 45 créditos en el motor por defecto, 170 en Kling 3.0 y 135 en Veo 3.1 Fast. Algunos motores requieren un plan, y la lista dice cuáles.
ChatGPT ve la autenticación. Las herramientas declaran su esquema de seguridad OAuth en el listado, que es lo que hace que ChatGPT muestre su interfaz «connect»; los demás clientes ignoran ese campo.
Preguntas frecuentes
¿El token de acceso es una clave de API real?
Sí: una clave normal, con el nombre de la app, en tu espacio de trabajo. De eso se trata: un solo tipo de credencial, un solo lugar para revocarla, la misma facturación y los mismos roles en todas partes.
¿Puedo seguir usando una clave creada a mano?
Sí, como cabecera Bearer, o en la URL para los clientes que no pueden enviar cabeceras. OAuth es la opción predeterminada para las apps que lo admiten, no un requisito.
¿Qué ve la app de mi cuenta?
Solo lo que su clave puede llamar: las herramientas de generación, las consultas gratuitas y el saldo. Nunca ve tu contraseña; el inicio de sesión se hace en eroq.ai.
¿Conectar cuesta algo?
No. Las llamadas se cobran a los precios del estudio (10 créditos por una imagen de Krea 2, 45 por un clip de cinco segundos de Seedance 2.0 Mini) y los renders fallidos se reembolsan solos.
Elige tu app en eroq.ai/mcp; la documentación de MCP tiene las variantes con cabecera y con CLI.
Crea esto con los modelos detrás del artículo: empieza con 50 créditos gratis o explora todos los motores y sus precios.