Skip to main content
Glama

Научите любого ИИ-агента создавать изображения и видео

mediamcp — это MCP-сервер, который соединяет вашего ИИ-ассистента — Claude Code, Claude Desktop, Cursor, Windsurf, VS Code или любой другой клиент с поддержкой MCP — с облачными медиамоделями (Gemini Flash Image, GPT-5 Image, Seedream, Veo, Sora, …) через OpenRouter или любой OpenAI-совместимый API.

npm version CI node >= 20 license: MIT

English | Русский

⭐ Баннер выше сгенерирован самим mediamcp — один вызов generate_image.


Сгенерированные файлы всегда сохраняются на диск (по умолчанию в ~/Pictures/mediamcp), а каждый ответ содержит абсолютный путь к файлу и небольшое встроенное превью — агент сразу видит, что у него получилось.

ИИ-агентам: инструкция по установке, оптимизированная специально для вас, лежит в llms-install.md.

Вам понадобится API-ключ OpenRouter — получить его можно на https://openrouter.ai/keys.

Быстрая установка

Claude Code

claude mcp add mediamcp -e OPENROUTER_API_KEY=sk-or-v1-YOUR_KEY -- npx -y mediamcp

Claude Desktop

Добавьте в claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json) и перезапустите Claude Desktop:

{
  "mcpServers": {
    "mediamcp": {
      "command": "npx",
      "args": ["-y", "mediamcp"],
      "env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
    }
  }
}

Cursor

Install MCP Server

Или добавьте в ~/.cursor/mcp.json:

{
  "mcpServers": {
    "mediamcp": {
      "command": "npx",
      "args": ["-y", "mediamcp"],
      "env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
    }
  }
}

Windsurf

Добавьте в ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "mediamcp": {
      "command": "npx",
      "args": ["-y", "mediamcp"],
      "env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
    }
  }
}

VS Code (GitHub Copilot)

Install in VS Code

Или добавьте в .vscode/mcp.json (ключ запрашивается отдельно и не попадает в файл):

{
  "servers": {
    "mediamcp": {
      "command": "npx",
      "args": ["-y", "mediamcp"],
      "env": { "OPENROUTER_API_KEY": "${input:openrouter-key}" }
    }
  },
  "inputs": [
    {
      "id": "openrouter-key",
      "type": "promptString",
      "password": true,
      "description": "OpenRouter API key (https://openrouter.ai/keys)"
    }
  ]
}

Related MCP server: imagine-mcp

Что сможет делать ваш агент

После установки просто скажите агенту что-нибудь вроде «сгенерируй hero-изображение для моего лендинга, 16:9», «убери фон с logo.png», «сделай 8-секундное видео с океанскими волнами на закате» или «оживи logo.png в 4-секундное видео» (image-to-video). Агент сам выберет подходящий инструмент:

Инструмент

Что делает

generate_image

Текст → изображение (одно или несколько). Сохраняет на диск, возвращает путь и встроенное превью. Поддерживает count (до 4 вариаций), aspect_ratio и переопределение model.

edit_image

Существующее изображение (одно или несколько) + инструкция → отредактированное изображение. Принимает пути к файлам, https://- и data:-URL; несколько источников — для объединения изображений в одну композицию.

generate_video

Текст → видео или картинка → видео (асинхронная задача, обычно 1–5 минут). Передайте first_frame_image, чтобы оживить существующую картинку (image-to-video), last_frame_image — для финального кадра, или reference_images — как референс стиля. Нужна i2v-модель (bytedance/seedance-2.0, bytedance/seedance-2.0-fast, google/veo-3.1). Дожидается результата, сохраняет mp4, возвращает путь. При таймауте возвращает polling_url.

check_video_status

Возобновляет ожидание видеозадачи по polling_url / id; по готовности скачивает результат.

list_models

Выводит слаги и цены моделей с поддержкой изображений/видео — агент сможет сам подобрать модель.

check_config

Диагностика: наличие и валидность ключа, эндпоинт, значения по умолчанию, возможность записи в каталог вывода. Если что-то не работает — запускайте его первым.

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

Всё настраивается через переменные окружения в блоке env конфигурации вашего MCP-клиента:

Переменная

По умолчанию

Назначение

OPENROUTER_API_KEY

—

Обязательна. Ваш ключ OpenRouter.

MEDIAMCP_API_KEY

—

Псевдоним OPENROUTER_API_KEY для эндпоинтов, отличных от OpenRouter; имеет приоритет, если заданы обе переменные.

MEDIAMCP_BASE_URL

https://openrouter.ai/api/v1

Корневой URL любого OpenAI-совместимого API.

MEDIAMCP_MODEL

google/gemini-2.5-flash-image

Слаг модели изображений по умолчанию.

MEDIAMCP_VIDEO_MODEL

google/veo-3.1

Слаг видеомодели по умолчанию.

MEDIAMCP_OUTPUT_DIR

~/Pictures/mediamcp

Куда сохранять сгенерированные файлы (~/mediamcp, если ~/Pictures не существует).

MEDIAMCP_TIMEOUT_MS

120000

HTTP-таймаут на один запрос.

MEDIAMCP_PREVIEW

true

Возвращать встроенное превью вместе с каждым результатом (false — только пути).

MEDIAMCP_PREVIEW_MAX_DIM

768

Длинная сторона встроенного превью в пикселях.

MEDIAMCP_SCHEMA_DIALECT

2020-12

Диалект JSON Schema, в котором публикуются схемы инструментов. Значение draft-7 отдаёт вывод MCP SDK как есть.

Использование другого провайдера

Укажите в MEDIAMCP_BASE_URL любой OpenAI-совместимый эндпоинт и задайте соответствующий ключ:

"env": {
  "MEDIAMCP_BASE_URL": "https://your-endpoint.example.com/v1",
  "MEDIAMCP_API_KEY": "your-key",
  "MEDIAMCP_MODEL": "your/image-model"
}

mediamcp сам определяет, какой формат API поддерживает эндпоинт: выделенный эндпоинт /images (OpenRouter), /images/generations (классический OpenAI) или chat/completions с поддержкой изображений — первый сработавший вариант запоминается.

Диагностика проблем

  1. Попросите агента запустить инструмент check_config — он сообщит, что именно настроено неверно и как это исправить.

  2. Ту же диагностику можно запустить из терминала: npx -y mediamcp --check (используются переменные окружения вашей оболочки).

  3. Типичные проблемы:

    • «No API key configured» — добавьте OPENROUTER_API_KEY в блок env записи сервера в конфигурации MCP-клиента (а не только в профиль оболочки) и перезапустите клиент.

    • «Out of credits (HTTP 402)» — пополните баланс на https://openrouter.ai/credits.

    • «Not found (HTTP 404) … for model» — неверный слаг модели; запустите list_models.

    • В клиенте ничего не происходит — убедитесь, что установлен Node.js ≥ 20 (node --version).

    • «Tool '…' has an invalid outputSchema … unsupported dialect» — клиент проверяет схемы только по JSON Schema 2020-12. mediamcp публикует 2020-12 по умолчанию, так что ошибка означает старую версию: обновитесь и убедитесь, что check_config показывает tool schema dialect: 2020-12.

Разработка

git clone https://github.com/legolev/mediamcp && cd mediamcp
npm install
npm run build       # сборка в dist/index.js
npm test            # юнит-тесты (vitest)
npm run inspect     # открыть MCP Inspector с собранным сервером

Лицензия

MIT


mcp-name: io.github.legolev/mediamcp

Available Tools

6 tools
check_configCheck mediamcp ConfigurationA
Read-only

Diagnose the mediamcp server setup: endpoint, API key presence and validity, default models, and output directory writability. Run this first when any other mediamcp tool fails.

Inputs: ping. Returns: ok, api_key, preview, version, +8 more

check_video_statusCheck Video StatusA
Idempotent

Check a previously started video generation job (from generate_video's polling_url or video id). If the job has completed, downloads the video, saves it to disk, and returns the absolute path.

Inputs: video_id, output_dir, polling_url, filename_prefix. Returns: path, status, message, video_id, +1 more

edit_imageEdit ImageA

Edit or transform existing image(s) with a text instruction — restyle, add or remove elements, change background, or combine several images into one scene. The result is saved to disk and its absolute path is returned, along with a small inline preview.

Inputs: images (required), prompt (required), model, output_dir, +1 more. Returns: failed, images

generate_imageGenerate ImageA

Generate one or more images from a text prompt using a cloud AI model. Every image is saved to disk and its absolute path is returned, along with a small inline preview. Use edit_image instead when starting from an existing image.

Inputs: prompt (required), count, model, output_dir, +2 more. Returns: failed, images

generate_videoGenerate VideoA

Generate a video from a text prompt (async job: starts generation, then waits and polls). Video generation typically takes 1-5 minutes. The finished file is saved to disk and its absolute path is returned. If waiting times out, a polling_url is returned — pass it to check_video_status later instead of starting a new (billed) job.

Inputs: prompt (required), model, output_dir, resolution, +5 more. Returns: path, status, message, video_id, +1 more

list_modelsList Media ModelsA
Read-only

List image- and video-capable model slugs available on the configured endpoint, with pricing where known. Use this to pick a model value for generate_image, edit_image, or generate_video.

Inputs: refresh. Returns: note, models, source

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.5/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: config diagnostics, async video status polling, image editing, image generation, video generation, and model listing. No overlap or ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., check_config, generate_image, list_models), making it easy to predict the function.

    Tool Count5/5

    Six tools is appropriate for a media-focused server, covering configuration, generation, editing, status checking, and model discovery without being too many or too few.

    Completeness4/5

    Core media workflows (generate, edit, check status, list models, diagnose config) are covered. Missing a tool to list or delete previously generated files, but the surface is largely complete.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers