Foodzilla の MCP サーバー
Foodzilla は Model Context Protocol に対応しているので、AI アシスタントはスクレイピングではなく標準のインターフェースでコーチのアカウントやクライアントの記録を扱えます。HTTPS エンドポイントが1つ、OAuth 2.1 と PKCE、そして60を超えるツールです。
https://api.foodzilla.io/mcp仕組みより、何ができるかをお探しですか。 Autopilot の概要を見る
Model Context Protocol とは
MCP は、AI アシスタントを実データを持つシステムにつなぐためのオープン標準です。アシスタントがサーバーにツールを問い合わせ、サーバーが名前と型つきの引数で答え、アシスタントがそれを呼びます。ウェブページや文書化されていないエンドポイントを手探りする従来のやり方を置き換えます。
栄養指導の現場では、これが他の分野以上に効いてきます。クライアントが説明した食事は、モデルが作った数字ではなく本物の食品データベースの栄養価とともに記録に入る必要があり、本人の記録にだけ入る必要があります。型つきのツールとアカウントごとのスコープが、それを守っています。
接続 リファレンス
MCP クライアントを Foodzilla に向けるために必要なものすべて。
- エンドポイント
- https://api.foodzilla.io/mcp
- トランスポート
- Streamable HTTP、POST による JSON-RPC 2.0
- 認可
- OAuth 2.1 認可コード + PKCE、動的クライアント登録
- ディスカバリ
- /.well-known/oauth-protected-resource/mcp
- スコープ
- autopilot, coach, openid, offline_access
- プラン
- コーチは Professional 以上
autopilot指導を受けているクライアント。本人のプランと本人の記録だけです。
coach自分のアカウントで作業するコーチ。レシピ、テンプレート、フォーム、予約、コンテンツ、ストア、設定、サブスクリプション。クライアントの記録には一切アクセスできません。
トークンが持つのはどちらか一方で、両方はありません。どちらになるかは同意画面で決まり、クライアント記録も持つコーチにはどちらで接続するかを尋ねます。
未認証のリクエストへの応答
401 と、リソースメタデータの URL を示す WWW-Authenticate ヘッダーです。作りのよい MCP クライアントは、これで認可サーバーを自力で見つけます。
ツール 一覧
現時点で61個。名前は安定しています。上書きするものや課金につながるものには destructive の印がつくので、アシスタントは実行前に確認します。
クライアントスコープ
16 ツール記録
log_food, log_planned_meal, log_water, log_exercise, log_sleep, log_weight, delete_food_log
本人のプラン
get_plan, get_todays_meals, get_recipe
振り返り
get_day, get_progress, get_recent_foods, get_profile, get_status
アカウント
sign_out_everywhere
log_food は、Foodzilla の食品データベースと照合され食材ごとの実際の栄養価がつく食品リストか、どのデータベースにもないものの数値入力か、どちらかを受け取ります。データベースにない行が1つでもあると、推測を記録せずに呼び出し全体を拒否し、その行を名指しします。
コーチスコープ
46 ツールレシピ
generate_recipe, import_recipe_from_url, update_recipe_draft, discard_recipe_draft, save_recipe, list_my_recipes
プランのテンプレート
generate_plan_template, list_my_templates, describe_plan_settings
コレクションと食品
create_collection, add_recipes_to_collection, list_collections, add_food, add_foods, import_food_from_url, import_food_from_text
フォームと予約
create_form, update_form, list_forms, get_booking_setup, set_availability, create_appointment_type, update_appointment_type
コンテンツ
create_post, update_post, publish_post, pin_post, list_posts
ストア
get_store, update_store, create_store_plan, update_store_plan, publish_store, unpublish_store
設定
get_app_experience, set_app_experience, update_my_profile, get_invoice_settings, update_invoice_settings
アカウントと請求
get_my_account, get_subscription, preview_plan_change, change_plan, activate_subscription, extend_trial
Professional 未満のコーチが接続すると、このうち5つだけになります。アカウントとサブスクリプションのツールで、アシスタントがアップグレードを見積もって実行できるようにするためです。残りはプランが上がった時点で、同じ接続のまま現れます。
アシスタントを つなぐ
インストールも鍵の発行も不要です。あとは OAuth のフローが済ませます。
Claude
- 1設定、コネクタ、カスタムコネクタを追加の順に進みます。
- 2URL に https://api.foodzilla.io/mcp を貼り付けます。
- 3ページが開いたら Foodzilla のメールアドレスとパスワードでサインインします。
- 4同意画面に表示されたアカウントを確認し、接続を押します。
ChatGPT
- 1設定、コネクタ、詳細設定の順に進み、開発者モードを有効にします。Foodzilla はまだコネクタディレクトリに載っていません。
- 2URL を https://api.foodzilla.io/mcp にしてコネクタを追加します。
- 3Foodzilla のメールアドレスとパスワードでサインインします。
- 4同意画面に表示されたアカウントを確認し、接続を押します。
- 5コネクタを有効にしたままチャットを始めます。
MCP に対応するその他のもの
エンドポイントに向けるだけです。動的クライアント登録で自分を登録し、保護リソースのメタデータから認可サーバーを見つけ、PKCE つきの認可コードフローを実行します。アクセストークンより長く接続を保ちたい場合は offline_access を要求してください。
利用上限と 使用量
週単位で計算
どのプランにも週ごとの上限があり、月曜にリセットされます。読み取り、書き込み、モデルの時間を使う呼び出しは別々に数えるので、読み取りの多い週がレシピ生成の枠を食いつぶすことはありません。
クライアントは共有枠
クライアントは1人ずつではなく、全員で1つの枠を使います。よく話す1人が事業所の1週間分を使い切ることはありません。
プランに応じて増える
White Label は Professional の4倍、Team はコーチ1人あたり7倍です。
パーセントで確認できる
Foodzilla の Autopilot タブに、その週の消費が表示されます。上限に達した場合、ツールは黙って失敗せず、その旨を返します。
サーバーが 拒否するもの
- クライアントの記録を求めるコーチのトークン。クライアント ID を受け取るツールがそもそも存在しないので、狙う先がありません。
- 自分の記録とプランの外に出ようとするクライアントのトークン。レシピはそのクライアントのプランに入っている場合だけ読めるので、ライブラリを1呼び出しずつたどることはできません。
- コーチがすでに切断した接続のトークン。有効期限内であっても拒否します。
- 再接続後に現れた、以前の許可のトークン。切断して再接続しても、古い鍵が気づかれないまま生き返ることはありません。
- プランが Autopilot を含まなくなったアカウントからのすべての呼び出し。資格は同意時だけでなく毎回確認します。
- コーチがクライアントの利用を切っているクライアント。
個人を特定できる情報はサーバーのログに残しません。クライアントやコーチの名前、メールアドレス、電話番号は書きません。