Skip to main content
Glama
ollieInstantOffr

FoodGen

FoodGen

MCP-сервер, который превращает запрос на ужин в список покупок + рецепт на мобильной странице — готовой к сохранению в Apple Notater.

«Ужин на 3 чеовека (2 взрослых и 1 ребёнок), бытро перед футбольной тренировкой, не рыба.»

Claude находит блюдо, вызывает create_dinner_plan и отвечает ссылкой вида https://foodgen.instantoffr.com/n/Hxe7gVY_YYqRi2CCeZnV5g. На мобильном:

  • Список покупок, сгруппированный по отделам магазина, с отмечками в магазине (сохраняется на устройстве)

  • Рецепт с ингредиентами и шагами ниже

  • «Добавить в Notater» → лист общего доступа → Notater сохраняет всё как одну заметку с маркированным списом

  • …/н/<id>.txt даёт чистый текс, …/н/<id>.json даёт сырые данные

Архитектура

  • Node 24 + Express, MCP через Streaable HTTP на /mcp (stateless — без сессий, всё хранится в SQLite)

  • SQLite (node:sqlite, без нативных зависимостей) в Docker-томе

  • Модель пише рецепт; сервер валидируе (zod), сохраняет и публикует

  • URL-адреса планов — случайные 128-бичные: и нельзя угадать, они не индексируются; это и есть весь контроь доступа

MCP-интерфейсы

create_dinner_plan

сохраняет полный план, возвращает ссылку

search / fetch

контракт коннектора ChatGPT (поиск + просмотр)

get_dinner_plan

читает план обратно (id или URL)

list_recent_dinner_plans

последние планы, сначала новые

delete_dinner_plan

удаляет план навсегда

prompt /middag

ярлык «ужин на …»

Related MCP server: Recipe Research MCP Server

Запуск

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

TLS и прокси обрабатываются Nginx Proxy Manager, который уже запущен и настроен на порт 2400. На прокси-хосте стоит проверить одну вещь: ответы MCP передаются потоком через SSE, поэтом буферизация и 60-секундный таймаут чтеня могут оборвать поток. Включите Websockets Support и, при необходимости, добавьте это на вкладке 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;
}

Локальная разработка без Docker:

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

Подключение к Claude и ChatGPT

  • Приложение Claude / claude.ai / Cowork: Settings → Connectors → Add custom connector → https://foodgen.instantoffr.com/mcp (без аутентификации)

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

  • ChatGPT: Settings → Connectors → добавьте собственный MCP-коннектор с тем же адресом, без аутентификации. Сервер предоставляет search/fetch по контракту OpenAI, поэтому работает как обычный коннектор (поиск/просмотр сохранённых ужинов и deep research); при включённом Developer mode ChatGPT также может использовать create_dinner_plan и создавать новые ужины.

Главная страница на https://foodgen.instantoffr.com показывает те же инструкции.

Тест

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

Переменные окружения

Переменная

По умолчанию

PUBLIC_URL

https://foodgen.instantoffr.com

Публичный origin; из него строятся ссылки

PORT

2400

HTTP-порт внутри контейнера

BIND_ADDR

0.0.0.0

Куда compose публикует порт

DB_PATH

/app/data/foodgen.db

Файл SQLite (том)

RETENTION_DAYS

0

Удалять планы старше N дней (0 = никогда)

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