About mediamcp
mediamcp is an MCP server that lets AI assistants generate and edit images and video through OpenRouter or an OpenAI-compatible API. It saves outputs to disk and returns file paths with previews.
Key features
- 01Generate images from text
- 02Edit and combine existing images
- 03Generate text-to-video and image-to-video
- 04Check video task status
- 05List media models and prices
- 06Save files with paths and previews
Use cases
- 01Creating images for a landing page
- 02Removing or changing an image background
- 03Turning an image into a short video
MCP support
mediamcp exposes image and video generation, editing, status, model-listing, and configuration-check tools to MCP clients. Generated media is saved locally, and results include paths and embedded previews.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y mediamcpOPENROUTER_API_KEYSecretOpenRouter API key (https://openrouter.ai/keys)MEDIAMCP_OUTPUT_DIRDirectory for generated files (default: ~/Pictures/mediamcp)MEDIAMCP_MODELDefault image model slug (default: google/gemini-2.5-flash-image)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
6Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | No | Number of variations to generate (1-4, parallel requests, billed per image). |
| model | string | No | Model slug, e.g. 'google/gemini-2.5-flash-image' or 'openai/gpt-5-image'. Omit to use the configured default. Call list_models to see options. |
| prompt | string | Yes | Detailed description of the desired result. Be specific about subject, style, lighting, composition. |
| output_dir | string | No | Directory to save into (absolute, or ~ for home). Defaults to the configured output directory. |
| aspect_ratio | enum | No | Desired aspect ratio. Support varies by model; treated as a strong hint.1:1 | 16:9 | 9:16 | 4:3 | 3:4 | 3:2 | 2:3 | 21:9 |
| filename_prefix | string | No | Short label used in the saved filename, e.g. 'hero-banner'. Sanitized to letters, digits, dashes. |
Details
From the project README
Научите любого ИИ-агента создавать изображения и видео
mediamcp — это MCP-сервер, который соединяет вашего ИИ-ассистента — Claude Code, Claude Desktop,
Cursor, Windsurf, VS Code или любой другой клиент с поддержкой MCP — с облачными медиамоделями
(Gemini Flash Image, GPT-5 Image, Seedream, Veo, Sora, …) через OpenRouter или любой OpenAI-совместимый API.
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
Или добавьте в ~/.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)
Или добавьте в .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)"
}
]
}
Что сможет делать ваш агент
После установки просто скажите агенту что-нибудь вроде «сгенерируй 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 с поддержкой изображений — первый сработавший вариант запоминается.
Диагностика проблем
- Попросите агента запустить инструмент
check_config— он сообщит, что именно настроено неверно и как это исправить. - Ту же диагностику можно запустить из терминала:
npx -y mediamcp --check(используются переменные окружения вашей оболочки). - Типичные проблемы:
- «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.
- «No API key configured» — добавьте
Разработка
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 с собранным сервером
Лицензия
mcp-name: io.github.legolev/mediamcp
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.