imagine-mcp
mcp-name: io.github.n24q02m/imagine-mcp
Production-grade MCP server for image and video understanding + generation across Gemini, OpenAI, and Grok.
Features
- Multimodal understanding -- Describe, classify, or reason over images and videos (Gemini handles mixed image + video in one call)
- Image generation -- Text-to-image and image-to-image (edit / inpaint) across Gemini Imagen, OpenAI gpt-image, Grok Imagine
- Video generation -- Text-to-video and image-to-video (Gemini Veo 3.1, Grok Imagine Video)
- 3 providers x 2 tiers -- Same interface for
gemini/openai/grokatpoor(cheap/fast) orrich(high quality); swap via parameter - Leaderboard-ranked models -- Provider ordering auto-refreshed weekly from Artificial Analysis + LMArena leaderboards
- Zero-config onboarding -- Browser-based credential relay form; no
.envfiles or manual credential plumbing - Degraded mode -- Server starts with zero credentials and surfaces remaining providers as you add keys
- Response cache -- Disk-based caching of
understandresponses with configurable TTL - Smart stdio proxy -- stdio transport spawns a local HTTP daemon and forwards JSON-RPC frames, sharing credentials across invocations
Setup
With AI Agent -- copy and send this to your AI agent:
Please set up imagine-mcp for me. Follow this guide: https://raw.githubusercontent.com/n24q02m/imagine-mcp/main/docs/setup-with-agent.md
Manual setup -- follow docs/setup-manual.md
Tools
| Tool | Actions | Description |
|---|---|---|
understand | -- | Describe or reason over one or more image/video URLs. media_urls: list[str], prompt: str, provider, tier, max_tokens. |
generate | -- | Generate an image or video from a text prompt. media_type: image|video, optional reference_image_url, optional job_id (video poll), aspect_ratio, duration_seconds. |
config | open_relay, relay_status, relay_skip, relay_reset, relay_complete, warmup, status, set, cache_clear | Credential + runtime config: open relay form, check credential state, set runtime knobs (log level, default provider, TTL), clear response cache. |
help | -- | Full Markdown documentation for understand, generate, or config topics. |
Model IDs per provider x action x tier are leaderboard-ranked; see docs/models.md (auto-regenerated from src/imagine_mcp/models.py).
Security
- SSRF + LFI prevention -- All
media_urlsandreference_image_urlare validated at the dispatch boundary; onlyhttp://andhttps://schemes reach the providers.file://,ftp://,gopher://, and scheme-less URLs are rejected. - No credentials in errors -- Provider-side errors are sanitized before being returned.
- Degraded start -- Missing credentials do not prevent the server from starting; affected actions surface actionable errors instead of crashing at boot.
- Relay transport -- Credentials submitted through the local relay form are stored encrypted via
mcp-core(config.enc, user-scopedplatformdirs).
Build from Source
git clone https://github.com/n24q02m/imagine-mcp.git
cd imagine-mcp
mise run setup # or: uv sync --group dev
mise run dev # run http local relay daemon
Contributing
See CONTRIBUTING.md for the full development workflow, commit convention, and release process. Issues + Discussions welcome.
License
MIT -- see LICENSE.