Skip to main content
Glama

AI Calorie Counter by BodyPal

Server Details

Counts calories and macros for any meal you describe (by weight, count or portion, in 19 languages) and returns a nutrition card with calories, protein, carbs, fat, fiber, sugar and salt per food, looked up in the BodyPal food database (USDA data and product labels). Read-only, no auth, no account. Live in the ChatGPT app directory. Publisher: Vancko Systems Ltd, https://bodypalapp.com

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.7% over 20 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

search_food is a lookup/retrieval tool and calculate_meal is a computation tool; their purposes are mutually exclusive and the descriptions even state the intended workflow (search first, then calculate). An agent cannot reasonably confuse the two.

Naming Consistency5/5

Both names follow the same clean verb_noun snake_case pattern (search_food, calculate_meal). No mixed conventions or stylistic deviations.

Tool Count3/5

Two tools is thin even for a narrow nutrition domain; the search-then-calculate pair is coherent but leaves the surface feeling minimal, sitting right at the borderline of the 1-2 tool range.

Completeness3/5

Core lookup and calorie/macro calculation are covered, but a 'calorie counter' domain implies logging or persisting meals and tracking intake over time, none of which exists — the daily goal and eaten-so-far values must be supplied by the caller each time. There is also no direct food-by-ID retrieval or barcode-style resolution.

Available Tools

2 tools
calculate_mealCalculate meal caloriesA
Read-only
Inspect

Calculates calories, protein, carbs, fat, fiber, sugar and salt for a meal from the BodyPal food database (USDA and product labels). Input: the foods in the meal. For each food send what the user actually gave: grams if they stated a weight, otherwise quantity + unit together with your own grams_estimate. The server uses standard weights from the database and falls back to your estimate. Returns per-food and total values and shows a nutrition card. Optional: daily calorie goal and calories already eaten today, to show what is left.

NameRequiredDescriptionDefault
itemsYesFoods in the meal.
languageNoTwo-letter code of the language the user wrote in (en, bg, de, fr, es, it, pt, nl, pl, ja, ko…). Always send it: it selects the food database language and the language of the card labels.
meal_nameNoShort meal label, e.g. "Lunch" or "Chicken bowl" (optional).
daily_goal_kcalNoDaily calorie goal, if the user mentioned one (optional).
eaten_today_kcalNoCalories already eaten today before this meal, if known (optional).

Output Schema

NameRequiredDescription
itemsYesOne entry per food that was found.
sourceNo
totalsYes
languageNoLanguage of the card labels.
meal_nameNoMeal label.
not_foundNoFoods that are not in the database.
assumed_weightNo
remaining_kcalNo
daily_goal_kcalNo
eaten_today_kcalNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a safe, closed-world, non-destructive read. The description adds real behavioral context beyond that: the server prefers database standard weights and falls back to the caller's estimate, and the goal/eaten inputs change the response to show remaining calories. Return format is left to the output schema, which is appropriate.

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?

Front-loaded with purpose, then input contract, then optional inputs. Dense but every sentence carries operative information; slightly long, though nothing is clearly wasted.

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?

Covers purpose, input contract, data source, fallback behavior, and optional goal features, while the output schema handles return values and annotations handle safety. An agent has everything needed to call it 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?

Schema coverage is 100%, so baseline is 3, but the description adds cross-field meaning the schema does not: the mutually exclusive/fallback relationship between grams, quantity+unit, and grams_estimate, and the instruction to send what the user actually gave rather than converting counts. That is genuine added semantics for a nested array of foods.

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?

States a specific verb and resource: calculating calories and six other nutrients for a meal from the BodyPal food database (USDA and product labels). The 'meal' scope and multi-nutrient output clearly separate it from the sibling search_food, which only finds foods.

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?

Gives strong input-selection rules ('send grams if the user stated a weight, otherwise quantity + unit together with your own grams_estimate') and states that goal/eaten-today are optional. It never explicitly says when to prefer this over search_food, so it stops short of full when/when-not/alternatives coverage.

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

search_foodSearch the food databaseA
Read-only
Inspect

Searches the BodyPal food database (USDA and product labels, 19 languages) and returns matching foods with calories and macros per 100 g. Use it to check a food or to pick the right entry before calculate_meal.

NameRequiredDescriptionDefault
limitNoMax results (default 5).
queryYesFood name to search.
languageNoTwo-letter language of the query (optional).

Output Schema

NameRequiredDescription
queryYes
resultsYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful context the annotations don't: the data sources (USDA plus product labels), the 19-language coverage, and the per-100 g normalization of the returned nutrition values.

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?

Two sentences, zero filler. The data scope and return shape are front-loaded before the usage instruction, so the most decision-relevant facts come first.

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?

With an output schema present and full schema coverage, the description need not explain return values or parameters, and it correctly covers purpose, provenance and usage. It omits any note on result ordering or how to broaden a query when nothing matches, which would round out an otherwise complete definition.

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 description coverage is 100%, so query, limit and language are fully documented in the schema itself. The description reinforces the language dimension and the per-100 g basis of results but adds no per-parameter syntax or format detail beyond what the schema provides, so the baseline 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?

States a specific verb (Searches), a named resource (BodyPal food database), its provenance (USDA and product labels, 19 languages), and what comes back (calories and macros per 100 g). An agent can distinguish this lookup tool from the sibling calculate_meal without opening either schema.

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?

Names the sibling tool explicitly and gives the context for using this one: check a food or pick the right entry before calling calculate_meal. This is clear routing guidance, though it gives no negative condition (e.g. when not to search, or when to skip straight to an entry).

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.

  1. 2 tool updates
    • First observedcalculate_meal
    • First observedsearch_food

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    23 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources