Skip to main content
Glama

Kairogen MCP

Servidor del Protocolo de Contexto de Modelos (MCP) para Kairogen. Conecta Claude, Cursor, ChatGPT (conectores personalizados), Hermes, OpenClaw o cualquier agente compatible con MCP y genera imágenes y vídeos utilizando el catálogo completo de modelos de Kairogen (Seedream, Flux, Nano Banana, GPT Image, Sora, Veo, Kling, Seedance, KairoClone, Topaz).

La autenticación es OAuth 2.0. No hay claves de API que copiar o rotar.

Conecta en 30 segundos

Claude.ai (Conector personalizado)

  1. Ajustes → Conectores → Añadir conector personalizado

  2. URL: https://mcp.kairogen.ai/mcp

  3. Haz clic en Conectar → inicia sesión con Kairogen → aprueba

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "kairogen": {
      "url": "https://mcp.kairogen.ai/mcp"
    }
  }
}

Reinicia Cursor y haz clic en Conectar cuando se te solicite.

ChatGPT (Conector personalizado)

Ajustes → Conectores → Nuevo conector personalizado → pega https://mcp.kairogen.ai/mcp. Inicia sesión cuando ChatGPT lo solicite.

Claude Code

claude mcp add --transport http kairogen https://mcp.kairogen.ai/mcp

La bandera --transport http es necesaria para servidores MCP remotos protegidos por OAuth. Sin ella, la CLI asume stdio e intenta ejecutar la URL como un binario local.

Hermes / OpenClaw / NemoClaw (agentes solo de chat)

Pega este prompt en el agente:

Connect the Kairogen MCP at https://mcp.kairogen.ai/mcp. It supports OAuth device flow,
discovery at https://mcp.kairogen.ai/.well-known/oauth-protected-resource. Run the device
flow and reply with: Authorize here: https://app.kairogen.ai/device?code=XXXX-XXXX. Then
poll the token endpoint until I authorize and confirm once it succeeds.

El agente responderá con un enlace. Ábrelo, haz clic en Permitir acceso, y estarás conectado.

Stdio local (Claude Desktop, desarrollo headless, offline)

{
  "mcpServers": {
    "kairogen": {
      "command": "npx",
      "args": ["-y", "@kairogen/mcp"]
    }
  }
}

En el primer inicio, la CLI ejecuta el flujo de dispositivo OAuth, abre tu navegador y almacena en caché los tokens en ~/.kairogen/tokens.json con actualización automática. No se requieren variables de entorno.

Herramientas

Herramienta

Qué hace

Alcance

list_models

Descubre todos los modelos de imagen/vídeo

(público)

get_credits

Comprueba el saldo de créditos restante

kairogen:read

estimate_cost

Previsualiza el coste en créditos antes de generar

(público)

generate_image

Genera una o más imágenes. Bloquea hasta finalizar (por defecto 10 min).

kairogen:generate

generate_video

Genera un vídeo (texto a vídeo o imagen a vídeo). Bloquea hasta finalizar (por defecto 15 min).

kairogen:generate

upscale_image

Escala una imagen 2x o 4x con Topaz Photo AI

kairogen:generate

get_generation

Consulta el estado de una generación anterior

kairogen:read

Todas las herramientas generate_* admiten wait_for_completion: false para devolver el generation_id inmediatamente y permitirte consultar mediante get_generation. Emiten latidos de notifications/progress de MCP cada 5 segundos durante la consulta, por lo que Claude Desktop / Cursor / etc. muestran un indicador de progreso en vivo y la conexión nunca se agota durante el renderizado.

Configuración

Variables de entorno (todas opcionales, con valores predeterminados razonables):

Var

Predeterminado

Propósito

KAIROGEN_API_BASE

https://api.kairogen.ai

Sustitución para staging o autoalojado

KAIROGEN_ISSUER

https://api.kairogen.ai

URL base del emisor OAuth

KAIROGEN_CLIENT_ID

kairogen-mcp

ID de cliente OAuth pre-registrado

KAIROGEN_API_KEY

(vacío)

Sustituye OAuth y usa un token estático (CI / headless)

KAIROGEN_CONFIG_DIR

~/.kairogen

Dónde almacenar en caché los tokens OAuth

Desarrollo local

git clone https://github.com/kairogenai/kairogen-mcp.git
cd kairogen-mcp
npm install
npm run build

# stdio mode (with OAuth device flow on first run):
node dist/stdio.js

# remote HTTP mode (validates Bearer tokens against api.kairogen.ai/.well-known/jwks.json):
PORT=8080 node dist/http.js

Prueba de humo (no se necesita agente):

KAIROGEN_API_KEY=eyJ... node -e "
const init = JSON.stringify({jsonrpc:'2.0',id:1,method:'initialize',params:{protocolVersion:'2025-11-25',capabilities:{},clientInfo:{name:'smoke',version:'0'}}});
const initd = JSON.stringify({jsonrpc:'2.0',method:'notifications/initialized'});
const list = JSON.stringify({jsonrpc:'2.0',id:2,method:'tools/list'});
process.stdout.write(init+'\\n'+initd+'\\n'+list+'\\n');
" | node dist/stdio.js

Despliegue (mcp.kairogen.ai)

fly launch --no-deploy --copy-config --name kairogen-mcp
fly secrets set \
  MCP_RESOURCE=https://mcp.kairogen.ai \
  OAUTH_ISSUER=https://api.kairogen.ai \
  OAUTH_AUDIENCE=kairogen-api \
  MCP_AUTH_SERVERS=https://api.kairogen.ai \
  KAIROGEN_API_BASE=https://api.kairogen.ai
fly deploy
fly certs add mcp.kairogen.ai

MCP_AUTH_SERVERS es obligatorio: rellena el campo authorization_servers en /.well-known/oauth-protected-resource, que es cómo los clientes MCP descubren dónde ejecutar el flujo OAuth. Separado por comas si alguna vez necesitas múltiples emisores.

Variables de entorno del backend que necesita el emisor OAuth

El servidor de autenticación (kairogen-backend-development) necesita que estas estén configuradas en su propio entorno de despliegue:

Var

Obligatorio

Propósito

OAUTH_JWT_PRIVATE_KEY

sí (prod)

RSA PEM. Generar con openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048.

OAUTH_ISSUER

recomendado

Predeterminado https://api.kairogen.ai. Debe coincidir con lo que espera el servidor MCP.

OAUTH_AUDIENCE

recomendado

Predeterminado kairogen-api. Debe coincidir con lo que espera el servidor MCP.

OAUTH_WEBSITE_DOMAIN

Origen del frontend que aloja /oauth/consent y /device. Predeterminado https://app.kairogen.ai. (o donde se ejecute tu servidor de desarrollo Nuxt) o los endpoints de consentimiento darán 403.

OAUTH_INTROSPECTION_SECRET

opcional

Cadena aleatoria de más de 32 caracteres. Un valor vacío deshabilita /oauth/introspect.

CORS_ORIGINS

sí (prod)

Lista de permitidos de orígenes separados por comas. Vacío en producción ahora rechaza todas las solicitudes de origen cruzado. Configurar en https://app.kairogen.ai (más cualquier otro origen de UI) para permitir la página de consentimiento.

DNS: apunta mcp.kairogen.ai (CNAME) al nombre de host de la aplicación Fly.

Arquitectura

  • Frontend (kairogen-frontend-development) aloja las pantallas de consentimiento en /oauth/consent, /device y /settings/connections.

  • Backend (kairogen-backend-development) es el emisor OAuth. Monta /.well-known/oauth-authorization-server, /.well-known/jwks.json, /oauth/authorize/approve, /oauth/token, /oauth/device_authorization, /oauth/device/approve, /oauth/connections.

  • Servidor MCP (este repositorio) es un Servidor de Recursos. Valida los JWT Bearer emitidos por el backend contra el JWKS publicado, luego redirige las llamadas de herramientas a api.kairogen.ai con el token del usuario.

Hoja de ruta

  • [x] v0.1 stdio + pegado de sAccessToken (obsoleto)

  • [x] v0.2 flujo de dispositivo OAuth en el primer inicio de stdio

  • [x] v0.3 HTTP Streamable alojado en mcp.kairogen.ai

  • [ ] v0.4 Recursos (kairogen://models, kairogen://prompt-guide/{model})

  • [ ] v0.5 Flujos de Marketing Studio + Cinema Control como herramientas de nivel superior

Licencia

MIT

F
license - not found
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kairogenai/kairogen-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server