Skip to main content
Glama

Kairogen MCP

Сервер Model Context Protocol для Kairogen. Подключайте Claude, Cursor, ChatGPT (пользовательские коннекторы), Hermes, OpenClaw или любой другой агент, совместимый с MCP, и создавайте изображения и видео, используя полный каталог моделей Kairogen (Seedream, Flux, Nano Banana, GPT Image, Sora, Veo, Kling, Seedance, KairoClone, Topaz).

Аутентификация осуществляется через OAuth 2.0. Не нужно копировать или обновлять API-ключи.

Подключение за 30 секунд

Claude.ai (Пользовательский коннектор)

  1. Settings → Connectors → Add custom connector

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

  3. Нажмите Connect → войдите в систему через Kairogen → подтвердите доступ

Cursor (~/.cursor/mcp.json)

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

Перезапустите Cursor и нажмите Connect, когда появится запрос.

ChatGPT (Пользовательский коннектор)

Settings → Connectors → New custom connector → вставьте https://mcp.kairogen.ai/mcp. Войдите в систему, когда ChatGPT запросит это.

Claude Code

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

Флаг --transport http обязателен для удаленных MCP-серверов, защищенных OAuth. Без него CLI предполагает использование stdio и пытается выполнить URL как локальный бинарный файл.

Hermes / OpenClaw / NemoClaw (агенты только для чата)

Вставьте этот промпт в агент:

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.

Агент ответит ссылкой. Откройте её, нажмите Permitir acesso, и вы подключены.

Локальный stdio (Claude Desktop, headless-разработка, офлайн)

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

При первом запуске CLI выполняет поток OAuth-устройства, открывает браузер и кэширует токены в ~/.kairogen/tokens.json с автоматическим обновлением. Переменные окружения не требуются.

Инструменты

Инструмент

Что делает

Область действия

list_models

Поиск всех моделей изображений/видео

(public)

get_credits

Проверка остатка баланса кредитов

kairogen:read

estimate_cost

Предварительный просмотр стоимости кредитов перед генерацией

(public)

generate_image

Генерация одного или нескольких изображений. Блокирует выполнение до завершения (по умолчанию 10 мин).

kairogen:generate

generate_video

Генерация видео (текст-в-видео или изображение-в-видео). Блокирует выполнение до завершения (по умолчанию 15 мин).

kairogen:generate

upscale_image

Увеличение изображения в 2x или 4x с помощью Topaz Photo AI

kairogen:generate

get_generation

Опрос статуса предыдущей генерации

kairogen:read

Все инструменты generate_* поддерживают wait_for_completion: false, чтобы немедленно вернуть generation_id и позволить вам опрашивать статус через get_generation. Во время опроса они отправляют MCP-уведомления notifications/progress каждые 5 секунд, поэтому Claude Desktop / Cursor и другие отображают индикатор выполнения в реальном времени, а соединение не разрывается по таймауту во время рендеринга.

Конфигурация

Переменные окружения (все необязательны, имеют разумные значения по умолчанию):

Переменная

По умолчанию

Назначение

KAIROGEN_API_BASE

https://api.kairogen.ai

Переопределение для стейджинга или self-hosted

KAIROGEN_ISSUER

https://api.kairogen.ai

Базовый URL OAuth-эмитента

KAIROGEN_CLIENT_ID

kairogen-mcp

Предварительно зарегистрированный ID OAuth-клиента

KAIROGEN_API_KEY

(пусто)

Переопределение OAuth и использование статического токена (CI / headless)

KAIROGEN_CONFIG_DIR

~/.kairogen

Где кэшировать OAuth-токены

Локальная разработка

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

Дымовое тестирование (агент не требуется):

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

Развертывание (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 обязателен: он заполняет поле authorization_servers в /.well-known/oauth-protected-resource, с помощью которого MCP-клиенты обнаруживают, где запускать поток OAuth. Если вам нужно несколько эмитентов, укажите их через запятую.

Переменные окружения бэкенда, необходимые для OAuth-эмитента

Сервер аутентификации (kairogen-backend-development) требует установки следующих переменных в своей среде развертывания:

Переменная

Обязательно

Назначение

OAUTH_JWT_PRIVATE_KEY

да (prod)

RSA PEM. Сгенерируйте с помощью openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048.

OAUTH_ISSUER

рекомендуется

По умолчанию https://api.kairogen.ai. Должен совпадать с тем, что ожидает MCP-сервер.

OAUTH_AUDIENCE

рекомендуется

По умолчанию kairogen-api. Должен совпадать с тем, что ожидает MCP-сервер.

OAUTH_WEBSITE_DOMAIN

да

Источник фронтенда, хостящего /oauth/consent и /device. По умолчанию https://app.kairogen.ai. В разработке переопределите на http://localhost:3000 (или там, где работает ваш Nuxt dev-сервер), иначе эндпоинты согласия вернут 403.

OAUTH_INTROSPECTION_SECRET

опционально

Случайная строка из 32+ символов. Пустое значение отключает /oauth/introspect.

CORS_ORIGINS

да (prod)

Разделенный запятыми список разрешенных источников. Пустое значение в продакшене теперь отклоняет все кросс-доменные запросы. Установите https://app.kairogen.ai (плюс любые другие источники UI), чтобы разрешить страницу согласия.

DNS: укажите mcp.kairogen.ai (CNAME) на имя хоста приложения Fly.

Архитектура

  • Фронтенд (kairogen-frontend-development) размещает экраны согласия по адресам /oauth/consent, /device и /settings/connections.

  • Бэкенд (kairogen-backend-development) является OAuth-эмитентом. Монтирует /.well-known/oauth-authorization-server, /.well-known/jwks.json, /oauth/authorize/approve, /oauth/token, /oauth/device_authorization, /oauth/device/approve, /oauth/connections.

  • MCP-сервер (этот репозиторий) является сервером ресурсов. Проверяет Bearer JWT, выданные бэкендом, по опубликованному JWKS, а затем проксирует вызовы инструментов к api.kairogen.ai с токеном пользователя.

Дорожная карта

  • [x] v0.1 stdio + вставка sAccessToken (устарело)

  • [x] v0.2 поток OAuth-устройства при первом запуске stdio

  • [x] v0.3 хостинг Streamable HTTP на mcp.kairogen.ai

  • [ ] v0.4 Ресурсы (kairogen://models, kairogen://prompt-guide/{model})

  • [ ] v0.5 Маркетинговая студия + потоки управления кино как инструменты более высокого уровня

Лицензия

MIT

Related MCP Connectors