Skip to main content
Glama
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