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 がすべてを箇条書きの 1 つのノートとして保存

  • …/n/<id>.txt はプレーンテキスト、…/n/<id>.json は生データを返します

アーキテクチャ

  • Node 24 + Express/mcpStreamable HTTP を介した MCP(ステートレス — セッションなし、すべて SQLite に格納)

  • SQLitenode: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 とプロキシは、すでに稼働しておりポート 2400 に対して設定済みの Nginx Proxy Manager が処理します。プロキシホストで確認すべき点が 1 つあります。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: 設定 → コネクタ → カスタムコネクタを追加 → https://foodgen.instantoffr.com/mcp(認証なし)

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

  • ChatGPT: 設定 → コネクタ → 同じアドレスのカスタム MCP コネクタを追加、認証なし。サーバーは OpenAI 契約に従って search/fetch を公開するため、通常のコネクタ(保存済みの夕食の検索・参照、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

公開オリジン。リンクはこれをもとに生成

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