Gemini Image Generation - Claude Skill + MCP
AI-powered image generation using Google Gemini, integrated with Claude Code.
Features
- Generate images from text prompts using Gemini AI
- Proactive Claude skill suggests images for websites, presentations, and more
- Two execution modes: CLI script (skill-only) or MCP server (protocol-based)
- Configurable aspect ratios (1:1, 16:9, 9:16, etc.)
- Multiple model support (quality vs speed)
- Images saved to disk with file paths returned
Prerequisites
- Google Gemini API key (Get one here)
- Node.js 18+ (only for manual installation)
Installation
Quick Install (Claude Code Plugin)
The plugin installs skill + CLI + MCP server in one step—no separate configuration needed.
# Add the marketplace
/plugin marketplace add guinacio/claude-image-gen
# Install the plugin
/plugin install media-pipeline@media-pipeline-marketplace
Or install directly from GitHub:
/plugin install guinacio/claude-image-gen
Once installed:
- Skill uses the bundled CLI script (no MCP overhead)
- MCP server is also available for direct tool calls
Tip: Since the skill runs the CLI directly, you can disable the MCP server in Claude Code's MCP list to reduce startup overhead. The skill will continue to work without it.
Quick Install (Claude Desktop Extension)
For Claude Desktop users, install the pre-built extension:
- Download
media-pipeline.mcpb from Releases
- Open Claude Desktop
- Go to Settings → Extensions → Advanced settings
- Click Install Extension and select the
.mcpb file
- Enter your Gemini API key when prompted
Manual Installation
For developers who want to customize or build from source:
1. Build the MCP Server
cd mcp-server
npm install
npm run bundle
2. Use the Standalone CLI
cd mcp-server
GEMINI_API_KEY=your-api-key-here node build/cli.bundle.js \
--prompt "Landing page hero image for a fintech startup" \
--aspect-ratio "16:9"
The CLI runs directly against Gemini and returns structured JSON on stdout. It does not require the MCP server layer.
3. Add to Claude Code
Option A: Using MCP server
claude mcp add --transport stdio media-pipeline \
--env GEMINI_API_KEY=your-api-key-here \
-- node /path/to/claude-image-gen/mcp-server/build/bundle.js
The -- separates Claude CLI flags from the server command.
Option B: Manual config
Add to your Claude Code config (~/.claude.json):
{
"mcpServers": {
"media-pipeline": {
"command": "node",
"args": ["/path/to/claude-image-gen/mcp-server/build/bundle.js"],
"env": {
"GEMINI_API_KEY": "${GEMINI_API_KEY}",
"GEMINI_DEFAULT_MODEL": "${GEMINI_DEFAULT_MODEL:-gemini-3-pro-image-preview}",
"IMAGE_OUTPUT_DIR": "${IMAGE_OUTPUT_DIR:-./generated-images}",
"GEMINI_REQUEST_TIMEOUT_MS": "${GEMINI_REQUEST_TIMEOUT_MS:-60000}",
"MEDIA_PIPELINE_LOG_LEVEL": "${MEDIA_PIPELINE_LOG_LEVEL:-info}"
}
}
}
}
The ${VAR:-default} syntax uses environment variables with fallback defaults.
4. Install Skill Manually (Optional)
If not using the plugin:
cp -r skills/image-generation ~/.claude/skills/
4. Build Extension from Source (Optional)
To create your own .mcpb extension for Claude Desktop:
cd mcp-server
npm install -g @anthropic-ai/mcpb
npm run pack:mcpb
This creates mcp-server/media-pipeline.mcpb using bundled runtime entry points for both the MCP server and the standalone CLI.
Usage
Direct Tool Usage
Use create_asset to create a hero image for a tech startup website
With the Skill
The skill will proactively suggest image generation when:
- Building websites with hero sections
- Creating presentations
- Working with placeholder images
- Developing marketing materials
Configuration
Environment Variables
| Variable | Required | Default | Description |
|---|
GEMINI_API_KEY | Yes | - | Your Gemini API key |
GEMINI_DEFAULT_MODEL | No | gemini-3-pro-image-preview | Default model to use |
IMAGE_OUTPUT_DIR | No | ./generated-images | Where to save images |
GEMINI_REQUEST_TIMEOUT_MS | No | 60000 | Timeout for Gemini requests |
MEDIA_PIPELINE_LOG_LEVEL | No | info | Stderr logging level |
Models
Available image models are fetched dynamically from the Gemini API at runtime. The CLI and MCP tool validate model choices against the current image-capable model list, and GEMINI_DEFAULT_MODEL is used when available.
Aspect Ratios