image-video-mcp
# image-video-mcp
One MCP server that adds **OpenAI image generation** and **Google Gemini image +
video generation** to Claude Code — and any MCP client. Bring your own API keys.
| Tool | Provider | Default model |
|------|----------|---------------|
| `openai_generate_image` | OpenAI Images API | `gpt-image-2` |
| `gemini_generate_image` | Gemini (Nano Banana) | `gemini-2.5-flash-image` |
| `gemini_generate_video` | Veo via Gemini API | `veo-3.1-generate-001` |
Images save to `assets/images/`, videos to `assets/videos/`. Every model is
overridable with an env var, so it keeps working as models roll over.
## Quick install (one command)
Run this — it installs everything, asks for your two API keys, and registers the
tools in **both** Claude Code and the Claude desktop app:
```bash
bash <(curl -fsSL https://raw.githubusercontent.com/eracom-technologies/image-video-mcp/main/setup.sh)
```
That's it. Restart the Claude desktop app when it finishes, and the image/video
tools are ready in both places. (Prefer to set keys inline? `OPENAI_API_KEY=sk-...
GEMINI_API_KEY=... bash <(curl -fsSL .../setup.sh)`.)
The manual steps below are only if you'd rather do it yourself.
## Manual install
One-line, straight from git:
```bash
pip install "git+https://github.com/eracom-technologies/image-video-mcp.git"
```
Or from a local clone:
```bash
git clone https://github.com/eracom-technologies/image-video-mcp.git
cd image-video-mcp && pip install .
```
Both create the `image-video-mcp` command. Prefer isolation? `pipx install .`
or `uv tool install .`.
## Register in Claude Code
```bash
claude mcp add-json image-video '{
"command": "image-video-mcp",
"args": [],
"env": { "OPENAI_API_KEY": "sk-...", "GEMINI_API_KEY": "..." }
}'
claude mcp list # confirm it shows "image-video"
```
Or drop the included `.mcp.json` into a project folder (Claude Code auto-detects
it). Get keys at [platform.openai.com](https://platform.openai.com/api-keys) and
[aistudio.google.com/apikey](https://aistudio.google.com/apikey).
## Use
Ask Claude Code:
> "Use gemini_generate_video: a slow drone shot over a misty forest, 16:9."
## Verify
```bash
PYTHONPATH=src python scripts/smoke_test.py # offline: tools register
PYTHONPATH=src python scripts/smoke_test.py --live # real generations (uses credits)
```
## Full docs
See **[README-MCP.md](README-MCP.md)** for OS-specific config locations, all
environment variables, model/deprecation notes, sharing, and troubleshooting.
## License
MIT — see [LICENSE](LICENSE).
TDQS
Scored across 3 tools
The two image generation tools (openai_generate_image and gemini_generate_image) overlap in purpose, both generating an image from a prompt. The provider prefixes help distinguish them, but an agent may still be uncertain which to choose without explicit context. The video tool is clearly distinct.
All tool names follow the same [provider]_[verb]_[object] pattern with snake_case, making the set predictable and easy to navigate. The consistent use of 'generate' as the verb reinforces a clear convention.
Three tools is well-scoped for a media generation server covering image and video output. Each tool serves a distinct provider or modality, and the count is within the ideal range for a focused MCP.
The toolset covers image generation via OpenAI and Gemini, and video generation via Gemini, satisfying the core 'image-video' purpose. Minor gaps exist, such as no OpenAI video generation or image editing capabilities, but these are not essential given the apparent scope.