Gemini Imagen 3.0 MCP Server
# Gemini Imagen 3.0 MCP Server



A professional Model Context Protocol (MCP) server implementation that harnesses Google's Imagen 3.0 model through the Gemini API for high-quality image generation. Built with TypeScript and designed for seamless integration with Claude Desktop and other MCP-compatible hosts.
## 🌟 Features
- Leverage Google's state-of-the-art Imagen 3.0 model via Gemini API
- Generate up to 4 high-quality images per request
- Automatic file management with intelligent naming
- HTML preview generation with file:// protocol support
- Built on MCP protocol for AI agent compatibility
- TypeScript implementation with robust error handling
## 🚀 Quick Start
### Prerequisites
- Node.js 18 or higher
- Google Gemini API key
- Claude Desktop or another MCP-compatible host
### Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/gemini-imagen-mcp-server.git
cd gemini-imagen-mcp-server
```
2. Install dependencies:
```bash
npm install
```
3. Build the TypeScript code:
```bash
npm run build
```
## ⚙️ Configuration
1. Configure Claude Desktop by adding to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"gemini-image-gen": {
"command": "node",
"args": ["./build/index.js"],
"cwd": "<path-to-project-directory>",
"env": {
"GEMINI_API_KEY": "your-gemini-api-key"
}
}
}
}
```
2. Replace placeholders:
- `<path-to-project-directory>`: Your project path
- `your-gemini-api-key`: Your Gemini API key
## 🛠️ Available Tools
### 1. generate_images
Generates images using Google's Imagen 3.0 model.
Parameters:
- `prompt` (required): Text description of the image to generate
- `numberOfImages` (optional): Number of images (1-4, default: 1)
File Management:
- Images are automatically saved in `G:\image-gen3-google-mcp-server\images`
- Filenames follow the pattern: `{sanitized-prompt}-{timestamp}-{index}.png`
- Timestamps ensure unique filenames
- Prompts are sanitized for safe filesystem usage
Example:
```
Generate an image of a futuristic city at night
```
### 2. create_image_html
Creates HTML preview tags for generated images.
Parameters:
- `imagePaths` (required): Array of image file paths
- `width` (optional): Image width in pixels (default: 512)
- `height` (optional): Image height in pixels (default: 512)
Returns HTML tags with absolute file:// URLs for local viewing.
Example:
```
Create HTML tags for the generated images with width=400
```
## 🔧 Development
```bash
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run tests (when available)
npm test
```
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes:
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📝 Error Handling
The server implements two main error codes:
- `tool_not_found` (1): When the requested tool is not available
- `execution_error` (2): When image generation or HTML creation fails
## 📄 License
MIT License - see the [LICENSE](LICENSE) file for details.
## ✨ Author
**Falah G. Salieh**
- Copyright © 2025
- GitHub: [@yourgithubhandle](https://github.com/yourgithubhandle)
- Email: [your.email@example.com](mailto:your.email@example.com)
## 🙏 Acknowledgments
- Google Gemini API and Imagen 3.0 model
- Model Context Protocol (MCP) by Anthropic
- Claude Desktop team for MCP host implementation
## 📌 Tags
`#MCP` `#Gemini` `#Imagen3` `#AI` `#ImageGeneration` `#TypeScript` `#NodeJS` `#GoogleAI` `#ClaudeDesktop`
---
Made with ❤️ by Falah G. Salieh TDQS
Scored across 2 tools
The two tools have completely distinct purposes: generate_images creates new images via AI, while create_image_html produces HTML img tags from existing file paths. There is no overlap or ambiguity between them.
Both tool names follow a verb_noun pattern (generate_images and create_image_html). The verbs 'generate' and 'create' are similar but not identical, and the nouns differ in structure (plural vs. compound), but the overall pattern is consistent and readable.
With only 2 tools, the server feels somewhat thin. While the scope is narrow (image generation and HTML formatting), this is borderline on the low end; a small utility set would benefit from at least one additional tool for managing or inspecting generated images.
The core workflow of generating images and then creating HTML for viewing is covered, but there are notable gaps: no way to list, delete, or manage previously generated images, and no tool to adjust model parameters beyond what might be embedded in generate_images. This limits the server to a single-generation flow.