The Foodzilla MCP server
Foodzilla speaks the Model Context Protocol, so an AI assistant can work in a coach's account or a client's diary through a standard interface rather than a scraped one. It's one HTTPS endpoint, OAuth 2.1 with PKCE, and more than 60 tools.
https://api.foodzilla.io/mcpLooking for what it does rather than how it works? See the Autopilot overview
What the Model Context Protocol is
MCP is an open standard for connecting AI assistants to the systems that hold real data. The assistant asks a server what tools it has, the server answers with names and typed arguments, and the assistant calls them. It replaces the pattern where an assistant guesses its way through a web page or an undocumented endpoint.
For a nutrition practice that matters more than it does elsewhere. A meal a client describes has to land in their diary with nutrition from a real food database, not a number the model made up, and it has to land in their record and nobody else's. Typed tools and per-account scopes are how that stays true.
Connection reference
Everything you need to point an MCP client at Foodzilla.
- Endpoint
- https://api.foodzilla.io/mcp
- Transport
- Streamable HTTP, JSON-RPC 2.0 over POST
- Authorisation
- OAuth 2.1 authorisation code with PKCE, dynamic client registration
- Discovery
- /.well-known/oauth-protected-resource/mcp
- Scopes
- autopilot, coach, openid, offline_access
- Plan
- Professional and above for coaches
autopilotA coached client. Their own plan and their own diary, and nothing else.
coachA coach working on their own account. Recipes, templates, forms, bookings, content, store, settings and subscription. No access to any client record.
A token carries one of them, never both. Which one you get is chosen on the consent page, and a coach who also has a client record is asked which they're connecting as.
What an unauthenticated request gets
A 401 with a WWW-Authenticate header naming the resource metadata URL, which is how a well-behaved MCP client finds the authorisation server on its own.
The tools
61 at the time of writing. Names are stable. Anything that overwrites or spends money is marked destructive, so your assistant asks before it runs.
Client scope
16 toolsLogging
log_food, log_planned_meal, log_water, log_exercise, log_sleep, log_weight, delete_food_log
Their plan
get_plan, get_todays_meals, get_recipe
Looking back
get_day, get_progress, get_recent_foods, get_profile, get_status
Account
sign_out_everywhere
log_food takes either a list of foods, matched against the Foodzilla food databases with real per-ingredient nutrition, or plain figures for something no database holds. One line the database doesn't know refuses the whole call and names it, rather than logging a guess.
Coach scope
46 toolsRecipes
generate_recipe, import_recipe_from_url, update_recipe_draft, discard_recipe_draft, save_recipe, list_my_recipes
Meal plan templates
generate_plan_template, list_my_templates, describe_plan_settings
Collections and foods
create_collection, add_recipes_to_collection, list_collections, add_food, add_foods, import_food_from_url, import_food_from_text
Forms and bookings
create_form, update_form, list_forms, get_booking_setup, set_availability, create_appointment_type, update_appointment_type
Content
create_post, update_post, publish_post, pin_post, list_posts
Store
get_store, update_store, create_store_plan, update_store_plan, publish_store, unpublish_store
Settings
get_app_experience, set_app_experience, update_my_profile, get_invoice_settings, update_invoice_settings
Account and billing
get_my_account, get_subscription, preview_plan_change, change_plan, activate_subscription, extend_trial
A coach below Professional connects with five of these: the account and subscription tools, so the assistant can quote an upgrade and apply it. The rest appear the moment the plan moves up, on the same connection.
Connecting an assistant
Nothing to install and no key to generate. The OAuth flow does the rest.
Claude
- 1Settings, then Connectors, then Add custom connector.
- 2Paste https://api.foodzilla.io/mcp as the URL.
- 3Sign in with your Foodzilla email and password when the page opens.
- 4Check the account named on the consent page, then press Connect.
ChatGPT
- 1Settings, then Connectors, then Advanced, and turn developer mode on. Foodzilla isn't in the connector directory yet.
- 2Add a connector with https://api.foodzilla.io/mcp as the URL.
- 3Sign in with your Foodzilla email and password.
- 4Check the account named on the consent page, then press Connect.
- 5Start a chat with the connector turned on.
Anything else that speaks MCP
Point it at the endpoint. It registers itself through dynamic client registration, finds the authorisation server through the protected resource metadata, and runs the authorisation code flow with PKCE. Ask for offline_access if you want the connection to survive past the access token.
Rate limits and usage
Counted weekly
Every plan carries a weekly allowance, reset on Monday. Reads, writes and the calls that spend model time are counted in separate buckets, so a busy week of reading doesn't eat the budget for generating recipes.
Clients share a pool
Your clients draw from one allowance between them rather than one each. It means a single chatty client can't spend the practice's week.
Scales with the plan
White Label carries four times the Professional allowance. Team carries seven times, per coach.
Visible as a percentage
The Autopilot tab in Foodzilla shows how much of the week is gone. Hit the limit and the tool answers with a message saying so, rather than failing silently.
What the server refuses
- A coach token asking for a client's record. There is no tool that takes a client id, so there's nothing to aim at another client's data.
- A client token reaching past its own diary and its own plan. Recipes are readable only when they're on that client's plan, which keeps the library from being walked one call at a time.
- A token for a connection the coach has since disconnected, even while it's still inside its lifetime.
- A token from an earlier grant after a reconnection, so disconnecting and reconnecting doesn't quietly bring an old key back to life.
- Anything on an account whose plan no longer carries Autopilot. Eligibility is checked on every call, not just at consent.
- A client whose coach has switched client access off.
Personally identifiable information stays out of server logs. No client or coach names, email addresses or phone numbers.
Related Features
Explore more tools built for nutrition professionals
Developer API
Connect your own website or CRM to Foodzilla and sign members up automatically.
Learn moreNutrition Databases
Access USDA, CoFID, FSANZ, Canadian Nutrient File, and TCA food composition databases.
Learn moreApp Customizations
Toggle individual features on or off for each client to create a personalised experience.
Learn moreClient Portal
A secure web login where clients fill in forms, read shared notes, and track progress.
Learn moreData Export
Export raw data to CSV or generate polished PDF reports for clients and providers.
Learn moreFood Diary
AI-powered food tracking with photo detection and nutrient breakdowns.
Learn more