Skip to main content
Glama
Ownership verified

Server Details

Effortless calorie tracking for people who train — just tell your AI what you ate.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 12 of 12 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource and action: pantry vs diary vs food search vs preferences vs diagnostics. Even similar tools like get_day/get_range are clearly differentiated by scope, and search_foods/lookup_barcode are distinguished by input type (text vs barcode).

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with lowercase snake_case (add_pantry_item, get_day, log_meal, search_foods). The only exception is whoami, which is a standard diagnostic convention and does not disrupt the overall consistency.

Tool Count5/5

With 12 tools, the server is well-scoped for its food-tracking domain. Each tool covers a necessary function (pantry CRUD, diary CRUD, food search, preferences, diagnostics) without redundancy or bloat.

Completeness5/5

The tool set provides full lifecycle coverage for the core domain: pantry items can be added, read, and removed (upsert covers update); diary entries can be created, read (single/day/range), updated, and deleted; food lookup includes text search and barcode; and preferences are accessible. No obvious gaps hinder agent workflows.

Available Tools

12 tools
add_pantry_itemA
Idempotent
Inspect

Add a food to the user's pantry, or UPDATE it if it's already there (matched by name, any casing) — e.g. 'add rolled oats to my pantry'. Only name is required; include macros (for one serving), a serving label, a source, and a short note when you know them, so a later log can reuse them. Re-adding the same food REPLACES its details (an upsert — it never creates a duplicate). Only pass a source you actually got from search_foods/lookup_barcode; an unrecognized value is recorded as the user's own estimate ('client'). This does NOT log a meal — it only curates the user's staples.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe food to keep on hand, e.g. 'rolled oats'.
noteNoOptional short note, e.g. 'the Costco tub'.
macrosNoMacros for ONE serving of this food, when known.
sourceNoWhere the macros came from, if grounded via search_foods/lookup_barcode (e.g. 'usda'). Defaults to your own estimate ('client'); unrecognized values are recorded as 'client'.
servingNoServing label the macros are for, e.g. '1 cup' or 'per 100 g'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (idempotentHint, readOnlyHint false), the description discloses key behaviors: re-adding is an upsert that REPLACES details and never creates duplicates, unrecognized source values are recorded as 'client', and the tool only curates staples. These are non-obvious side effects and important operational details that annotations alone do not capture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence serves a specific purpose: core functionality, optional parameters, upsert semantics, source validation, and exclusion of meal logging. It is front-loaded with the main verb and resource, and no word is wasted despite the amount of behavioral detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 5-parameter tool with a nested macros object and no output schema, the description covers all essential aspects: what it does, when to use it, parameter behaviors, edge cases (duplicates, invalid source), and what it does NOT do. An agent has enough context to invoke it correctly without ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter has a clear schema description, so the baseline is 3. The description adds valuable semantics beyond the schema: matching by name/case-insensitivity, macros are for one serving, the source must come from specific tools, and unrecognized source values degrade to 'client'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Add' / 'UPDATE') and clearly identifies the resource (a food in the user's pantry), including an upsert behavior matching by name regardless of casing. It also differentiates from siblings by explicitly stating it does not log a meal and from remove_pantry_item by describing the add/update action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use the tool (e.g., 'add rolled oats to my pantry'), what is required ('Only name is required'), and what to include when known (macros, serving, source, note). It also states when not to use it ('This does NOT log a meal') and constrains the source parameter to values obtained from search_foods/lookup_barcode, effectively distinguishing it from logging and search alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_mealA
DestructiveIdempotent
Inspect

Delete a food from the user's diary — remove one food from an entry (by item_index), or the whole entry (omit item_index). Identify the entry by its id and local_date (both from get_day). This is a TRUE removal: the data is gone, with NO server-side tombstone and no undo. Deleting the last food in an entry removes the entry. Safe to retry — deleting something already gone is a no-op success. SAFETY: all calorie and macro values here — including carbohydrates — are ESTIMATES (from USDA / Open Food Facts or the user's own entry), approximate and not lab-measured or per-batch. They are for general nutrition tracking ONLY. Do NOT use them for insulin dosing, carb-counting for a bolus, blood-glucose prediction, or any other medical decision, and do NOT compute a dose or glucose estimate from them. For anything medical, direct the user to the product's own label and their care team.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe entry id to delete from (from get_day).
item_indexNoWhich food to remove (0-based). Omit to delete the whole entry.
local_dateYesYYYY-MM-DD diary date of the entry (from get_day).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description significantly exceeds annotations by disclosing permanent removal (no tombstone, no undo), the behavior when deleting the last food, and idempotency as a no-op on already-deleted entries. The medical safety warning adds important cautionary context beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core operational description is concise and scannable, but the medical safety warning is quite lengthy. However, the warning is critical for a food-related tool and directly supports user safety, so it earns its place despite the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers edge cases (last food removal, retry as no-op), explains where to obtain the required identifiers (get_day), and includes the medical disclaimer. For a destructive tool with no output schema, it fully sets expectations for behavior and consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with helpful parameter descriptions, but the description adds operational meaning: item_index omission deletes the whole entry, and both id and local_date come from get_day. This connects the parameters to their real-world usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Delete a food from the user's diary' with precise details about deleting a single food by item_index or the whole entry. This distinguishes it from siblings like update_meal and log_meal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains how to identify the target entry using id and local_date from get_day, and when to omit item_index to delete the whole entry. It does not explicitly name alternative tools, but the diary vs. pantry context and sibling names provide implicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dayA
Read-only
Inspect

Read the user's food diary for a day (entries + calorie/macro totals). SAFETY: all calorie and macro values here — including carbohydrates — are ESTIMATES (from USDA / Open Food Facts or the user's own entry), approximate and not lab-measured or per-batch. They are for general nutrition tracking ONLY. Do NOT use them for insulin dosing, carb-counting for a bolus, blood-glucose prediction, or any other medical decision, and do NOT compute a dose or glucose estimate from them. For anything medical, direct the user to the product's own label and their care team.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_dateNoYYYY-MM-DD; defaults to today.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description adds a detailed safety disclaimer explaining that calorie/macro values are estimates and not for medical decisions. This is valuable behavioral context that annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a clear purpose statement, followed by a thorough safety warning. The safety section is somewhat repetitive (mentions estimates and medical disclaimers multiple times) but remains relevant and necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter and no output schema, the description is complete. It explains what the tool returns (entries + totals) and provides critical safety context. The annotation and schema cover the remaining aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the sole parameter 'local_date' with format and default behavior (100% coverage). The description adds no additional parameter information, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads the user's food diary for a specific day, including entries and calorie/macro totals. It specifies a single day, distinguishing it from siblings like get_range which likely covers multiple days.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly establishes the tool is for a single day's diary, providing clear context for when to use it. However, it does not explicitly mention alternatives like get_range for multi-day queries or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pantryA
Read-only
Inspect

Read the user's PANTRY — the foods they keep ON HAND (their staples), so you can suggest meals from what they actually have and pre-fill macros when they log one. Returns each item's name and, when the user saved them, macros (for the item's serving), a serving label, a source, and a short note. The pantry is the user's CURATED list of what they stock — separate from what they've logged (their diary) and from their frequents (what they log often). IMPORTANT: a source (e.g. 'usda') is the user's own CLAIM about where the macros came from, NOT a server-verified guarantee — treat it as a hint, never as certified.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the description doesn't need to state the operation is read-only. The description adds crucial behavioral context: it details the return structure (name, macros, serving label, source, note) and, critically, warns that `source` is the user's own claim, not a server-verified guarantee. This is exactly the kind of nuance that goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a bit long, but every sentence earns its place: it explains purpose, return contents, use case, conceptual distinctions, and the source caveat. Some redundancy exists ('their staples' and 'curated list of what they stock' overlap), but the structure is front-loaded and information-dense. It could be slightly tighter, so 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry the burden of explaining return values – and it does: 'Returns each item's name and, when the user saved them, macros...a serving label, a source, and a short note.' It also explains the nontrivial caveat about source trustworthiness. For a tool with zero params, this description fully covers what an agent needs to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, so the schema trivially covers 100%. Per the rubric, 0 params earns a baseline of 4. The description doesn't waste space on parameters, and it doesn't need to. It focuses on output semantics instead, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Read the user's PANTRY' – a specific verb + resource. It goes further to differentiate the pantry from 'what they've logged (their diary)' and 'their frequents', clearly distinguishing this tool from sibling tools like get_day or get_range. This is a textbook example of purpose clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the tool is for 'suggesting meals from what they actually have' and 'pre-fill macros when they log one', giving practical use cases. It implicitly says when NOT to use it by separating pantry from diary and frequents, but does not explicitly name alternative tools by their tool names (e.g., 'use get_day for diary'). Since the distinction is clear, it earns a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_preferencesA
Read-only
Inspect

Read the user's saved dietary preferences so you can tailor logging and suggestions WITHOUT re-asking every chat: their diet style, a structured list of allergies to avoid (the big-9 major allergens), foods they dislike, and a typical-portion note. IMPORTANT: the allergen list is self-reported and is NOT a safety guarantee — always tell the user to check ingredient labels themselves; cross-contamination and gaps in food data are not captured (see the returned allergy_disclaimer). The allergies field covers the major US allergens ONLY; a user may have an allergen outside it (e.g. mustard, celery, corn, mollusks, barley/rye) — ask about those directly. NEVER treat the dislikes list as an allergy: it is a taste preference to de-prioritize, never a safety exclusion.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses that allergies are self-reported and not a safety guarantee, mentions the returned allergy_disclaimer, notes the limitation of the allergen scope, and clarifies that dislikes are taste preferences—not safety exclusions. This richly supplements the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then layers critical warnings in a structured, readable way. Every sentence serves a purpose—either defining functionality or providing safety-critical guidance—making the length justified and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, the description compensates by listing the returned fields (diet style, allergies, dislikes, portion note) and includes the allergy_disclaimer. It also covers usage constraints and safety limitations, making it complete for an agent to invoke and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description has no need to explain inputs. Baseline is 4. The description does not waste space on parameter details, as none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Read the user's saved dietary preferences', a specific verb+resource pair, and enumerates the contents (diet style, allergies, dislikes, portion note). This clearly distinguishes it from sibling tools like get_day or get_pantry, which focus on logs and inventory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when to use the tool: 'so you can tailor logging and suggestions WITHOUT re-asking every chat'. It also gives explicit exclusions, such as asking about allergens outside the big-9 and never treating dislikes as allergies, plus instructs to always direct users to check labels.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rangeA
Read-only
Inspect

Read the user's diary across a date range, with per-day calorie/macro totals. SAFETY: all calorie and macro values here — including carbohydrates — are ESTIMATES (from USDA / Open Food Facts or the user's own entry), approximate and not lab-measured or per-batch. They are for general nutrition tracking ONLY. Do NOT use them for insulin dosing, carb-counting for a bolus, blood-glucose prediction, or any other medical decision, and do NOT compute a dose or glucose estimate from them. For anything medical, direct the user to the product's own label and their care team.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesYYYY-MM-DD (inclusive).
startYesYYYY-MM-DD (inclusive).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the readOnlyHint annotation by adding a detailed safety warning that calorie/macro values are estimates and not safe for medical decisions. This is valuable behavioral context that annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise and informative. The safety warning is long and slightly repetitive, but each sentence reinforces an important limitation, so the length is justified though it could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with two parameters and no output schema, the description sufficiently explains the return concept (per-day totals) and safety context. It does not explain behavior for empty ranges or timezone handling, but these are not critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters (start and end) with clear format descriptions and inclusive semantics. The description's mention of 'date range' adds no new parameter-level detail, so baseline 3 is appropriate given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads 'the user's diary across a date range' and reports 'per-day calorie/macro totals', specifying both the resource (diary) and scope (date range). This distinguishes it from sibling tools like get_day, which presumably targets a single day.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for date-range queries but never explicitly mentions alternatives or when not to use it. Sibling get_day exists but is not referenced, leaving the agent to infer that get_range is for multi-day requests.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

log_mealAInspect

Log what the user ate to their food diary. Parse the user's free text into items and, when you can, include estimated macros per item for accuracy. SAFETY: all calorie and macro values here — including carbohydrates — are ESTIMATES (from USDA / Open Food Facts or the user's own entry), approximate and not lab-measured or per-batch. They are for general nutrition tracking ONLY. Do NOT use them for insulin dosing, carb-counting for a bolus, blood-glucose prediction, or any other medical decision, and do NOT compute a dose or glucose estimate from them. For anything medical, direct the user to the product's own label and their care team.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoISO-8601 instant the meal was eaten; defaults to now.
mealNo
noteNo
itemsYes
sourceNoOptional provenance for these items. After search_foods/lookup_barcode, pass the candidate's source class (e.g. 'usda' or 'off') so the diary shows it's grounded. Defaults to 'client' (your own estimate). Unrecognized values are recorded as 'client'.
local_dateNoYYYY-MM-DD diary date; defaults to the user's local date (from their timezone). Pass this to log a meal on a different day.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a crucial behavioral trait: all macro values are estimates and must not be used for medical decisions. This goes beyond the annotations (which only show it is non-read-only) and adds substantial context about safety and data reliability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main action is front-loaded in a clear, single sentence, and the parsing guidance is concise. The safety disclaimer is lengthy but necessary for a nutrition tool, and its structured warning adds value without being overly repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers input behavior and safety well, but since there is no output schema, it omits what the tool returns (e.g., the logged meal's ID). This could hinder an agent that needs to reference the created meal with sibling tools. It is otherwise adequate for a write operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains that the tool parses free text into items and should include estimated macros, giving practical meaning to these key parameters. With schema coverage at only 50%, this helps compensate for the missing parameter-level descriptions, though it doesn't cover every parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description immediately states the action: 'Log what the user ate to their food diary,' with a specific verb and resource. It also mentions parsing free text into items, distinguishing it from siblings like update_meal and delete_meal. This leaves no ambiguity about the tool's function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly implies use for logging food intake and provides instructions on how to parse text and include macros. However, it does not explicitly state when not to use it or mention alternatives like update_meal, so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_barcodeA
Read-only
Inspect

Look up a packaged food by its UPC/EAN barcode via Open Food Facts. IMPORTANT: the macros are PER 100 g (see serving) — scale to the portion eaten before logging with log_meal. It MAY also carry serving_grams/serving_label for one household serving — offer 'N servings' when present, still scaling the per-100 g macros before logging. Pass the returned source to log_meal to preserve provenance. SAFETY: all calorie and macro values here — including carbohydrates — are ESTIMATES (from USDA / Open Food Facts or the user's own entry), approximate and not lab-measured or per-batch. They are for general nutrition tracking ONLY. Do NOT use them for insulin dosing, carb-counting for a bolus, blood-glucose prediction, or any other medical decision, and do NOT compute a dose or glucose estimate from them. For anything medical, direct the user to the product's own label and their care team.

ParametersJSON Schema
NameRequiredDescriptionDefault
upcYesUPC/EAN barcode, digits only (8–14 digits).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description goes further by disclosing that macros are estimates (not lab-measured), are per 100g, and include a safety warning about medical use. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but deliberately structured with purpose, scaling instructions, and a dedicated SAFETY section. Every sentence provides essential guidance for a nutrition/health tool, though it borders on verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description compensates fully: it names key return fields (macros, serving_grams, serving_label, source), explains scaling logic, and provides safety guardrails. This is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the single parameter (upc: digits only, 8-14 digits). The description adds context about result interpretation (per 100g, serving_grams) but no new parameter-specific details, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Look up a packaged food by its UPC/EAN barcode via Open Food Facts.' This is a specific verb (look up) and resource (packaged food barcode), and it distinguishes itself from siblings like search_foods and log_meal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: use for barcode lookup, scale per-100g macros before logging, pass source to log_meal, and includes a strong safety caveat about not using for medical decisions. It doesn't explicitly contrast with search_foods but the barcode-specific scenario is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_pantry_itemA
DestructiveIdempotent
Inspect

Remove a food from the user's pantry by name — e.g. 'take eggs off my pantry list'. This removes it from their on-hand STAPLES only; it does NOT delete anything from their food diary. Safe to retry — removing something that isn't in the pantry is a no-op success.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe food to remove from the pantry (any casing).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include idempotentHint=true and destructiveHint=true, but the description adds valuable context beyond that: it clarifies the operation is limited to on-hand STAPLES, will not affect the food diary, and that removing a nonexistent item is a no-op success. This meaningfully expands on the annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a tightly packed three sentences: main action with example, scope/exclusion, and idempotency/retry behavior. Every sentence adds distinctive value; no fluff or repetition of the title/schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one required parameter, no output schema), and the description covers what it does, what it doesn't do, its scope, and its idempotent nature. With annotations providing safety hints, this is fully adequate for an agent to select and invoke correctly without further clarification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — the single required parameter 'name' is described as 'The food to remove from the pantry (any casing).' The description's example ('take eggs off my pantry list') adds a slight illustrative touch but no new semantic information, so it stays at the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Remove a food from the user's pantry by name.' It includes a concrete example ('take eggs off my pantry list') and explicitly distinguishes itself from food diary deletion, differentiating it from sibling tools like delete_meal. The scope is clear: only on-hand STAPLES.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: when removing a pantry item by name. It also gives an explicit exclusion: does NOT delete anything from the food diary. However, it does not name alternative sibling tools (e.g., delete_meal) directly, so it falls slightly short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_foodsA
Read-only
Inspect

Search USDA FoodData Central and Open Food Facts for foods matching a query, returning candidates with macros and a source you can show the user. IMPORTANT: the macros are PER 100 g (see each candidate's serving) — scale them to the portion the user actually ate before logging with log_meal. A candidate MAY also carry serving_grams/serving_label for ONE household serving (e.g. 48 g / "1 frank") — when present, offer the user 'N servings' instead of asking for grams, but still scale the per-100 g macros to the resolved grams before logging. When you log a chosen candidate, pass its source to log_meal so the diary records real provenance (USDA/Open Food Facts) instead of an estimate. SAFETY: all calorie and macro values here — including carbohydrates — are ESTIMATES (from USDA / Open Food Facts or the user's own entry), approximate and not lab-measured or per-batch. They are for general nutrition tracking ONLY. Do NOT use them for insulin dosing, carb-counting for a bolus, blood-glucose prediction, or any other medical decision, and do NOT compute a dose or glucose estimate from them. For anything medical, direct the user to the product's own label and their care team.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax candidates to return (default 5, clamped to 1–10).
queryYesFood to search, e.g. 'greek yogurt' or 'Chipotle chicken'.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint and openWorldHint, it discloses per-100g scaling, optional serving_grams/serving_label usage, provenance passing, and a thorough safety warning about estimates not being for medical decisions. This is rich behavioral context that prevents misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence serves a purpose: purpose, scaling instruction, serving-size handling, provenance guidance, and safety. The 'IMPORTANT' and 'SAFETY' callouts structure the information effectively. It is long but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, it sufficiently explains return values (macros, source, serving_grams/serving_label) and the necessary workflow (scaling, passing source to log_meal). It also includes essential safety context for a nutrition-related tool. The description fully equips the agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of both query and limit, so the description adds no extra parameter-level meaning. The baseline of 3 applies because the structured data already handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action (search) and resources (USDA FoodData Central and Open Food Facts), and defines the output (candidates with macros and a source). This distinguishes it from related tools like lookup_barcode or log_meal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: use for free-text food searching, scale per-100g macros, pass source to log_meal, and note the safety limitation. It doesn't explicitly mention alternatives like lookup_barcode, but it gives strong sequencing guidance with log_meal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_mealA
Idempotent
Inspect

Correct a food already logged to the user's diary — fix a wrong calorie/macro value, quantity, or name, or move an entry to a different meal. Identify the entry by its id and local_date (both from get_day) and the food by its item_index within that entry's items[]. Only the fields you send change; the macros you send are MERGED onto the existing ones (so sending just kcal leaves protein/carb/fat as they were). This overwrites the value IN PLACE — there is no history of the previous value. Editing never moves an entry to another day (to do that, delete and re-log). SAFETY: all calorie and macro values here — including carbohydrates — are ESTIMATES (from USDA / Open Food Facts or the user's own entry), approximate and not lab-measured or per-batch. They are for general nutrition tracking ONLY. Do NOT use them for insulin dosing, carb-counting for a bolus, blood-glucose prediction, or any other medical decision, and do NOT compute a dose or glucose estimate from them. For anything medical, direct the user to the product's own label and their care team.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe entry id to edit (from get_day).
mealNoMove the entry to a different meal label.
nameNo
noteNo
macrosNoCorrected macros — only the components you send are changed.
fluid_mlNoCorrected fluid/hydration volume, in millilitres.
quantityNoPortion as stated, e.g. '2' or '1 cup'.
item_indexNoWhich food in the entry's items[] to edit (0-based). Required when changing a food's name/quantity/macros/caffeine/fluid; omit for an entry-level change (meal/note).
local_dateYesYYYY-MM-DD diary date of the entry (from get_day).
caffeine_mgNoCorrected caffeine content, in milligrams.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors beyond annotations: macros are MERGED, values are overwritten in place with no history, and editing never moves entries across days. The extensive safety warning about calorie/macro estimates not being for medical decisions adds critical context. Annotations (readOnly=false, idempotent=true, destructive=false) are not contradicted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: purpose first, then mechanics, then safety. Every sentence provides useful instruction or critical caveat. Though the safety paragraph is long, it is justified given the potential medical misuse of the data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is highly complete for a mutation tool, covering merge behavior, in-place overwrite, day-move exclusion, and item_index usage. It lacks an explicit statement about return value, but no output schema exists and the tool's primary usage is clear. This is a minor gap in an otherwise thorough description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, but the description adds significant meaning: it explains merge semantics for macros, clarifies that item_index is required for food-level edits and optional for entry-level (meal/note), and identifies id/local_date as coming from get_day. This goes well beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Correct a food already logged to the user's diary' with specific examples (wrong calorie/macro value, quantity, name, or move to a different meal). This distinguishes it from sibling tools like log_meal (add) and delete_meal (remove).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the user when to use this tool (to correct logged food) and explicitly states an exclusion: 'Editing never moves an entry to another day (to do that, delete and re-log).' It also provides clear guidance on identifying the entry via id/local_date and using item_index for food-level edits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiA
Read-only
Inspect

Diagnostic: returns the authenticated user id and scopes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint true, and the description adds that it returns the authenticated user id and scopes. It doesn't mention behavior when unauthenticated or potential errors, but for a read-only diagnostic tool with annotations, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no waste. 'Diagnostic' immediately sets expectations, and the rest states exactly what it returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only diagnostic tool without an output schema, the description fully covers what it returns (user id and scopes). No additional context is needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is an empty object, so schema coverage is 100%. The baseline of 4 applies because there is nothing to explain beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'returns' and resource 'authenticated user id and scopes', clearly distinguishing this diagnostic tool from sibling tools that operate on pantry/meals. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The prefix 'Diagnostic' clearly signals its role for checking authentication context. While it doesn't explicitly name alternatives, sibling tools are all unrelated, so the context is clear enough for an agent to decide when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    A comprehensive AI-powered fitness tracking application that enables AI tools to interact intelligently with user fitness data, providing personalized workout plans, nutrition tracking, and progress analysis through natural language.
    15
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Your digital kitchen, powered by AI. Track what you have, discover what you can cook, and get guided through every recipe — step by step, timer by timer.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources