{
  "markdown": "<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/legolev/mediamcp/main/assets/banner.png\" alt=\"mediamcp\" width=\"100%\" />\n\n### Научите любого ИИ-агента создавать изображения и видео\n\n**mediamcp** — это MCP-сервер, который соединяет вашего ИИ-ассистента — Claude Code, Claude Desktop,<br/>\nCursor, Windsurf, VS Code или любой другой клиент с поддержкой MCP — с облачными медиамоделями<br/>\n(Gemini Flash Image, GPT-5 Image, Seedream, Veo, Sora, …) через [OpenRouter](https://openrouter.ai) или любой OpenAI-совместимый API.\n\n[![npm version](https://img.shields.io/npm/v/mediamcp)](https://www.npmjs.com/package/mediamcp)\n[![CI](https://github.com/legolev/mediamcp/actions/workflows/ci.yml/badge.svg)](https://github.com/legolev/mediamcp/actions/workflows/ci.yml)\n[![node >= 20](https://img.shields.io/badge/node-%3E%3D20-brightgreen)](https://nodejs.org)\n[![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n[English](README.en.md) | **Русский**\n\n<sub>⭐ Баннер выше сгенерирован самим mediamcp — один вызов `generate_image`.</sub>\n\n</div>\n\n---\n\nСгенерированные файлы всегда сохраняются на диск (по умолчанию в `~/Pictures/mediamcp`), а каждый ответ содержит абсолютный путь к файлу и небольшое встроенное превью — агент сразу видит, что у него получилось.\n\n> **ИИ-агентам:** инструкция по установке, оптимизированная специально для вас, лежит в [llms-install.md](llms-install.md).\n\n**Вам понадобится API-ключ OpenRouter** — получить его можно на <https://openrouter.ai/keys>.\n\n## Быстрая установка\n\n### Claude Code\n\n```bash\nclaude mcp add mediamcp -e OPENROUTER_API_KEY=sk-or-v1-YOUR_KEY -- npx -y mediamcp\n```\n\n### Claude Desktop\n\nДобавьте в `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`, Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`) и перезапустите Claude Desktop:\n\n```json\n{\n  \"mcpServers\": {\n    \"mediamcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mediamcp\"],\n      \"env\": { \"OPENROUTER_API_KEY\": \"sk-or-v1-YOUR_KEY\" }\n    }\n  }\n}\n```\n\n### Cursor\n\n[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=mediamcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1lZGlhbWNwIl0sImVudiI6eyJPUEVOUk9VVEVSX0FQSV9LRVkiOiJZT1VSX09QRU5ST1VURVJfS0VZIn19)\n\nИли добавьте в `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mediamcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mediamcp\"],\n      \"env\": { \"OPENROUTER_API_KEY\": \"sk-or-v1-YOUR_KEY\" }\n    }\n  }\n}\n```\n\n### Windsurf\n\nДобавьте в `~/.codeium/windsurf/mcp_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mediamcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mediamcp\"],\n      \"env\": { \"OPENROUTER_API_KEY\": \"sk-or-v1-YOUR_KEY\" }\n    }\n  }\n}\n```\n\n### VS Code (GitHub Copilot)\n\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_mediamcp-0098FF?logo=githubcopilot)](https://vscode.dev/redirect/mcp/install?name=mediamcp&config=%7B%22name%22%3A%22mediamcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22mediamcp%22%5D%2C%22env%22%3A%7B%22OPENROUTER_API_KEY%22%3A%22YOUR_OPENROUTER_KEY%22%7D%7D)\n\nИли добавьте в `.vscode/mcp.json` (ключ запрашивается отдельно и не попадает в файл):\n\n```json\n{\n  \"servers\": {\n    \"mediamcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mediamcp\"],\n      \"env\": { \"OPENROUTER_API_KEY\": \"${input:openrouter-key}\" }\n    }\n  },\n  \"inputs\": [\n    {\n      \"id\": \"openrouter-key\",\n      \"type\": \"promptString\",\n      \"password\": true,\n      \"description\": \"OpenRouter API key (https://openrouter.ai/keys)\"\n    }\n  ]\n}\n```\n\n## Что сможет делать ваш агент\n\nПосле установки просто скажите агенту что-нибудь вроде *«сгенерируй hero-изображение для моего лендинга, 16:9»*, *«убери фон с logo.png»*, *«сделай 8-секундное видео с океанскими волнами на закате»* или *«оживи logo.png в 4-секундное видео»* (image-to-video). Агент сам выберет подходящий инструмент:\n\n| Инструмент | Что делает |\n| --- | --- |\n| `generate_image` | Текст → изображение (одно или несколько). Сохраняет на диск, возвращает путь и встроенное превью. Поддерживает `count` (до 4 вариаций), `aspect_ratio` и переопределение `model`. |\n| `edit_image` | Существующее изображение (одно или несколько) + инструкция → отредактированное изображение. Принимает пути к файлам, `https://`- и `data:`-URL; несколько источников — для объединения изображений в одну композицию. |\n| `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`. |\n| `check_video_status` | Возобновляет ожидание видеозадачи по `polling_url` / id; по готовности скачивает результат. |\n| `list_models` | Выводит слаги и цены моделей с поддержкой изображений/видео — агент сможет сам подобрать модель. |\n| `check_config` | Диагностика: наличие и валидность ключа, эндпоинт, значения по умолчанию, возможность записи в каталог вывода. Если что-то не работает — запускайте его первым. |\n\n## Конфигурация\n\nВсё настраивается через переменные окружения в блоке `env` конфигурации вашего MCP-клиента:\n\n| Переменная | По умолчанию | Назначение |\n| --- | --- | --- |\n| `OPENROUTER_API_KEY` | — | **Обязательна.** Ваш ключ OpenRouter. |\n| `MEDIAMCP_API_KEY` | — | Псевдоним `OPENROUTER_API_KEY` для эндпоинтов, отличных от OpenRouter; имеет приоритет, если заданы обе переменные. |\n| `MEDIAMCP_BASE_URL` | `https://openrouter.ai/api/v1` | Корневой URL любого OpenAI-совместимого API. |\n| `MEDIAMCP_MODEL` | `google/gemini-2.5-flash-image` | Слаг модели изображений по умолчанию. |\n| `MEDIAMCP_VIDEO_MODEL` | `google/veo-3.1` | Слаг видеомодели по умолчанию. |\n| `MEDIAMCP_OUTPUT_DIR` | `~/Pictures/mediamcp` | Куда сохранять сгенерированные файлы (`~/mediamcp`, если `~/Pictures` не существует). |\n| `MEDIAMCP_TIMEOUT_MS` | `120000` | HTTP-таймаут на один запрос. |\n| `MEDIAMCP_PREVIEW` | `true` | Возвращать встроенное превью вместе с каждым результатом (`false` — только пути). |\n| `MEDIAMCP_PREVIEW_MAX_DIM` | `768` | Длинная сторона встроенного превью в пикселях. |\n| `MEDIAMCP_SCHEMA_DIALECT` | `2020-12` | Диалект JSON Schema, в котором публикуются схемы инструментов. Значение `draft-7` отдаёт вывод MCP SDK как есть. |\n\n### Использование другого провайдера\n\nУкажите в `MEDIAMCP_BASE_URL` любой OpenAI-совместимый эндпоинт и задайте соответствующий ключ:\n\n```json\n\"env\": {\n  \"MEDIAMCP_BASE_URL\": \"https://your-endpoint.example.com/v1\",\n  \"MEDIAMCP_API_KEY\": \"your-key\",\n  \"MEDIAMCP_MODEL\": \"your/image-model\"\n}\n```\n\nmediamcp сам определяет, какой формат API поддерживает эндпоинт: выделенный эндпоинт `/images` (OpenRouter), `/images/generations` (классический OpenAI) или `chat/completions` с поддержкой изображений — первый сработавший вариант запоминается.\n\n## Диагностика проблем\n\n1. Попросите агента запустить инструмент **`check_config`** — он сообщит, что именно настроено неверно и как это исправить.\n2. Ту же диагностику можно запустить из терминала: `npx -y mediamcp --check` (используются переменные окружения вашей оболочки).\n3. Типичные проблемы:\n   - **«No API key configured»** — добавьте `OPENROUTER_API_KEY` в блок `env` записи сервера в конфигурации MCP-клиента (а не только в профиль оболочки) и перезапустите клиент.\n   - **«Out of credits (HTTP 402)»** — пополните баланс на <https://openrouter.ai/credits>.\n   - **«Not found (HTTP 404) … for model»** — неверный слаг модели; запустите `list_models`.\n   - **В клиенте ничего не происходит** — убедитесь, что установлен Node.js ≥ 20 (`node --version`).\n   - **«Tool '…' has an invalid outputSchema … unsupported dialect»** — клиент проверяет схемы только по JSON Schema 2020-12. mediamcp публикует 2020-12 по умолчанию, так что ошибка означает старую версию: обновитесь и убедитесь, что `check_config` показывает `tool schema dialect: 2020-12`.\n\n## Разработка\n\n```bash\ngit clone https://github.com/legolev/mediamcp && cd mediamcp\nnpm install\nnpm run build       # сборка в dist/index.js\nnpm test            # юнит-тесты (vitest)\nnpm run inspect     # открыть MCP Inspector с собранным сервером\n```\n\n## Лицензия\n\n[MIT](LICENSE)\n\n---\n\n<sub>mcp-name: io.github.legolev/mediamcp</sub>\n",
  "bytes": 8478,
  "sha": "7691fdd04caabb77efa4d3230701e0dcf951ee2f945ab49b7bad2113915fab5b",
  "repo_slug": "legolev/mediamcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_legolev_mediamcp_81d65483/readme"
}