FoodGen
Generates mobile-friendly dinner plans and shopping lists that can be saved to Apple Notes via the share sheet, preserving the content as a note with a bullet list.
Implements the ChatGPT connector contract, allowing OpenAI's ChatGPT to search and fetch saved dinner plans and, with developer mode enabled, create new dinner plans.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FoodGenPlan a quick dinner for 3, no fish, with a shopping list and recipe"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FoodGen
An MCP server that turns a dinner request into a grocery list + recipe on a mobile-friendly page — ready to be saved in Apple Notes.
“Dinner for 3 people (2 adults and 1 child), quick before soccer practice, no fish.”
Claude finds the dish, calls create_dinner_plan, and responds with a link like
https://foodgen.instantoffr.com/n/Hxe7gVY_YYqRi2CCeZnV5g. On mobile:
Grocery list grouped by store department, with check-off in the store (remembered on the device)
Recipe with ingredients and steps below
“Add to Notes” → share sheet → Notes saves everything as one note with bullet points
…/ n/<id>.txtgives plain text,…/ n/<id>.jsongives raw data
Architecture
Node 24 + Express, MCP over Streamable HTTP at
/mcp(stateless — no sessions, everything resides in SQLite)SQLite (
node:sqlite, no native dependencies) in a Docker volumeThe model writes the reci pe; the server validates (zod), stores, and publishes it
Plan URLs are 128-bit random — not guessable, not indexed; that is the entire access control
MCP surfaces
| saves a full plan, returns the link |
| the ChatGPT connector contract (search + lookup) |
| reads a plan back (id or URL) |
| latest plans, newest first |
| deletes a plan permanently |
prompt | “dinner for …” shortcut |
Related MCP server: Recipe Research MCP Server
Running
cp .env.example .env # sjekk PUBLIC_URL
docker compose up -d --buildTLS and proxy are handled by Nginx Proxy Manager, which is already running and
configured for port 2400. One thing is worth checking on the proxy host:
MCP responses stream as SSE, so buffering and a 60-second read timeout can cut
off the stream. Turn on Websockets Support, and optionally add this in the
Advanced tab:
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;
}Local development without Docker:
PUBLIC_URL=http://localhost:2400 npm run devConnect to Claude and ChatGPT
The Claude app / claude.ai / Cowork: Settings → Connectors → Add custom connector →
https://foodgen.instantoffr.com/mcp(no authentication)Claude Code:
claude mcp add --transport http foodgen https://foodgen.instantoffr.com/mcpChatGPT: Settings → Connectors → add a custom MCP connector with the same address, no authentication. The server exposes
search/fetchaccording to the OpenAI contract, so it works like a regular connector (search/lookup in stored dinners and deep research); with Developer mode on, ChatGPT can also usecreate_dinner_planand create new dinners.
The front page at https://foodgen.instantoffr.com shows the same instructions.
Test
docker compose up -d --build # eller npm start
node test/e2e.mjs # full MCP + HTTP-runde, 26 sjekkerEnvironment variables
Variable | Default | |
|
| Public origin; links are built from this |
|
| HTTP port inside the container |
|
| Where compose publishes the port |
|
| SQLite file (volume) |
|
| Delete plans older than N days (0 = never) |
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