Multi-provider MCP server for AI image generation. Supports OpenRouter, Together AI, Replicate, and fal.ai. Works with Claude Code, Cursor, Claude Desktop, OpenCode, and Charm. Install via: npx -y mcp-image-generator Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
206 lines
4.6 KiB
Markdown
206 lines
4.6 KiB
Markdown
<p align="center">
|
|
<img src="logo.png" width="200" alt="MCP Image Generator Logo">
|
|
</p>
|
|
|
|
<h1 align="center">MCP Image Generator</h1>
|
|
|
|
<p align="center">
|
|
MCP server for AI image generation. Works with <b>Claude Code</b>, <b>Cursor</b>, <b>Claude Desktop</b>, <b>OpenCode</b>, <b>Charm (Crush/Mods)</b>, and any MCP-compatible AI agent.
|
|
</p>
|
|
|
|
**Providers supported** (image models only):
|
|
- **OpenRouter** (default) — Gemini Flash Image, FLUX 2, Sourceful Riverflow, GPT-5 Image
|
|
- **Together AI** — FLUX.1 Schnell/Dev/Pro, Stable Diffusion XL
|
|
- **Replicate** — FLUX Schnell, FLUX 1.1 Pro, SDXL, Ideogram
|
|
- **fal.ai** — FLUX Dev/Schnell/2 Pro, Recraft V3
|
|
|
|
## Quick Start
|
|
|
|
No install needed — just use `npx`:
|
|
|
|
```bash
|
|
OPENROUTER_API_KEY="sk-or-v1-..." npx -y mcp-image-generator
|
|
```
|
|
|
|
## Tools
|
|
|
|
### `generate_image`
|
|
Generate an image from a text prompt.
|
|
|
|
| Parameter | Type | Description |
|
|
|-----------|------|-------------|
|
|
| `prompt` | string (required) | Text description of the image |
|
|
| `model` | string | Model ID (e.g. `google/gemini-2.5-flash-image`) |
|
|
| `provider` | string | `openrouter` (default), `together`, `replicate`, `fal` |
|
|
| `aspect_ratio` | string | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` |
|
|
| `image_size` | string | `1K` (default), `2K`, `4K` |
|
|
| `negative_prompt` | string | What to exclude (not all providers support this) |
|
|
| `seed` | number | Random seed for reproducibility |
|
|
| `save_to` | string | Custom file path to save the image |
|
|
|
|
### `list_providers`
|
|
List all configured providers and their available image models.
|
|
|
|
| Parameter | Type | Description |
|
|
|-----------|------|-------------|
|
|
| `provider` | string | Filter by provider name |
|
|
|
|
---
|
|
|
|
## Setup for AI Agents / IDEs
|
|
|
|
### Claude Code
|
|
|
|
```bash
|
|
claude mcp add --scope user --transport stdio image-gen \
|
|
--env OPENROUTER_API_KEY=sk-or-v1-xxx \
|
|
-- npx -y mcp-image-generator
|
|
```
|
|
|
|
Or create `.mcp.json` in your project root:
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"image-gen": {
|
|
"command": "npx",
|
|
"args": ["-y", "mcp-image-generator"],
|
|
"env": {
|
|
"OPENROUTER_API_KEY": "sk-or-v1-..."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Cursor
|
|
|
|
Edit `~/.cursor/mcp.json`:
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"image-gen": {
|
|
"command": "npx",
|
|
"args": ["-y", "mcp-image-generator"],
|
|
"env": {
|
|
"OPENROUTER_API_KEY": "sk-or-v1-..."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Claude Desktop
|
|
|
|
Edit the config file:
|
|
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
- **Linux:** `~/.config/Claude/claude_desktop_config.json`
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"image-gen": {
|
|
"command": "npx",
|
|
"args": ["-y", "mcp-image-generator"],
|
|
"env": {
|
|
"OPENROUTER_API_KEY": "sk-or-v1-..."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### OpenCode (by SST)
|
|
|
|
Edit `~/.config/opencode/opencode.json` or `opencode.json` in project root:
|
|
```json
|
|
{
|
|
"mcp": {
|
|
"image-gen": {
|
|
"type": "local",
|
|
"command": ["npx", "-y", "mcp-image-generator"],
|
|
"environment": {
|
|
"OPENROUTER_API_KEY": "sk-or-v1-..."
|
|
},
|
|
"enabled": true,
|
|
"timeout": 120000
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Charm Crush
|
|
|
|
Add to `crush.json` in your project root:
|
|
```json
|
|
{
|
|
"mcp": {
|
|
"image-gen": {
|
|
"type": "stdio",
|
|
"command": "npx",
|
|
"args": ["-y", "mcp-image-generator"],
|
|
"env": {
|
|
"OPENROUTER_API_KEY": "sk-or-v1-..."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Charm Mods
|
|
|
|
Edit `mods.yml` (`mods --settings`):
|
|
```yaml
|
|
mcp-servers:
|
|
image-gen:
|
|
command: [npx]
|
|
args:
|
|
- -y
|
|
- mcp-image-generator
|
|
env:
|
|
- OPENROUTER_API_KEY=sk-or-v1-...
|
|
```
|
|
|
|
### Any MCP-compatible agent
|
|
|
|
This server uses **stdio transport** (JSON-RPC over stdin/stdout). Any agent that supports MCP stdio can use it:
|
|
|
|
```bash
|
|
npx -y mcp-image-generator
|
|
|
|
# Required environment variables (at least one)
|
|
OPENROUTER_API_KEY=... # OpenRouter (default)
|
|
TOGETHER_API_KEY=... # Together AI
|
|
REPLICATE_API_TOKEN=... # Replicate
|
|
FAL_KEY=... # fal.ai
|
|
```
|
|
|
|
## Using Multiple Providers
|
|
|
|
Set multiple API keys to use different providers:
|
|
|
|
```bash
|
|
export OPENROUTER_API_KEY="sk-or-v1-..."
|
|
export TOGETHER_API_KEY="..."
|
|
export FAL_KEY="..."
|
|
```
|
|
|
|
Then specify the provider when generating:
|
|
```
|
|
generate_image(prompt="a cat", provider="together", model="black-forest-labs/FLUX.1-schnell")
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Provider | Required |
|
|
|----------|----------|----------|
|
|
| `OPENROUTER_API_KEY` | OpenRouter | At least one |
|
|
| `TOGETHER_API_KEY` | Together AI | provider key |
|
|
| `REPLICATE_API_TOKEN` | Replicate | is required |
|
|
| `FAL_KEY` | fal.ai | |
|
|
| `IMAGE_OUTPUT_DIR` | — | Optional. Default: `~/generated-images/` |
|
|
|
|
## License
|
|
|
|
MIT
|