For AI agents
View as

Is your human hungry?

With Calori connected, you see their nutrition targets, what they’ve eaten and what’s planned, and you can order the meals Calori cooks and delivers in Helsinki and Stockholm.

Calori MCP server

https://mcp.calori.health/mcp

Streamable HTTP · OAuth 2.1 sign-in with an email code

Connect to Calori

The server connects you to the user’s own Calori account, the same one as in the Calori app (a new email creates one). They sign in with an email code, allow what you’ll be able to do, and can disconnect you at any time on .

Claude

  1. 1. Open Settings → Connectors.
  2. 2. Choose Add custom connector and paste https://mcp.calori.health/mcp.
  3. 3. Select Connect, then sign in to Calori.

ChatGPT

  1. 1. Open Settings → Apps & Connectors and turn on Developer mode.
  2. 2. Choose Create and paste https://mcp.calori.health/mcp.
  3. 3. Sign in to Calori when ChatGPT asks.

Any MCP client

  1. 1. Call https://mcp.calori.health/mcp over Streamable HTTP.
  2. 2. The first call answers 401 and points to the sign-in server: register your client there (dynamic client registration).
  3. 3. Send the user to sign in, then call again with the token.

Cursor, VS Code and Claude Code

claude mcp add --transport http calori https://mcp.calori.health/mcp

No MCP tools? Everything up to the order works without them. /llms-full.txt has this week’s menu with each meal’s calories and macros, the prices and the delivery areas as plain text, so you can pick meals that suit the user. To order, connect to the server yourself if you can make HTTP requests (see Any MCP client above; the user signs in with an email code), have them add Calori in their assistant, or send them to Calori’s sign-up on the web.

If your human says…

  • Reads
  • Changes
  • Spends money

“I’m hungry.”

  1. get_days
  2. find_foodor score_menu

Start from what’s left of today in get_days: a Calori meal in today’s plan is probably already in their fridge. For anything else find_food has the numbers, and for a menu they’re choosing from, score_menu.

“I just had a cinnamon bun.”

  1. find_food
  2. log_food

Use a find_food match only when it’s the same food; otherwise log your best estimate. Food from an order you placed or saw goes in with record_order instead.

“I want Calori meals.”

  1. get_me
  2. set_profile
  3. check_area
  4. set_address
  5. preview_week
  6. order_week(Spends money)

Fill set_profile from what you already know and ask only for the rest. Show the meals, with their photos if you can, and the total before order_week, and wait for a yes. Outside the delivery area set_address puts them on the wait list; without a card on file, give them get_me’s card link after ordering.

“Add a snack on Wednesday.”

  1. find_food
  2. edit_plan

find_food with menu_date lists that day’s menu. edit_plan adds, swaps or skips Calori meals on a week that can still change, every slot in one call; an added meal is billed with its week, and the result has the new total.

“Where’s my food?”

  1. get_deliveries
  2. send_delivery

get_deliveries has today’s bag and its courier: ready, booked, or on the way with a tracking link and ETA. If the bag is ready and no courier is booked, send_delivery books one, or tells Calori they’ll pick it up.

“I’m away next week.”

  1. get_deliveries
  2. pause_weeks

Paused weeks are neither delivered nor billed. get_deliveries gives the first week that can still change.

“What if I went for muscle gain?”

  1. preview_eating_change
  2. set_eating_changeor set_profile

preview_eating_change shows what a change would do before anything changes: their targets before and after, the weekly weight change Calori expects, and whether their Calori meals follow. Once they say so, set_eating_change makes it, or set_profile for a named goal; use_calori_targets brings back Calori’s own targets.

“I run three times a week now.”

  1. update_profile

Give update_profile only what changed. Exercise on its own doesn’t move their targets: when their whole day is more active, give activity_level too. New targets re-plan the next week that can still change, so its meals and price may change.

“How am I doing?”

  1. get_days
  2. get_weight

Look at trends over days, not single meals. get_days with intake covers up to 31 days and says how fully each one was tracked; get_weight covers months. When they want to see a day rather than hear about it, show_day.

Tools

30 of them, from logging a snack to ordering the week. Most changes can be undone; before anything that spends money, get the user’s yes.

  • Reads
  • Changes
  • Spends money

Their day

  • get_days(Reads)
  • show_day(Reads)
  • log_food(Changes)
  • edit_food_log(Changes)
  • get_weight(Reads)
  • log_weight(Changes)
  • undo(Changes)

Food and menus

  • find_food(Reads)
  • get_meal_details(Reads)
  • score_menu(Reads)
  • record_order(Changes)

Profile and targets

  • get_me(Reads)
  • set_profile(Changes)
  • update_profile(Changes)
  • preview_eating_change(Reads)
  • set_eating_change(Changes)
  • use_calori_targets(Changes)
  • set_food_preferences(Changes)

Orders

  • check_area(Reads)
  • set_address(Changes)
  • preview_week(Reads)
  • order_week(Spends money)
  • edit_plan(Changes)
  • set_my_day(Changes)
  • pause_weeks(Changes)
  • edit_pause(Spends money)
  • cancel_deliveries(Changes)

Delivery

  • get_deliveries(Reads)
  • send_delivery(Changes)
  • set_delivery_time(Changes)

Machine-readable

Download App

Be the first to know when our app launches on the Play Store

Join Play Store waitlist

We’re here to help

Calori Customer Service

Opening hours

Mon9:00 – 15:00
Tue9:00 – 15:00
Wed14:00 – 20:00
Thu9:00 – 15:00
FriClosed
SatClosed
Sun14:00 – 20:00

Contact

info@calori.health
We will respond within 24 hours.

+358 50 382 9853
We will call you back if the lines are busy.

Nutrition Intelligence

Platform

Opening hours

Mon9:00 – 15:00
Tue9:00 – 15:00
Wed14:00 – 20:00
Thu9:00 – 15:00
FriClosed
SatClosed
Sun14:00 – 20:00

Contact

info@calori.health
We will respond within 24 hours.

+358 50 382 9853
We will call you back if the lines are busy.

2026 All Rights Reserved Privacy Policy Terms of Service Sign in 2026 All Rights Reserved