Diet / Meal Log MCP Server
Click on "Install 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., "@Diet / Meal Log MCP Serverlog a chicken salad for lunch, 450 calories"
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.
Diet / Meal Log MCP Server
食事ログを管理するMCP (Model Context Protocol) サーバー。ChatGPT (モバイル含む) のカスタムコネクタから使えるように、Streamable HTTP + OAuth 2.1 (動的クライアント登録 + PKCE) で常時稼働する構成にしています。
機能
add_meal: 食事ログを1件追加(タンパク質・脂質・炭水化物は任意)。食事1件につき1回呼び出す想定(1日分をまとめて1回で記録しない)update_meal: 既存の食事ログを部分更新(idはget_daily_summary等の結果から取得)delete_meal: 食事ログを1件削除get_daily_summary: 指定日の食事ログ・合計カロリー・栄養素内訳・(設定していれば)目標カロリーとの差分を取得get_week_summary: 指定週(月曜始まり)の同様のサマリset_calorie_goal: 1日の目標摂取カロリーを設定
データは SQLite (DIET_MCP_DB_PATH、デフォルト ~/.diet-mcp/diet-mcp.db) に保存されます。スキーマ変更(栄養素フィールド追加等)は起動時に既存DBへ自動マイグレーションされます。
Related MCP server: Food Tracker MCP Server
アーキテクチャ
transport: Streamable HTTP のみ (stdio/SSEは廃止 — Claude Desktopでのローカル利用は今回のスコープ外)
認証: OAuth 2.1 (認可コード + PKCE + 動的クライアント登録)。ChatGPT Connectorsが要求する
/.well-known/oauth-authorization-serverと/.well-known/oauth-protected-resource/mcpを自前で実装(src/diet_mcp/oauth_provider.py)。単一ユーザー向けなので第三者IdPには委譲せず、このサーバー自身が認可サーバーになるログイン:
/authorizeからリダイレクトされる/loginで、DIET_MCP_API_KEYをそのままログインパスワードとして入力し承認する(アカウント所有者が1人である前提の簡略化)ストレージ: SQLite。旧バージョンのJSONファイルは
legacy/に退避済み
ローカル実行
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
export DIET_MCP_API_KEY=$(openssl rand -hex 32) # /loginのパスワードにもなる
export DIET_MCP_ISSUER_URL=http://127.0.0.1:8000 # このサーバーの公開URL(本番ではhttps必須)
python -m diet_mcp.server # http://0.0.0.0:8000/mcpテスト:
pytest tests/ -qデプロイ (Fly.io)
HTTPSで常時アクセス可能な場所に置く必要があるため、Fly.ioを想定したDockerfile/fly.tomlを用意しています(他のホスティングでもDockerfileはそのまま使えます)。以下は実行前に内容を確認してください。アプリ作成・ボリューム作成・シークレット設定はすべて実際にFlyのアカウント/課金に影響します。
# flyctl未インストールの場合
curl -L https://fly.io/install.sh | sh
fly launch --no-deploy # fly.tomlのapp名が既に埋まっているので確認・調整
fly volumes create diet_mcp_data --size 1 --region nrt
fly secrets set DIET_MCP_API_KEY=$(openssl rand -hex 32)
fly deployfly.tomlの[env] DIET_MCP_ISSUER_URLをデプロイ先の実際のURL(例: https://diet-mcp.fly.dev)に合わせてください。
fly.toml は min_machines_running = 0 にしているため、アイドル時は完全停止しコスト最小化されますが、初回アクセス時にコールドスタートの遅延が発生します。気になる場合は min_machines_running = 1 に変更してください。
ChatGPTへの接続
ChatGPT (Plus/Pro/Team/Enterprise) の設定 → Connectors → カスタムコネクタを追加
Server URL に
https://<app-name>.fly.dev/mcpを入力認証は「OAuth」を選択。サーバーが
/.well-known/oauth-authorization-serverと/.well-known/oauth-protected-resource/mcpを公開しているので、認可URL・トークンURL・登録URL・リソースはChatGPT側が自動検出する(手入力は不要)コネクタ追加後、ブラウザで
/loginページが開くのでDIET_MCP_API_KEYの値をパスワードとして入力して許可するモバイルアプリでは、Web/デスクトップで一度コネクタを追加すればアカウント側の設定として反映され、モバイルからも同じコネクタが使えます
既存データの移行
旧バージョンでは ~/diet-mcp-meals.json にデータを保存していました(今回の環境には実データはありませんでした)。もしデータがあれば:
python scripts/migrate_json_to_sqlite.py ~/diet-mcp-meals.jsonプロジェクト構成
diet-mcp/
├── src/diet_mcp/
│ ├── server.py # FastMCPアプリ + AuthSettings + entrypoint
│ ├── tools.py # add_meal / update_meal / delete_meal / get_daily_summary / get_week_summary / set_calorie_goal
│ ├── db.py # SQLiteアクセス層 (meals + OAuth状態)
│ ├── models.py # Mealデータクラス
│ ├── oauth_provider.py # OAuthAuthorizationServerProvider実装(単一ユーザー向け)
│ ├── auth.py # /loginページ(パスワード確認→認可コード発行)
│ └── pkce_compat.py # PKCE省略クライアント(ChatGPT Connectors)向けの互換ミドルウェア
├── scripts/migrate_json_to_sqlite.py
├── tests/test_tools.py
├── legacy/ # 旧stdio/SSE版 (server.py, web_server.py等) を参考用に保存
├── Dockerfile
├── fly.toml
└── pyproject.tomlThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/inai17ibar/diet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server