foodose GLP-1 nutrition
Server Details
GLP-1 calorie and protein targets with a dose aware appetite ceiling, plus food and recipe search.
- Status
- Healthy
- Uptime
- 95.5% over 44 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a distinct primary role: target calculation, appetite-factor lookup, food search, and recipe search. The main overlap is that calculate_glp1_target already includes an appetite ceiling, while get_appetite_ceiling exposes that factor separately, so an agent could occasionally hesitate between them.
All tool names use consistent snake_case with clear verb-first patterns such as calculate_*, get_*, and search_*. The naming is predictable and readable across the set.
Four tools is well scoped for a focused GLP-1 nutrition lookup/calculation server. Each tool covers a distinct part of the workflow without feeling bloated or arbitrarily thin.
The surface covers the core domain needs: personalized targets, appetite modeling, food nutrition, and recipe discovery. Minor gaps exist around retrieving a specific food or recipe by identifier and broader meal-planning support, but agents can work around them via search.
Available Tools
4 toolscalculate_glp1_targetGLP-1 daily targetsARead-onlyIdempotentInspect
Daily calorie, protein, carbohydrate, fat and fibre targets for someone taking a GLP-1 receptor agonist, plus the appetite ceiling: a dose aware estimate of the most they are likely to manage in a day. Use it for anyone taking or considering one of these medications, where a standard calorie calculation would assume an appetite they do not have. Returns the full derivation with a PubMed citation per step. The engine is the one behind the Foodose iPhone app, which applies it every morning to plate a day of food around the user's dose week. Educational only. Not medical advice, not a diagnosis, and not a substitute for the clinician who prescribes the medication. Not appropriate for pregnancy, breastfeeding, insulin or sulfonylurea use, a history of disordered eating, or anyone under 18.
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | ||
| sex | No | Biological sex, which sets the BMR constant. | female |
| goal | No | lose | |
| doseMg | No | Current dose in mg. Must be a licensed dose for that medication, otherwise it is treated as 0. Use get_appetite_ceiling to list the licensed doses. | |
| activity | No | light | |
| heightCm | Yes | Height in centimetres. | |
| weightKg | Yes | Current weight in kilograms. | |
| medication | No | Brand name, any case. Generic names map to the weight-management brand: semaglutide to Wegovy, tirzepatide to Zepbound, liraglutide to Saxenda, dulaglutide to Trulicity, oral semaglutide to Rybelsus. | undecided |
| goalWeightKg | No | Defaults to 85 percent of current weight. | |
| weeklyLossKg | No | ||
| startWeightKg | No | Weight when the medication was started, used for the adaptive thermogenesis step. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile (readOnly, idempotent, non-destructive, closed-world), and the description goes well beyond them: it discloses the return shape (full derivation with a PubMed citation per step), the provenance of the engine, and the safety/liability boundaries. That is exactly the context an agent needs to decide whether to surface this result to a user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then usage, then return value, then disclaimers — a sensible order. The safety footer is slightly padded ('Educational only' followed by three restatements of the same idea), but for a health tool that redundancy is defensible rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters, no output schema and partial schema coverage, the description does the important work: it explains what is returned, why the calculation differs from a standard one, and who should not use it. It stops short of describing the optional inputs and their defaults, which the schema handles but only partially.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 64% and the description adds no parameter-level meaning beyond the concept of dose awareness. Optional inputs like goal, weeklyLossKg, startWeightKg and goalWeightKg are left entirely to the schema, so the baseline 3 for a reasonably documented schema is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific computation and its complete output set: calorie, protein, carbohydrate, fat and fibre targets plus an appetite ceiling. It also scopes it to a population (GLP-1 users) and implicitly separates it from get_appetite_ceiling, which returns only the ceiling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use condition ('anyone taking or considering one of these medications, where a standard calorie calculation would assume an appetite they do not have') and an unusually clear exclusion list: pregnancy, breastfeeding, insulin/sulfonylurea, disordered eating history, under 18. It does not explicitly name get_appetite_ceiling as the narrower alternative, leaving that routing to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appetite_ceilingAppetite suppression by drug and doseARead-onlyIdempotentInspect
The appetite suppression factor foodose models for a given medication and dose, with the evidence it is anchored to and the licensed doses for that drug. This is the site's original data: the estimate of how much less a person eats at a dose, rather than how much weight they lose. Call with no medication to get the whole table.
| Name | Required | Description | Default |
|---|---|---|---|
| doseMg | No | ||
| medication | No | Brand name, any case. Generic names map to the weight-management brand: semaglutide to Wegovy, tirzepatide to Zepbound, liraglutide to Saxenda, dulaglutide to Trulicity, oral semaglutide to Rybelsus. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and closed-world, so safety is covered. The description adds real context beyond that: results are anchored to cited evidence and include licensed doses for the drug, and empty-medication calls dump the whole table.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences; the core function and the distinguishing "eats less, not loses weight" point come first. The "This is the site's original data" clause is slightly promotional but earns its place as a provenance signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry return-value semantics; it partially does (evidence, licensed doses) but leaves open the response shape and the doseMg-only or out-of-range-dose cases. Adequate but with clear gaps for a two-parameter lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; the medication parameter is well documented in-schema (generic-to-brand mapping), but doseMg has no description anywhere. The description adds the no-medication behavior but never explains doseMg units, ranges, or what is returned when a dose is unlicensed or omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (appetite suppression factor per medication/dose) and explicitly contrasts it with the weight-loss framing, so an agent knows what it returns. It does not differentiate from the listed siblings (calculate_glp1_target, search_foods), which keeps it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Call with no medication to get the whole table" gives concrete invocation guidance for the degenerate case, and the statement about appetite vs. weight loss clarifies when this tool is the right lens. No exclusion or alternative-selection advice against calculate_glp1_target is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_foodsSearch the foodose food databaseARead-onlyIdempotentInspect
Per 100 g nutrition for the foods foodose uses, each with a realistic serving size and a GLP-1 tolerance rating describing how well it tends to sit when appetite is low. Free to use with attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Matches the food name, category or tags. | |
| tolerance | No | How well the food tends to sit on a GLP-1. | |
| minProteinPer100g | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the core safety profile is covered. The description adds meaningful behavioral context beyond annotations by specifying the per-100g normalization, realistic serving size, and the meaning of the GLP-1 tolerance rating, while its 'foods foodose uses' phrasing aligns with openWorldHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the most important datum ('Per 100 g nutrition') before describing serving size and tolerance. The licensing sentence 'Free to use with attribution' is extra but brief; overall every part is useful and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does enough by explaining what fields to expect: nutrition per 100g, serving size, and GLP-1 tolerance rating. Annotations cover the read-only/idempotent behavior, and the schema covers query/tolerance plus limit boundaries, so an agent can invoke the tool without critical missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover query and tolerance, but limit and minProteinPer100g lack descriptions. The description adds value by clarifying tolerance semantics and explaining that nutrition is per 100g, which helps interpret minProteinPer100g, but it does not fully compensate for the undocumented parameters, so it is minimally adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title supplies the explicit verb+resource ('Search the foodose food database'), and the description clarifies that the tool returns per-100g nutrition, serving sizes, and GLP-1 tolerance ratings for foods. This distinguishes it from search_recipes, though the description itself is a noun phrase rather than a direct action statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool for looking up food-level nutrition and GLP-1 tolerance data, especially versus search_recipes. However, it does not explicitly state when to use this tool instead of get_appetite_ceiling or calculate_glp1_target, nor does it offer any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_recipesSearch the foodose GLP-1 recipe libraryBRead-onlyIdempotentInspect
Published GLP-1 recipes with per serving calories and protein, every ingredient traceable to a USDA FoodData Central record. Useful when someone asks what to actually eat, rather than what their targets are. The Foodose iPhone app plans whole days from a dish library of its own, around the user's dose week.
| Name | Required | Description | Default |
|---|---|---|---|
| diet | No | ||
| meal | No | ||
| limit | No | ||
| query | No | Matches title, cuisine, main ingredient and ingredient names. | |
| maxTotalMinutes | No | ||
| minProteinPerServing | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world scope, so the safety bar is low. The description usefully adds that only published recipes are returned and that every ingredient maps to a USDA FoodData Central record. But the final sentence about the iPhone app's separate dish library is ambiguous and adds confusion rather than behavioral clarity, and it omits limit/pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly three sentences, with the content/scope statement front-loaded, which is good. But the trailing sentence about the Foodose iPhone app and its own dish library is muddled and consumes space without earning it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, 17% schema coverage, and no output schema, the description should carry more weight in explaining the filters and what a result contains. It states the content profile but leaves nearly all filter semantics and result structure undetermined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% — just 'query' is documented, while diet, meal, limit, maxTotalMinutes, and minProteinPerServing are undocumented. The description only loosely gestures at per-serving protein, which faintly maps to minProteinPerServing, and does nothing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state the verb (Search) and resource (recipe library), and the description specifies the content — published GLP-1 recipes with per-serving calories and protein, USDA-traceable ingredients. It partially distinguishes from calculate_glp1_target ('what to actually eat, rather than what their targets are') but never clarifies how it differs from search_foods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
One sentence gives loose when-to-use framing ('when someone asks what to actually eat, rather than what their targets are'), implicitly routing against calculate_glp1_target. However, it names no explicit alternative and gives no guidance on recipe search vs. search_foods, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
calculate_glp1_target7 fields changed- added
Input schema / properties / medication / anyOfAdded value: +[ + { + "enum": [ + "ozempic", + "wegovy", + "mounjaro", + "zepbound", + "saxenda", + "trulicity", + "rybelsus", + "undecided" + ], + "type": "string" + }, + { + "type": "string" + } +] - added
Input schema / properties / medication / descriptionAdded value: +"Brand name, any case. Generic names map to the weight-management brand: semaglutide to Wegovy, tirzepatide to Zepbound, liraglutide to Saxenda, dulaglutide to Trulicity, oral semaglutide to Rybelsus." - removed
Input schema / properties / medication / enumRemoved value: -[ - "ozempic", - "wegovy", - "mounjaro", - "zepbound", - "saxenda", - "trulicity", - "rybelsus", - "undecided" -] - removed
Input schema / properties / medication / typeRemoved value: -"string" - added
Input schema / properties / sex / anyOfAdded value: +[ + { + "enum": [ + "female", + "male" + ], + "type": "string" + }, + { + "type": "string" + } +] - removed
Input schema / properties / sex / enumRemoved value: -[ - "female", - "male" -] - removed
Input schema / properties / sex / typeRemoved value: -"string"
- Changed
get_appetite_ceiling4 fields changed- added
Input schema / properties / medication / anyOfAdded value: +[ + { + "enum": [ + "ozempic", + "wegovy", + "mounjaro", + "zepbound", + "saxenda", + "trulicity", + "rybelsus", + "undecided" + ], + "type": "string" + }, + { + "type": "string" + } +] - added
Input schema / properties / medication / descriptionAdded value: +"Brand name, any case. Generic names map to the weight-management brand: semaglutide to Wegovy, tirzepatide to Zepbound, liraglutide to Saxenda, dulaglutide to Trulicity, oral semaglutide to Rybelsus." - removed
Input schema / properties / medication / enumRemoved value: -[ - "ozempic", - "wegovy", - "mounjaro", - "zepbound", - "saxenda", - "trulicity", - "rybelsus", - "undecided" -] - removed
Input schema / properties / medication / typeRemoved value: -"string"
4 tool updates
- First observed
calculate_glp1_target - First observed
get_appetite_ceiling - First observed
search_foods - First observed
search_recipes
Related MCP Connectors
GLP-1 nutrition companion: your food log, protein targets, next meals, plus USDA food facts.
111Free GLP-1 nutrition facts: USDA food lookup, protein and calorie targets, medication guides.
51GLP-1 phase-aware nutrition: muscle preservation, GI tolerance, taper protocols.
Know your goal-weight date. Log food, sync Garmin, get a daily AI coach in Telegram.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables computing composite glycemic load for multi-ingredient meals, modeling protein and fat attenuation of glucose spikes, and forecasting post-prandial fatigue and stable focus hours to guide meal and task scheduling.7MIT
- AlicenseNot gradedqualityBmaintenanceEnables users to aggregate meal glycemic index/load, model protein and fat buffering, forecast post-prandial cognitive crash risk and focus hours, and receive macronutrient stabilization recommendations.7MIT
- AlicenseNot gradedqualityCmaintenanceEnables nutrition tracking via AI, allowing users to read food logs with macros, goals, and profile, log meals by text or photo, and access diary, subscription, diabetes, and wearable/glucose data.MIT
- AlicenseAqualityDmaintenanceCalculate TDEE & macro targets, look up food nutrition data, generate meal plans, fix nutrient deficiencies, and score a day's eating from 0–100. Free nutrition tools for AI assistants.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.