Saving every result and returning its absolute path is what makes it composable — the next tool in the chain can open the file rather than re-deriving it. Video is asynchronous by nature, so check_video_status exists to pick a job back up rather than holding a call open for minutes; check_config is the first thing to run when something misbehaves.
An MCP server that connects an assistant to cloud image and video models — Gemini Flash Image, GPT-5 Image, Seedream, Veo, Sora and others — through OpenRouter or any OpenAI-compatible API. Every generated file is written to disk and the response carries its absolute path plus a small inline preview, so the agent can see what it produced.
- generate_image — one or more images from a text prompt, each saved to disk with its path and a preview returned
- edit_image — transform existing images with an instruction: restyle, add or remove elements, change the background, or combine several into one scene
- generate_video — video from a prompt, optionally starting from an input image; an async job that starts generation and then polls, typically taking minutes
- check_video_status — resume a started job from its polling URL or video id, download the finished video and return its path
- list_models — the image- and video-capable model slugs available on the configured endpoint, with pricing where known
- check_config — diagnose the setup: endpoint, key presence and validity, default models and whether the output directory is writable
An OpenRouter API key in OPENROUTER_API_KEY, or any OpenAI-compatible endpoint. Clients run npx -y mediamcp over stdio; Node.js 20 or newer. MEDIAMCP_OUTPUT_DIR sets where files land (default ~/Pictures/mediamcp) and MEDIAMCP_MODEL sets the default image model (google/gemini-2.5-flash-image). The README is written in Russian, with an English version alongside it.
One command plus a key — claude mcp add mediamcp -e OPENROUTER_API_KEY=sk-or-v1-YOUR_KEY -- npx -y mediamcp, then supply credentials
