MCP App Store
by KeenEthics

Overview

Simple Macros gives Claude nutrition tracking superpowers. It's the easiest way to track calories, macros and full nutrition, and now all of it happens right in your chat. No forms and no digging through search results. Just tell Claude what you ate and it's logged. Ask how your week is going and get a real answer. It's completely free, with no subscription and no paywall. What Claude can do with Simple Macros: - "I had two eggs, toast and a latte." Foods are matched to our catalog of USDA whole foods and packaged products and added to your day in seconds. - "How many calories and how much protein do I have left?" Know exactly where you stand, any time of day. - "How am I doing this week?" See your trends, streaks and weight, plus a full nutrient report covering fiber, sodium, sugar and more. - "Log my morning shake." Save your go-to meals and recipes as favorites and log them in one line. - "Set my protein goal to 160 grams." Log your weight and adjust your goals without leaving the chat. Eating out? Covered. Simple Macros is built on an industry-leading restaurant menu database: 200,000+ US locations, including McDonald's, Chick-fil-A, Chipotle, Starbucks, Taco Bell and 100+ more chains, all from official published nutrition down to every option. Swap the bun, go light on the cheese, add extra chicken, go half and half on your bowl, and the numbers update with every change. Ask "What can I get at Chipotle to finish my day?" and Claude builds real, orderable meals that hit your remaining calories and protein, then logs one in a single step. Everything syncs instantly with the Simple Macros app on iPhone and Android. You choose Full access or Read-only when you connect, and you can disconnect anytime.

Tools

approve_pending_client

ChatGPT
Let a client who is waiting (pending_coach) in. While coaching is free nobody new waits, since there are no client limits; this is for an older request. If a plan limit is ever back on and the plan is full, the coach frees a seat by removing a client (remove_client). Only an owner or admin can approve an organization client.

build_menu_order

ChatGPT
Calculate calories and macros for a specific restaurant order before logging it: items by menu_item_id or name, with options to add/swap and default ingredients to remove. Returns each line's exact name and macros and the total. Log the same lines with log_meal as { kind: 'menu_item', restaurant, ...line }.

cancel_client_invite

ChatGPT
Cancel an open Simple Macros coaching invite identified by its email address or invite_id from get_coach_invite_link. Invalidates its link in Simple Macros without sending an email. Only invites sent by this coach can be canceled. Confirm with the coach before canceling.

create_favorite

ChatGPT
Save a reusable favorite. Give EITHER from_meal_id (copy a logged meal's items; that meal then shows as this favorite in the app) OR items[] (same shapes as log_meal). servings = how many servings the whole thing makes (default 1; a batch recipe might make 6). On a name clash you get error_code 'name_taken'; ask the user, then retry with replace_existing: true or a new name. Each item is one of: { kind: 'food', food_item_id, quantity, unit? } from our catalog; { kind: 'favorite', saved_meal_id, portions? } for a saved favorite; { kind: 'menu_item', restaurant, menu_item_id or name, options?, remove_options?, quantity? } for a restaurant item (get_restaurant_menu); { kind: 'combo', combo_id } for a whole idea from get_restaurant_meal_ideas; or { kind: 'custom', name, amount, unit, calories, protein_g, carbs_g?, fat_g?, ... } with macros for the WHOLE amount, only for recipes and foods search_foods doesn't have. A custom item that matches a catalog food is rejected with error_code 'resolvable' and candidates: resend with the food_item_id, or with allow_custom: true if it's genuinely different. Restaurant food can't be a custom item: use menu_item or combo.

delete_favorite

ChatGPT
Delete a favorite. Meals already logged with it keep their food (they hold their own copy). Ask the user first, then call with confirm: true.

delete_meal

ChatGPT
Delete a logged meal and all its items. Ask the user first, then call with confirm: true (without it nothing is deleted). Saved favorites are not affected.

delete_weight

ChatGPT
Delete the weigh-in for a date. Ask the user first, then call with confirm: true (without it nothing is deleted).

duplicate_favorite

ChatGPT
Copy a favorite into a new, independent one (named '<name> (copy)' unless you give a name). Useful for 'the same, but with one change'.

fetch

ChatGPT
Fetch one result from search by its id (meal:<id>, favorite:<id>, restaurant:<slug>).

find_nearby_restaurants

ChatGPT
Stores near a place for the chains Simple Macros has menus for in the user's country, nearest first. Pass near (a city, ZIP or postal code, or address the user gave); without it, the client's approximate location is used when it shares one. Optionally restaurant to find one chain. Distances are in the user's unit (distance_unit: miles in the US and UK, km elsewhere). Then use get_restaurant_meal_ideas for what to order.

get_client_days

ChatGPT
Read one active client's records for a date range: logged meals with every food and its recorded nutrients, stored steps, weigh-ins and daily goals. Resolve client only among the coach's authorized relationships. Dates use the client's timezone; default today. Select only the needed categories with include. Returns dated records, not averages, trends, adherence scores or comparisons. Calculate those from the returned records, using the correct denominator. Never treat null steps as zero or an empty meal log as zero food intake. Today is marked partial. Workouts are device-only and unavailable here. Follow next_start until has_more is false before describing the whole range. Client sharing consent includes connected AI assistants. Tracked fitness data is returned only for active relationships that authorize the signed-in coach or organization admin. Clients can revoke sharing in Settings, and permissions are checked on every request. Results are tracking summaries, not medical diagnoses or treatment recommendations.

get_coaching_plan

ChatGPT
Read the signed-in coach's current client capacity: active and pending client counts, configured limits, remaining capacity, and whether client detail access is restricted by capacity. Also returns their coaching organizations and membership roles; organization capacity is available only to owners and admins. Null limits mean no configured limit. Does not change account access or client assignments.

get_days

ChatGPT
Read the signed-in user's own records for a date range: logged meals with every food and its recorded nutrients, stored steps, weigh-ins and daily goals. Use days or start/end in their timezone; default today. Select only the needed categories with include. Returns dated records, not averages, trends, adherence scores or comparisons. Calculate those from the returned records, using the correct denominator. Never treat null steps as zero or an empty meal log as zero food intake. Today is marked partial. Workouts are device-only and unavailable here. Follow next_start until has_more is false before describing the whole range.

get_favorite

ChatGPT
One favorite with every item (item_id, name, amount, calories, protein, carbs, fat) for the WHOLE batch; divide by servings for one serving.

get_food

ChatGPT
Full details of one catalog food by food_item_id: per-100g macros (calories, protein, carbs, fat, fiber, sugars, sodium, cholesterol), the default serving, and the 'as prepared' state when the label has one (e.g. dry pasta vs cooked). Needed to log by weight ('150 g') or as prepared.

get_goals

ChatGPT
Read fixed daily goals, exact bounds, scheduled changes, revision, and pending coach proposals. Dates are inclusive local dates. Steps always use a minimum. Net carbs means total carbs minus fiber. Empty or incomplete tracking cannot establish that a maximum was met.

get_profile

ChatGPT
The user's profile and today's goals: calories, protein, steps, goal direction and pace, activity level, current/target weight, TDEE, timezone, and this connection's access level. setup_complete is false until the account finishes its short setup; then setup_url is a link for the user to finish it on the website.

get_restaurant_meal_ideas

ChatGPT
Simple Macros' Meal Generator: real orders at a chain that hit a calorie target with at least a protein floor, built from the official menu. With no calories, the target is what the user has LEFT today (calories and protein), so 'what can I eat at X to fill out my day' needs only the restaurant. With calories and no protein_g, the protein floor is that many calories' worth of their daily goals (the app's ratio), so '750 calories that hits my macros' needs only calories. Pass protein_g ONLY when the user is explicit (a number, or 'my remaining protein'); never fill it in yourself. must_include / exclude to steer it. Each idea has a combo_id: log it with log_meal items [{ kind: 'combo', combo_id }]. The numbers are the chain's official published nutrition, and every item carries breakdown_per_item (base plus each option). The breakdown shows how a total is built from the chain's own portion sizes (a side cup is a different portion from an entrée portion).

get_restaurant_menu

ChatGPT
A chain's menu from Simple Macros with official macros: each item's default build and its calorie/protein range across options. Filter with query (fuzzy item name) or category. Set include_options to see every option group with each option's calorie/protein change (on automatically when 5 or fewer items match). To log an item, pass { kind: 'menu_item', restaurant, menu_item_id, options?, remove_options?, quantity } to log_meal.

get_streaks_and_badges

ChatGPT
Current and longest streak for weigh-ins, calorie goal (within ±500), protein goal and steps; every badge earned with its date; and the next badge in each category with how far away it is when we can tell. Badges are awarded by the app, so a badge earned from here shows up after the app next opens.

invite_client_by_email

ChatGPT
Email someone a one-time invite to connect with the coach in Simple Macros (the same invite the portal sends; it expires in 14 days). Whoever accepts it and approves sharing becomes the client. With organization, the client joins that organization instead: a plain org coach's invite assigns the client to themselves; an owner or admin may pick a coach with assign_to (or leave the client unassigned). Confirm the address with the coach first.

list_favorites

ChatGPT
The user's saved favorites (reusable meals and recipes), most-used first, with servings, per-serving calories/protein, tags, restaurant and item names. query matches names, items and restaurant fuzzily; tag filters (breakfast, lunch, dinner, snack, sides, drinks, restaurant). Check here first when the user says 'my usual' or names a meal.

list_my_clients

ChatGPT
List only the signed-in coach's connected clients: names, connection status, organization name when applicable and the relationship reference used to select a client. Includes active clients and pending requests. No fitness records or check-in assessments are returned. Use get_client_days for an active client's records. Access is checked on every request.

list_my_reviews

ChatGPT
Reviews clients left for the coach, newest first, with the coach's reply if any, plus the average rating.

log_meal

ChatGPT
Track one meal in Simple Macros; it shows on the Track tab like a meal logged in the app. Each item is one of: { kind: 'food', food_item_id, quantity, unit? } from our catalog; { kind: 'favorite', saved_meal_id, portions? } for a saved favorite; { kind: 'menu_item', restaurant, menu_item_id or name, options?, remove_options?, quantity? } for a restaurant item (get_restaurant_menu); { kind: 'combo', combo_id } for a whole idea from get_restaurant_meal_ideas; or { kind: 'custom', name, amount, unit, calories, protein_g, carbs_g?, fat_g?, ... } with macros for the WHOLE amount, only for recipes and foods search_foods doesn't have. A custom item that matches a catalog food is rejected with error_code 'resolvable' and candidates: resend with the food_item_id, or with allow_custom: true if it's genuinely different. Restaurant food can't be a custom item: use menu_item or combo. Optional date (YYYY-MM-DD, default today), time (HH:mm), and label. Returns the meal and what's left for the day.

log_weight

ChatGPT
Log OR correct the day's weigh-in, in the chosen unit (default: the user's preference). A day has exactly one weigh-in: if one already exists for that date it is updated (the result says updated: true and gives previous_weight_lb), never duplicated. Defaults to today and now.

lookup_barcode

ChatGPT
Find a packaged product in our catalog by its UPC/EAN barcode. Several candidates can share a barcode; they come ranked with verified ones first. No match means we don't have it yet (adding a product needs the app's label-photo flow), so tell the user and use a custom item if they want it logged. Log it with log_meal as { kind: 'food', food_item_id, quantity }. Check list_favorites and get_frequent_foods first for the user's own versions.

propose_client_goals

ChatGPT
Propose fixed daily goals to an active client by relationship_id. Does not change goals until the client explicitly accepts. Optional start_date and end_date are inclusive in the client timezone. Uses the same minimum, maximum, target and range rules as personal goals.

remove_client

ChatGPT
End coaching with a client, or decline one who is waiting for a seat. The coach stops seeing their data right away and the seat frees up. An active client gets a notice. This is the only way to free a seat; to come back, the client reconnects with the coach's code and approves sharing again. An organization client leaves the whole organization, and only an owner or admin can remove them (to move them to another coach, use assign_client). Confirm with the coach first.

report_issue

ChatGPT
Send the Simple Macros team a problem report when something went wrong here: wrong or surprising numbers, a meal or weigh-in that didn't log right, a food or menu item we're missing, or an error message. Offer it when the user says something is broken or wrong, and ask before sending. details is what the team uses to find and fix the problem, so make it specific: what the user asked for, which tools you called with the inputs you sent and what came back (the numbers, names, dates and any error text), and what was wrong or what the user expected instead. We add the account, the assistant and our recent tool-call log ourselves. The team replies to the user by email.

resend_client_invite

ChatGPT
Resend an open Simple Macros coaching invite identified by its email address or invite_id from get_coach_invite_link. Emails the recipient a fresh link valid for 14 more days, invalidates the old link, and revives an expired invite. Only invites sent by this coach can be resent. Confirm with the coach before sending.

respond_goal_proposal

ChatGPT
Accept or decline one pending coach proposal only after the user explicitly chooses. Read get_goals first and show the changes and dates. Acceptance updates only proposed metrics and requires the current revision.

respond_to_review

ChatGPT
Post or replace the coach's one public reply to a client review stored in Simple Macros. Only updates reviews of this signed-in coach within Simple Macros; it does not contact external review platforms. The reply is displayed on the coach's Simple Macros profile. An empty response removes the reply. It replaces any earlier reply, so confirm the wording with the coach first.

search_foods

ChatGPT
Search the Simple Macros food catalog (USDA whole foods, packaged/branded products, and community-scanned items) for 1 to 10 foods at once. Returns candidates per query with food_item_id, name, brand, default serving and per-serving calories/protein/carbs/fat. An empty list means we don't have it: then use a custom item. Log it with log_meal as { kind: 'food', food_item_id, quantity }. Check list_favorites and get_frequent_foods first for the user's own versions.

search_restaurants

ChatGPT
The restaurant chains Simple Macros has full menus for (official nutrition, every option), limited to chains with locations in the user's country. Search by name, or omit query to list them all. Use the slug with get_restaurant_menu, get_restaurant_meal_ideas and log_meal. For stores near a place, use find_nearby_restaurants.

set_coach_code

ChatGPT
Change the coach's code (and so their link). Either a code they choose, 3 to 12 letters and numbers such as their name (SARAHLEE): spaces and dashes are dropped and it's saved in capitals, and the old code keeps working so links and QR codes already handed out still reach this coach. Or random: true for a new random code, for when a code was shared somewhere it shouldn't be: then the current code AND every old one stop working, so confirm with the coach first. Up to 5 code changes a day.

update_coach_profile

ChatGPT
Read or change the signed-in coach's profile stored in Simple Macros: name, business, headline (80 characters max), specialties (up to 5 of: Weight loss, Muscle gain, Strength, Endurance, Sports performance, General health, Plant-based, Women's health, Men's health, Over 50, Bodybuilding, Habit coaching, Postpartum), how they coach (online, in person or both), city/region/country, languages, a price note, website, Instagram and TikTok usernames, and whether they're taking new clients. Only updates this coach's Simple Macros profile. Website and social usernames are stored as profile text; no websites or social accounts are contacted or edited. Only the fields passed change; call with no fields to read the profile. Show the coach the new text before saving. The photo is changed on simplemacros.com/coach/settings.

update_favorite

ChatGPT
Edit a favorite's template: rename, change servings or tags, add_items, remove_item_ids (item_id from get_favorite), or set_items to replace all. Future logs use the new version; meals already logged keep their copy.

update_goals

ChatGPT
Change the user's daily goals from today on: calorie_diff (calories per day vs maintenance/TDEE, negative = deficit, e.g. -500), daily_protein_goal (grams), step_goal, activity_level. Returns the new goals and the TDEE math behind them. Past days keep their old goals.

update_meal

ChatGPT
Edit a logged meal by meal_id (from get_day / get_meals): add_items, remove_food_ids (the item food_id values from get_day), set_quantity to change one item's amount, set_items to replace everything, or move it with date / time / label. Items use the same shapes as log_meal. Returns the updated meal and what's left for the day.

update_profile

ChatGPT
Change target weight, weekly pace, goal direction (lose | maintain | gain), or timezone (IANA name like America/Chicago). These are profile fields only: they do NOT change the daily calorie goal. To change calories, use update_goals (e.g. calorie_diff -500 for about 1 lb/week).

build_menu_order

Claude

create_favorite

Claude

delete_favorite

Claude

delete_meal

Claude

delete_weight

Claude

duplicate_favorite

Claude

fetch

Claude

find_nearby_restaurants

Claude

get_day

Claude

get_favorite

Claude

get_food

Claude

get_frequent_foods

Claude

get_history

Claude

get_meals

Claude

get_nutrient_report

Claude

get_profile

Claude

get_restaurant_meal_ideas

Claude

get_restaurant_menu

Claude

get_streaks_and_badges

Claude

get_weight_history

Claude

list_favorites

Claude

log_meal

Claude

log_weight

Claude

lookup_barcode

Claude

report_issue

Claude

search_foods

Claude

search_restaurants

Claude

update_favorite

Claude

update_goals

Claude

update_meal

Claude

update_profile

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

75

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily