Skip to main content
Glama
ollieInstantOffr

FoodGen

FoodGen

Un servidor MCP que convierte una solicitud de cena en lista de la compra + receta en una página apta para móviles — lista para guardarse en Notas de Apple.

«Cena para 3 personas (2 adultos y 1 niño), rápida antes del entrenamiento de fútbol, sin pescado.»

Claude encuentra el plato, llama a create_dinner_plan y responde con un enlace como https://foodgen.instantoffr.com/n/Hxe7gVY_YYqRi2CCeZnV5g. En el móvil:

  • Lista de la compra agrupada por sección del supermercado, con casillas para marcar en la tienda (se recuerda en el dispositivo)

  • Receta con ingredientes y pasos debajo

  • «Guardar en Notas» → hoja para compartir → Notas guarda todo como una nota con lista de viñetas

  • …/n/<id>.txt ofrece texto plano, …/n/<id>.json ofrece datos en bruto

Arquitectura

  • Node 24 + Express, MCP sobre Streamable HTTP en /mcp (sin estado — no hay sesiones, todo está en SQLite)

  • SQLite (node:sqlite, sin dependencias nativas) en un volumen de Docker

  • El modelo escribe la receta; el servidor valida (zod), guarda y publica

  • Las URLs de los planes son aleatorias de 128 bits — no se pueden adivinar ni están indexadas; eso es todo el control de acceso

Interfaces MCP

create_dinner_plan

guarda un plan completo y devuelve el enlace

search / fetch

el contrato del conector de ChatGPT (búsqueda + consulta)

get_dinner_plan

recupera un plan (id o URL)

list_recent_dinner_plans

últimos planes, los más recientes primero

delete_dinner_plan

elimina un plan permanentemente

prompt /middag

acceso directo de «cena para …»

Related MCP server: Recipe Research MCP Server

Ejecución

cp .env.example .env      # sjekk PUBLIC_URL
docker compose up -d --build

TLS y el proxy son gestionados por Nginx Proxy Manager, que ya está en ejecución y configurado para el puerto 2400. Hay una cosa que vale la pena comprobar en el host del proxy: las respuestas de MCP se transmiten como SSE, así que el almacenamiento en búfer y un tiempo de espera de lectura de 60 segundos pueden cortar la transmisión. Activa Websockets Support y, opcionalmente, añade esto en la pestaña Advanced:

location /mcp {
    proxy_pass http://$server:$port;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header Connection "";
    proxy_buffering off;
    proxy_cache off;
    proxy_read_timeout 3600s;
}

Desarrollo local sin Docker:

PUBLIC_URL=http://localhost:2400 npm run dev

Conectar con Claude y ChatGPT

  • La app de Claude / claude.ai / Cowork: Settings → Connectors → Add custom connector → https://foodgen.instantoffr.com/mcp (sin autenticación)

  • Claude Code: claude mcp add --transport http foodgen https://foodgen.instantoffr.com/mcp

  • ChatGPT: Settings → Connectors → añade un conector MCP personalizado con la misma dirección, sin autenticación. El servidor expone search/fetch según el contrato de OpenAI, por lo que funciona como un conector normal (búsqueda/consulta en cenas guardadas y deep research); con Developer mode activado, ChatGPT también puede usar create_dinner_plan y crear nuevas cenas.

La página principal de https://foodgen.instantoffr.com muestra las mismas instrucciones.

Pruebas

docker compose up -d --build   # eller npm start
node test/e2e.mjs              # full MCP + HTTP-runde, 26 sjekker

Variables de entorno

Variable

Valor por defecto

PUBLIC_URL

https://foodgen.instantoffr.com

Origen público; los enlaces se construyen a partir de este

PORT

2400

Puerto HTTP dentro del contenedor

BIND_ADDR

0.0.0.0

Dónde publica compose el puerto

DB_PATH

/app/data/foodgen.db

Archivo SQLite (volumen)

RETENTION_DAYS

0

Elimina planes con más de N días de antigüedad (0 = nunca)

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables recipe search, storage, and meal planning using TheMealDB API. Provides comprehensive recipe discovery, automatic recipe collection management, and custom meal plan creation with detailed cooking instructions and ingredients.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Mealie for recipe management, meal planning, and shopping list operations. Supports searching and managing recipes, creating meal plans, and generating shopping lists from recipes or meal plans.
    7
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to interact with local Apple Calendar, Notes, and Contacts on macOS. Provides tools for creating, reading, updating, and deleting events, notes, and contacts through natural language.
    MIT