Gemini Image Generation MCP
by Yamidor
README.md
# Conector MCP — Generación de imágenes con Gemini
Servidor MCP remoto en Node.js/TypeScript que expone la herramienta `generate_image` para que Claude (claude.ai) genere imágenes usando la API de Google Gemini.
## Requisitos
1. **API key de Google AI Studio**: crea una gratis en https://aistudio.google.com/apikey
2. **Node.js 20+** (para probar en local)
3. **Una cuenta de hosting** que soporte Node.js: Render, Railway, Fly.io o Google Cloud Run. Render tiene plan gratuito y es el más sencillo.
## Prueba en local
```bash
npm install
cp .env.example .env # edita .env con tu API key
npm run dev
```
El endpoint queda en `http://localhost:3000/mcp/TU_SECRETO` (POST). Verifica salud en `http://localhost:3000/health`.
Puedes probarlo con MCP Inspector:
```bash
npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP
# URL: http://localhost:3000/mcp/TU_SECRETO
```
## Despliegue en Render (gratis)
1. Sube este proyecto a un repositorio de GitHub.
2. En https://render.com crea un **Web Service** apuntando al repo.
3. Configuración:
- **Build command:** `npm install && npm run build`
- **Start command:** `npm start`
- **Environment variables:**
- `GEMINI_API_KEY` = tu key de AI Studio
- `MCP_SECRET` = un texto aleatorio largo (ej. genera uno con `openssl rand -hex 12`)
4. Render te da una URL tipo `https://gemini-mcp-xxxx.onrender.com`.
Tu endpoint MCP final será:
```
https://gemini-mcp-xxxx.onrender.com/mcp/TU_SECRETO
```
> Nota: en el plan gratuito de Render el servicio "duerme" tras 15 min de inactividad; la primera petición puede tardar ~30-50 segundos en despertar.
## Conectar en claude.ai
1. Ve a **Configuración → Conectores** (Settings → Connectors).
2. Clic en **Agregar conector personalizado** (Add custom connector).
3. Nombre: `Gemini Imágenes` — URL: tu endpoint MCP completo (con el secreto).
4. Guarda. Al iniciar un chat, activa el conector en el menú de herramientas.
5. Pídele a Claude: *"Genera una imagen de un paisaje cafetero de Ebéjico al atardecer"* — Claude llamará a `generate_image` y te mostrará el resultado.
## Seguridad
- El `MCP_SECRET` en la ruta evita que cualquiera que descubra tu dominio consuma tu cuota de la API de Gemini. No lo compartas ni lo subas a GitHub (usa variables de entorno).
- La API key de Gemini **nunca** sale del servidor; Claude solo ve la herramienta.
- Si sospechas que el secreto se filtró, cámbialo en las variables de entorno y actualiza la URL del conector.
## Cambiar de modelo
Por defecto usa `gemini-2.0-flash-preview-image-generation`. Si Google publica un modelo nuevo (o quieres usar Imagen), cambia la variable `GEMINI_IMAGE_MODEL`. Verifica los modelos disponibles para tu key en https://ai.google.dev/gemini-api/docs/models
## Estructura
```
gemini-mcp/
├── src/index.ts # Servidor Express + MCP + llamada a Gemini
├── package.json
├── tsconfig.json
└── .env.example
```
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues