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-интерфейсы
| сохраняет полный план, возвращает ссылку |
| контракт коннектора ChatGPT (поиск + просмотр) |
| читает план обратно (id или URL) |
| последние планы, сначала новые |
| удаляет план навсегда |
prompt | ярлык «ужин на …» |
Related MCP server: Recipe Research MCP Server
Запуск
cp .env.example .env # sjekk PUBLIC_URL
docker compose up -d --buildTLS и прокси обрабатываются 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/mcpChatGPT: 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Переменные окружения
Переменная | По умолчанию | |
|
| Публичный origin; из него строятся ссылки |
|
| HTTP-порт внутри контейнера |
|
| Куда compose публикует порт |
|
| Файл SQLite (том) |
|
| Удалять планы старше N дней (0 = никогда) |
This server cannot be deployed
Maintenance
Related MCP Connectors
Scraps Kitchen gives any AI agent a persistent, household-aware kitchen memory. Unlike generic chatbot recall, Scraps maintains structured cooking data: what's in your fridge (with freshness tracking), who you cook for (with allergens, dietary restrictions, and preferences), your recipe collection (with cook notes and per-diner ratings), your shopping list, and your kitchen equipment. 27 tools across 6 domains let agents read kitchen context, suggest meals that respect dietary safety, update the pantry after cooking, and build a history of what works for your household. Every interaction makes the data richer. Cooking history, preference signals, kitchen awareness = better suggestions next time. All tools work via oAuth and a free scraps.kitchen account.
Family meal planning run by your agent: weekly dinners, household votes, grocery list minus pantry.
Household-aware cooking brain: pantry, meal suggestions, dietary safety, recipes, shopping lists.
AI meal plans that fill your Kroger/Instacart cart - pantry-aware lists, all from chat.
Related MCP Servers
- AlicenseDqualityBmaintenanceEnables interaction with Apple Notes via natural language, supporting note creation, search, and retrieval with iCloud integration for seamless note management.31025MIT
- FlicenseNot gradedqualityDmaintenanceEnables 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-
- AlicenseNot gradedqualityDmaintenanceEnables 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.7MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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