NutriBalance
Supports deployment as an HTTP service on Vercel, enabling remote access to nutrition tools via standard MCP Streamable HTTP transport.
NutriBalance MCP Server
A free, open MCP server for nutrition calculations, meal planning, and deficiency analysis — powered by NutriBalance.
Connect this server to any MCP-compatible AI assistant (Claude Desktop, Cursor, Windsurf, Copilot, etc.) to give it real nutrition intelligence.
Tools
calculate_tdee
Calculate TDEE, BMR, and personalised daily macro targets.
Inputs: weight (kg), height (cm), age, gender, activity level, goal (lose/maintain/gain)
Returns: BMR, TDEE, target calories, protein/carbs/fat targets in grams
Use when someone asks how many calories to eat, what their maintenance calories are, or how to set up macros.
lookup_nutrition
Look up the full nutritional profile for any food by name and serving size.
Inputs: food name, amount in grams (default 100g)
Returns: calories, protein, carbs, fat, fibre, sodium, calcium, iron, vitamin C/D, magnesium, potassium, zinc
Use when someone asks about macros or nutrients in a specific food.
generate_meal_plan
Generate a full day meal plan tailored to a calorie goal and dietary preference.
Inputs: target calories, goal (lose/maintain/gain), dietary preference (standard/vegetarian/vegan/keto/high_protein)
Returns: 4-meal plan with foods, portion sizes, per-meal macros, and daily totals
Use when someone asks for a meal plan or what to eat for a specific goal.
fix_deficiency
Get a targeted action plan to fix a specific nutritional deficiency.
Inputs: nutrient name, optional gender, optional age
Returns: RDI, deficiency symptoms, top 6 foods with serving sizes, foods to avoid, supplement guidance, 5-step action plan
Supported nutrients: iron, calcium, vitamin_c, vitamin_d, magnesium, potassium, zinc, sodium, fiber, protein
nutrition_score
Score a day's eating from 0–100 with a letter grade and improvement priorities.
Inputs: calories eaten/target, protein eaten/target, carbs, fat, optional fibre, optional vegetable servings, optional water intake
Returns: overall score, per-category breakdown, letter grade, top 2 priority improvements
Related MCP server: USDA Nutrition Database MCP Server
Usage
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"nutribalance": {
"command": "npx",
"args": ["-y", "nutribalance-mcp"]
}
}
}HTTP (Vercel deployment)
POST https://nutribalance-mcp.vercel.app/mcpStandard MCP Streamable HTTP transport — compatible with any MCP client.
Local development
git clone https://github.com/CK-Boodhram/nutribalance-mcp
cd nutribalance-mcp
npm install
npm run devAbout NutriBalance
NutriBalance is a nutrition tracking app (iOS & Android) that logs meals, tracks macros & micronutrients, and alerts you to deficiencies.
Search "NutriBalance" on the App Store or Google Play.
Available Tools
5 toolscalculate_tdeeARead-onlyIdempotent
Calculate TDEE (Total Daily Energy Expenditure), BMR, and personalised daily macro targets (protein, carbs, fat) based on the user's stats and goal. Use this when someone asks how many calories they should eat, what their maintenance calories are, or how to set up their macros.
| Name | Required | Description | Default |
|---|---|---|---|
| weight_kg | Yes | Body weight in kilograms | |
| height_cm | Yes | Height in centimetres | |
| age | Yes | Age in years | |
| gender | Yes | Biological sex for BMR calculation | |
| activity_level | Yes | Activity level: sedentary | light | moderate | active | very_active | |
| goal | Yes | Goal: lose weight | maintain weight | gain muscle/weight |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds context that calculations are 'personalised' based on inputs, but does not describe error handling for invalid parameter combinations, rate limits, or the specific macro calculation methodology (e.g., percentage-based vs fixed protein).
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?
Two sentences with zero waste. First sentence defines function and scope; second sentence provides usage triggers. Front-loaded with the most critical information (what it calculates) and avoids redundancy with schema details.
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?
Despite lacking an output schema, the description explicitly lists the three output categories (TDEE, BMR, macro targets) and their components (protein, carbs, fat), giving the agent clear expectations of return value structure. Deducted one point as it could clarify whether results include per-meal or daily targets.
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 100%, with all 6 parameters fully documented (weight_kg, height_cm, age, gender, activity_level, goal). The description references 'user's stats and goal' generally but does not add semantic details, validation logic, or input guidance beyond the schema definitions. Baseline 3 is appropriate when schema carries full load.
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?
Description specifies exact calculations performed (TDEE, BMR, macro targets) and the inputs required (user's stats and goal). It clearly distinguishes from siblings like 'lookup_nutrition' (food data) or 'generate_meal_plan' (meal construction) by focusing on metabolic calculations.
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?
Provides explicit when-to-use triggers ('when someone asks how many calories they should eat', 'maintenance calories', 'how to set up their macros'). Lacks explicit when-NOT-to-use or named sibling alternatives (e.g., don't use for specific food nutrition lookup).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fix_deficiencyARead-onlyIdempotent
Get a detailed action plan to fix a specific nutritional deficiency — including the best foods to eat (with serving sizes), foods to avoid, supplement advice, and deficiency symptoms. Use this when someone asks how to increase a specific nutrient, what to eat for a deficiency, or what causes low levels of a nutrient.
| Name | Required | Description | Default |
|---|---|---|---|
| nutrient | Yes | The nutrient to address. Supported: iron, calcium, vitamin_c, vitamin_d, magnesium, potassium, zinc, sodium, fiber, protein | |
| gender | No | Biological sex — used to personalise RDI targets (default: unspecified) | |
| age | No | Age in years — used to note lifecycle-specific considerations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly/idempotent status, so the description appropriately focuses on return value structure rather than safety. It adds valuable context about what the action plan contains (foods with serving sizes, supplement advice, deficiency symptoms) that is not indicated in annotations or schema.
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?
Two sentences with zero waste: first sentence front-loads the purpose and return value details, second sentence provides usage triggers. Every clause earns its place.
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?
Given the moderate complexity (3 parameters, simple types) and lack of output schema, the description adequately compensates by detailing the expected action plan components. Could mention error handling for unsupported nutrients, but the schema enum mitigates this need.
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?
With 100% schema description coverage (nutrient, gender, age all well-documented), the baseline is 3. The description implies the nutrient parameter through 'specific nutritional deficiency' but does not add syntax details or semantic clarifications beyond what the schema already provides.
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 uses a specific verb-resource combination ('Get a detailed action plan to fix a specific nutritional deficiency') and clearly distinguishes this from siblings like lookup_nutrition (general lookups) and generate_meal_plan (general meal planning) by focusing specifically on deficiency correction.
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?
Provides explicit 'Use this when' guidance with three specific query patterns (increasing a nutrient, what to eat for deficiency, causes of low levels). Lacks explicit 'when not to use' or named sibling alternatives, but the positive guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_meal_planARead-onlyIdempotent
Generate a full day meal plan (breakfast, lunch, snack, dinner) tailored to the user's calorie goal, dietary preference, and fitness goal. Use this when someone asks for a meal plan, what to eat for a goal, or how to structure their diet.
| Name | Required | Description | Default |
|---|---|---|---|
| target_calories | Yes | Target daily calories | |
| goal | Yes | Fitness goal: lose | maintain | gain | |
| dietary_preference | No | Dietary style: standard | vegetarian | vegan | keto | high_protein | standard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive traits. The description adds value by specifying the output structure (four specific meal types), but does not disclose potential limitations, caching behavior, or detailed return format beyond the meal structure.
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?
Two efficiently structured sentences with zero waste. Front-loaded with the core action and output, followed immediately by usage conditions. Every word earns its place.
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 100% schema coverage and comprehensive annotations, the description adequately covers the tool's purpose. It hints at return structure via the four meal types, though it could explicitly state that results include specific food suggestions or macro breakdowns given the lack of output schema.
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 100%, with clear enums and constraints documented. The description mentions the three parameter concepts but adds no semantic details (e.g., valid ranges, default behavior) beyond what the schema already provides, meeting the baseline for high-coverage schemas.
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?
States specific action ('Generate'), resource ('full day meal plan'), and detailed scope ('breakfast, lunch, snack, dinner'). Clearly distinguishes from siblings like calculate_tdee (calculation) and lookup_nutrition (lookup) by focusing on comprehensive meal generation.
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?
Provides explicit when-to-use guidance ('Use this when someone asks for a meal plan...'). However, lacks explicit differentiation from sibling calculate_tdee, which also deals with calorie goals but performs calculations rather than meal structuring.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_nutritionARead-onlyIdempotent
Look up the full nutritional profile (calories, protein, carbs, fat, fibre, and key micronutrients) for any food by name and serving size. Use this when someone asks about the nutrition or macros in a specific food.
| Name | Required | Description | Default |
|---|---|---|---|
| food_name | Yes | Name of the food to look up (e.g. "chicken breast", "oats", "banana") | |
| amount_grams | No | Serving size in grams (default: 100g) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnlyHint, destructiveHint) and idempotency, so the description appropriately focuses on content-specific behavior. It discloses what data is returned by listing specific nutrients (calories, protein, carbs, fat, fibre, key micronutrients), adding valuable context beyond the annotations. No contradictions present.
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?
Two sentences, zero waste. First sentence front-loads the specific nutrients included in the profile. Second sentence provides usage context. Every word earns its place; no redundant fluff or repetition of schema/annotation details.
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?
For a simple lookup tool with rich annotations and complete input schema coverage, the description is adequate. It compensates for the missing output schema by listing the specific nutrient fields returned. Minor gap: doesn't mention error handling (e.g., food not found behavior).
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?
With 100% schema description coverage, the schema fully documents both parameters (food_name with examples, amount_grams with default). The description mentions 'by name and serving size' which maps to the parameters, but doesn't add syntax details beyond the schema. Baseline 3 is appropriate when schema coverage is comprehensive.
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 uses a specific verb ('Look up') and resource ('nutritional profile'), explicitly listing the nutrients returned (calories, protein, carbs, fat, fibre, key micronutrients). It clearly distinguishes from siblings like calculate_tdee or generate_meal_plan by focusing on specific food lookup rather than calculations or planning.
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 second sentence provides clear positive guidance: 'Use this when someone asks about the nutrition or macros in a specific food.' However, it lacks explicit negative constraints or named alternatives (e.g., it doesn't direct users to calculate_tdee for energy expenditure calculations).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nutrition_scoreARead-onlyIdempotent
Calculate a nutrition quality score (0–100) for a day's eating based on macros and optional micronutrient data. Returns a breakdown by category, a letter grade, and actionable recommendations. Use this when someone wants to rate their diet, check if they're eating well, or get feedback on a day's meals.
| Name | Required | Description | Default |
|---|---|---|---|
| calories_eaten | Yes | Total calories eaten today | |
| calorie_target | Yes | Daily calorie target | |
| protein_g | Yes | Protein eaten today (grams) | |
| protein_target_g | Yes | Daily protein target (grams) | |
| carbs_g | Yes | Carbohydrates eaten today (grams) | |
| fat_g | Yes | Fat eaten today (grams) | |
| fiber_g | No | Fibre eaten today (grams) — optional | |
| vegetable_servings | No | Number of vegetable/fruit servings today — optional (1 serving = ~80g) | |
| water_ml | No | Water consumed today (ml) — optional |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare read-only, non-destructive, idempotent properties. The description adds valuable output context ('breakdown by category, a letter grade, and actionable recommendations') since no output schema exists. Does not mention calculation methodology or error conditions, but covers the critical gap of return value structure.
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 sentences, zero waste. Front-loaded with core functionality (calculation and range), followed by output description, then usage conditions. Every clause provides distinct information (scope, inputs, outputs, use-cases).
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?
For a 9-parameter tool with no output schema, the description adequately compensates by outlining the three components of the return value. Good annotations cover safety profile. Minor gap: does not specify the structure/format of the 'breakdown' object or recommendation list.
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?
With 100% schema description coverage (baseline 3), the description adds semantic grouping by categorizing inputs as 'macros' (calories, protein, carbs, fat) and 'optional micronutrient data' (fiber, vegetables, water), helping agents understand parameter relationships beyond the schema's flat list.
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?
Excellent specificity: states the exact calculation (nutrition quality score 0–100), inputs (macros, optional micronutrient data), and deliverables (breakdown, letter grade, recommendations). Clearly distinguishes from siblings like generate_meal_plan (planning) and lookup_nutrition (food lookup) by focusing on evaluating existing intake.
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?
Provides explicit positive guidance ('Use this when someone wants to rate their diet, check if they're eating well, or get feedback on a day's meals') covering three distinct use cases. Lacks explicit negative constraints ('do not use for...') or named sibling alternatives, preventing a 5.
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. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
calculate_tdee - First observed
fix_deficiency - First observed
generate_meal_plan - First observed
lookup_nutrition - First observed
nutrition_score
TDQS
Each tool targets a distinct phase of nutrition management: calculating metabolic needs (calculate_tdee), retrieving food data (lookup_nutrition), creating eating plans (generate_meal_plan), addressing specific health issues (fix_deficiency), and evaluating dietary quality (nutrition_score). No functional overlap exists between tools.
Four tools follow a clear verb_noun pattern (calculate_tdee, fix_deficiency, generate_meal_plan, lookup_nutrition) using snake_case. However, nutrition_score breaks the pattern by placing the noun first, creating a minor inconsistency in an otherwise uniform convention.
Five tools is an ideal scope for a focused nutrition server, covering the essential workflows (calculation, lookup, planning, deficiency correction, and evaluation) without bloat or unnecessary fragmentation.
The surface covers the core nutrition lifecycle well: determining needs, sourcing foods, planning meals, correcting deficiencies, and scoring intake. A minor gap exists in exploratory discovery (e.g., searching for foods by nutrient criteria rather than by name), though fix_deficiency partially addresses this for specific nutrients.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Food and nutrition data: search, macros, and comparisons
Log what you ate by talking to your AI assistant — calories and macros, completely free.
Deterministic fitness calculators — TDEE, adaptive TDEE, body fat, 1RM, macros — with consensus.
Food logging, nutrition summaries, and meal photo calorie and macro estimates.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides 42+ specialized tools for nutrition analysis integrating Canada's Food Guide recipes with Health Canada's official databases (CNF, DRI, EER) for recipe discovery, macro calculations, energy requirements, and dietary adequacy assessments.2MIT
- FlicenseNot gradedqualityDmaintenanceProvides intelligent access to the USDA nutrition database through AI assistants, enabling users to search foods, compare nutritional content, find foods high in specific nutrients, and query authoritative nutrition data across 7,146+ food items through natural language.1-
- AlicenseAqualityDmaintenanceEnables natural language access to USDA's FoodData Central database with 1M+ foods, supporting search, nutrition facts, food comparison, and daily value calculations.8MIT
- AlicenseNot gradedqualityDmaintenanceProvides tools for nutrition data retrieval, meal planning, and dietary analysis using USDA and Edamam APIs, enabling AI-driven dietary insights.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thenutritrackerapp-creator/nutribalance-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server