genmux API теперь доступен всем. Читать документацию →
genmux API

Блог

MCP-сервер genmux: картинки из Claude, Cursor и OpenCode

5 мин чтенияАвтор genmux API Team


Model Context Protocol (MCP) — стандартный способ дать AI-ассистенту набор инструментов: небольшой сервер публикует функции, ресурсы и шаблоны промптов, а любой MCP-клиент — Claude Desktop, Claude Code, Cursor, OpenCode, Continue, Windsurf — вызывает их прямо по ходу диалога. @genmux/mcp — такой сервер для genmux: когда он подключён, «сделай мне hero-картинку 16:9 для страницы цен, но сначала скажи, сколько это стоит» — это фраза, которую вы печатаете ассистенту, а не скрипт, который вы пишете.

Установка: одна команда

Сервер — npm-пакет, который запускается по требованию через npx. Единственная обязательная настройка — ключ:

bash
GENMUX_API_KEY=nb_live_... npx -y @genmux/mcp

Переменные окружения:

ПеременнаяПо умолчаниюНазначение
GENMUX_API_KEY— (обязательно)Ваш ключ genmux; не покидает вашу машину
GENMUX_API_BASEhttps://api.genmux.tech/v1Переопределение для тестового стенда
GENMUX_OUTPUT_DIR./genmux-imagesКуда generate_image сохраняет файлы, если попросить

Вручную это не запускают — сервер стартует клиент. Настраивается именно клиент.

Сниппеты для клиентов

Claude Code и Claude Desktop

bash
claude mcp add genmux -e GENMUX_API_KEY=nb_live_... -- npx -y @genmux/mcp

Cursor — .cursor/mcp.json в проекте (или глобальный файл из настроек Cursor):

json
{
  "mcpServers": {
    "genmux": {
      "command": "npx",
      "args": ["-y", "@genmux/mcp"],
      "env": { "GENMUX_API_KEY": "nb_live_..." }
    }
  }
}

OpenCode — блок mcp рядом с блоком provider в opencode.json:

json
{
  "mcp": {
    "genmux": {
      "type": "local",
      "command": ["npx", "-y", "@genmux/mcp"],
      "environment": { "GENMUX_API_KEY": "nb_live_..." }
    }
  }
}

Continue — в config.yaml:

yaml
mcpServers:
  - name: genmux
    command: npx
    args: ["-y", "@genmux/mcp"]
    env:
      GENMUX_API_KEY: nb_live_...

Хостинговый эндпоинт — для клиентов без шелла

Некоторые клиенты не могут запустить локальный процесс: браузерный ассистент, залоченный корпоративный ноутбук, команда, которая не хочет раскладывать ключи по конфигам. Для них тот же сервер работает у нас по адресу https://mcp.genmux.tech/mcp через Streamable HTTP, с ключом в заголовке Bearer:

json
{
  "mcpServers": {
    "genmux": {
      "url": "https://mcp.genmux.tech/mcp",
      "headers": { "Authorization": "Bearer nb_live_..." }
    }
  }
}

В веб- и десктопных приложениях Claude это «custom connector» с этим URL. Набор инструментов тот же; отличается только то, где живёт ключ.

Что публикует сервер

Инструменты — то, что ассистент может вызвать:

ИнструментЧто делает
list_modelsКаталог с ценами; kind фильтрует графические и текстовые модели
estimate_costСколько юнитов будет стоить запрос — до его выполнения
generate_imagemodel, prompt, resolution, ratio, n, negative_prompt, reference_images, save — отправляет задание, ждёт, возвращает URL (и пути к файлам, если включён save)
get_generationОдно задание по id: статус, результаты, стоимость
list_generationsНедавние задания аккаунта
account_balanceОстаток юнитов

Ресурсы — документы, которые ассистент может загрузить в контекст: genmux://docs/llms.txt, genmux://docs/openapi.yaml, genmux://models и сниппеты кода genmux://snippets/python, /node, /curl, /openai-sdk.

Промпты — два шаблона: integrate-genmux (проводит ассистента через добавление API в вашу кодовую базу, опираясь на сниппеты) и pick-a-model (задаёт правильные вопросы и рекомендует модель и разрешение).

Инструмента чата нет намеренно. Ваш ассистент и так чат-модель; если хочется DeepSeek или Qwen3 внутри него — это OpenAI-совместимый эндпоинт, а не MCP: см. посты про OpenCode и Continue.

Разобранный пример

Сервер подключён в Claude Code, в проекте есть папка public/:

Вы: Нужна hero-картинка для страницы цен — чистая изометрическая иллюстрация: стопки монет превращаются в пиксели, тёмный фон, 16:9. Используй nanobanana. Сначала оцени стоимость и не генерируй, пока я не скажу.

Ассистент вызывает estimate_cost с {"model": "nanobanana", "resolution": "1K", "ratio": "16:9", "n": 1} и отчитывается:

Ассистент: Одна картинка 1K на Nano Banana — 2 юнита (около $0.025 по тарифу Scale); для 2K понадобится Nano Banana Pro за 6 юнитов. На балансе 1 184 юнита. Генерирую в 1K?

Вы: Да, сохрани в public/hero-pricing.png.

Он вызывает generate_image с save: true и GENMUX_OUTPUT_DIR, указывающим на public/, ждёт задание (Nano Banana в 1K занимает несколько секунд) и возвращается с путём к файлу, id задания и фактическим списанием из записи задания. Если попросить три варианта (n: 3), оценка станет 6 юнитов≈ $0.073 × 1K Nano Banana — и ассистент должен сказать об этом до того, как потратит.

Чего ждать от хорошего клиента: он сам оценивает стоимость, когда запрос дорогой, использует list_models, когда вы называете модель приблизительно («та, что Pro»), и читает genmux://snippets/node перед тем, как писать код интеграции, вместо того чтобы угадывать форму запроса. Шаблон integrate-genmux делает последнюю привычку явной.

Чем это лучше shell-скрипта

Можно обернуть вызовы curl в скрипт и заставить ассистента его запускать. MCP-сервер даёт три вещи, которых у скрипта нет: типизированные схемы инструментов, которые модель понимает без документации; estimate_cost как полноценный шаг (ассистент спрашивает до того, как тратить); ресурсы, которые модель читает, чтобы написать правильный код. Неудачные задания возвращаются автоматически, так что ассистент, промахнувшийся с промптом, не стоит ничего, — а вот ассистент, который сгенерировал десять картинок в 4K, когда вы имели в виду одну, — это ровно тот случай, ради которого существует estimate_cost.

С чего начать

npx -y @genmux/mcp с вашим ключом, один из сниппетов выше — и ассистент перечисляет модели, называет цену и генерирует картинки с того же баланса, с которого оплачиваются DeepSeek и Qwen3. Детали модели и цены по разрешениям — на странице Nano Banana и странице цен; актуальный список инструментов и сниппеты клиентов — на странице MCP, а REST API, который оборачивает сервер, описан в документации.

Об авторе

Автор genmux API Team — genmux API.

Подробнее о нас