mcpGetImage
by raulisai
README.md
# mcpGetImage
Servidor MCP en Python para pedir imágenes de dulces, refinarlas como fotografía de producto sobre fondo blanco y quitarles el fondo con `rembg`/U2-Net, inspirado en el flujo de [PACA](https://github.com/JairADRX09/paca).
El flujo usa Image API porque la guía de OpenAI la recomienda cuando se necesita crear una imagen desde un solo prompt. El modelo por defecto es `gpt-image-2`, configurable con `OPENAI_IMAGE_MODEL`.
## Requisitos
- Python 3.10+
- `OPENAI_API_KEY`
- La primera vez, `rembg` descarga el modelo U2-Net localmente.
## Instalación
```bash
python3.12 -m venv .venv
source .venv/bin/activate
pip install -e .
cp .env.example .env
```
Edita `.env` y agrega tu `OPENAI_API_KEY`.
## Ejecutar como servidor MCP
```bash
mcp-get-image
```
Ese comando es para clientes MCP y usa `stdio`. Si lo corres directo en la terminal, se queda esperando mensajes JSON-RPC del cliente; no es un chat interactivo. Para probar manualmente usa la CLI de abajo.
Configuración típica para un cliente MCP:
```json
{
"mcpServers": {
"mcp-get-image": {
"command": "/Users/djoker/code/mcpGetImage/.venv/bin/mcp-get-image"
}
}
}
```
## Herramientas MCP
- `refine_candy_prompt`: convierte una petición como "necesito imágenes de dulces" en un prompt de producto más preciso.
- `generate_candy_image`: genera la imagen con OpenAI, pide fondo blanco, remueve el fondo y guarda un WebP transparente.
- `remove_background`: procesa una imagen local existente y la exporta como WebP transparente.
## CLI local
Sirve para probar sin cliente MCP:
```bash
mcp-get-image-cli "gomitas enchiladas mexicanas en bolsa transparente"
```
Mientras genera, la CLI escribe progreso en `stderr`:
```text
[ 20%] Refining candy prompt for white-background product photography.
[ 40%] Calling OpenAI Images. This is usually the slowest step.
[ 60%] White-background image saved: ...
[ 80%] Removing background with rembg/U2-Net.
[100%] Transparent WebP saved: ...
```
OpenAI no expone porcentaje interno real durante una llamada normal a `images.generate`, así que el `40%` puede tardar. Ese mensaje significa que la imagen ya fue solicitada y estamos esperando respuesta del modelo.
Para ver el prompt sin generar imagen ni gastar API:
```bash
mcp-get-image-cli --prompt-only "gomitas enchiladas mexicanas en bolsa transparente"
```
Para quitar fondo a una imagen local:
```bash
mcp-get-image-cli --remove-background outputs/mi_imagen.png
```
Los archivos se guardan por defecto en `./outputs`.
## Notas
El API oficial de OpenAI Images permite generar imágenes desde texto con modelos GPT Image y devuelve base64 para los modelos GPT Image. Este proyecto usa `images.generate`, configurable con `OPENAI_IMAGE_MODEL`; por defecto usa `gpt-image-2`.
TDQS
A3.6/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a distinct stage: prompt refinement, image generation with background removal, and standalone background removal for local images. No two tools have overlapping purposes.
Naming Consistency5/5
All tool names follow a consistent verb_noun snake_case pattern: refine_candy_prompt, generate_candy_image, remove_background. The naming is uniform and predictable.
Tool Count5/5
Three tools perfectly cover the intended workflow: refine, generate, and process. The count is well-scoped for the server's purpose.
Completeness4/5
The pipeline is complete for candy image generation with background removal. The only minor gap is the absence of a standalone background-refinement option, but the core workflow is fully supported.
Maintenance
ActivityInactive
ResponsivenessNo issues