mediamcp
mediamcp is an MCP server that connects your AI assistant — Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, or anything else that speaks MCP — to cloud media models (Gemini Flash Image, GPT-5 Image, Seedream, Veo, Sora, …) via OpenRouter or any OpenAI-compatible API.
README
<div align="center">
<img src="https://raw.githubusercontent.com/legolev/mediamcp/main/assets/banner.png" alt="mediamcp" width="100%" />
Научите любого ИИ-агента создавать изображения и видео
mediamcp — это MCP-сервер, который соединяет вашего ИИ-ассистента — Claude Code, Claude Desktop,<br/> Cursor, Windsurf, VS Code или любой другой клиент с поддержкой MCP — с облачными медиамоделями<br/> (Gemini Flash Image, GPT-5 Image, Seedream, Veo, Sora, …) через OpenRouter или любой OpenAI-совместимый API.
English | Русский
<sub>⭐ Баннер выше сгенерирован самим mediamcp — один вызов generate_image.</sub>
</div>
Сгенерированные файлы всегда сохраняются на диск (по умолчанию в ~/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-секундное видео с океанскими волнами на закате». Агент сам выберет подходящий инструмент:
| Инструмент | Что делает |
|---|---|
generate_image |
Текст → изображение (одно или несколько). Сохраняет на диск, возвращает путь и встроенное превью. Поддерживает count (до 4 вариаций), aspect_ratio и переопределение model. |
edit_image |
Существующее изображение (одно или несколько) + инструкция → отредактированное изображение. Принимает пути к файлам, https://- и data:-URL; несколько источников — для объединения изображений в одну композицию. |
generate_video |
Текст → видео (асинхронная задача, обычно 1–5 минут). Дожидается результата, сохраняет 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_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).
- «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 с собранным сервером
Лицензия
<sub>mcp-name: io.github.legolev/mediamcp</sub>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.