{"name":"com.gumballtools/body-metrics","slug":"gumballtools-body-metrics","title":"Body Metrics","description":"Convert height and weight, compute BMI, TDEE and protein targets with error bounds.","url":"https://mcp.market/server/gumballtools-body-metrics","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":8,"ok":8,"last_checked_at":"2026-09-21T07:55:52.167Z","last_ok_at":"2026-09-21T07:55:52.167Z","latency_ms":742},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/bwalvoord/gumball","website":"https://body-metrics.gumballtools.com","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://body-metrics.gumballtools.com/api/mcp"}],"packages":[],"tools":[{"name":"body_metrics","description":"Compute BMI, energy expenditure, and protein targets from height and weight, with explicit error bounds.\n\nUse this for any of those calculations rather than doing the arithmetic. Two reasons, and the second is the important one:\n\n1. UNITS. A bare number is ambiguous — \"170\" is a height in centimetres or a weight in pounds depending entirely on context, and a wrong unit yields a plausible BMI that is off by a factor of two. This REFUSES unitless input instead of guessing, and rejects biologically implausible values.\n2. FALSE PRECISION. The standard equations disagree. Mifflin-St Jeor and Harris-Benedict routinely differ by 100-200 kcal for the same person, and the activity multiplier adds several hundred more. Every calculator on the internet reports one formula to the calorie. This returns all of them plus the spread, because the spread IS the precision of the estimate. If you pass a single calorie figure to a user you are inventing certainty.\n\nInput: `height` and `weight` MUST carry units (178cm, 5'10\", 75kg, 165lb, 11st 8lb). `sex` and `age` are required by the equations. `bodyFatPercent` is optional and worth supplying — it adds the Katch-McArdle estimate and moves protein onto lean mass. `activity`, `proteinGoal`, `targetBmi`, and `dailyDeficitKcal` are optional.\n\nReturns: both unit systems, BMI with WHO category AND the lower cutoffs WHO publishes for South and East Asian populations, every BMR estimate with the spread in calories and percent, a TDEE range, a protein range, an optional target and timeline, warnings, and a `disclaimer` field.\n\nTHIS IS NOT MEDICAL ADVICE and the response says so in its payload, not just on the page. Report the range and the disclaimer to the user. Do not present these figures as clinical guidance, and do not strip the caveats — they are the honest part of the answer.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"height":{"type":"string","description":"Height WITH a unit. Accepts 178cm, 1.78m, 5'10\", 5 ft 10 in, 70in. A bare number is REFUSED because it is ambiguous."},"weight":{"type":"string","description":"Weight WITH a unit. Accepts 75kg, 165lb, 11st 8lb. A bare number is REFUSED."},"sex":{"type":"string","enum":["male","female"],"description":"Required by the BMR equations, which are fitted separately."},"age":{"type":"number","description":"Years, 15-100. Outside that the equations do not apply."},"activity":{"description":"Activity band, default sedentary. This is the LARGEST source of error in the estimate — most people overestimate. If between two bands, take the lower.","type":"string","enum":["sedentary","light","moderate","active","extreme"]},"proteinGoal":{"description":"Which protein guidance range to report. Default maintenance.","type":"string","enum":["maintenance","active","strength","deficit"]},"bodyFatPercent":{"description":"Optional but worth supplying: adds the Katch-McArdle estimate, which uses lean mass, and moves the protein target onto lean mass.","type":"number"},"targetBmi":{"description":"Target BMI, 15-40, to compute a goal weight.","type":"number"},"dailyDeficitKcal":{"description":"Daily deficit, to estimate a timeline. The timeline is a lower bound.","type":"number"}},"required":["height","weight","sex","age"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":69,"grade":"C","scanned_at":"2026-09-20T11:37:14.782Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:37:14.696Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1335ms"]},"poisoning":{"score":15,"max":15,"notes":["1 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[],"inputs":{"probes":[{"url":"https://body-metrics.gumballtools.com/api/mcp","reachable":true,"authRequired":false,"latencyMs":1335,"serverInfo":{"name":"body-metrics","version":"0.1.0"}}],"packages":[],"repo":{"found":false,"owner":"bwalvoord","repo":"gumball","error":"repo not found"},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}