Koskamo

Body Metrics MCP

An MCP server that computes BMI, energy expenditure (BMR/TDEE), and protein targets from height and weight. It provides population-level estimates with explicit error bounds and unit conversion, supporting multiple BMR equations side-by-side to highlight estimation uncertainty. It is designed for agent use with unmetered traffic up to 250 calls per day.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Body Metrics MCP logo, by Gumball ToolsVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Gumball Tools
MCP endpoint (Streamable HTTP)
https://body-metrics.gumballtools.com/api/mcp
Vendor documentation

What its tools do

1 tool, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

Read-only (1)

1 of 1 have a description · 1 of 1 declare behavior hints · 1 of 1 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to gumballtools.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Compute BMI with WHO categories and error bounds
  • Calculate TDEE and BMR using multiple standard equations
  • Determine daily protein targets based on lean mass
  • Convert height and weight between unit systems

Source and maintenance

Vendor evidenceRegistry 0.1.0
Maintenance checked

Protocol and capabilities

Server
body-metrics 0.1.0
MCP protocol negotiated in check
2025-11-25
Tools
1 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

1 advertised

body_metrics — BMI, calories, and protein with error bounds
Advertised by the server during the last successful anonymous check.
Advertised read-only

Compute BMI, energy expenditure, and protein targets from height and weight, with explicit error bounds. Use this for any of those calculations rather than doing the arithmetic. Two reasons, and the second is the important one: 1. 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. 2. 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. Input: `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. Returns: 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. THIS 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.

body_metrics input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "height",
    "weight",
    "sex",
    "age"
  ],
  "properties": {
    "age": {
      "type": "number",
      "description": "Years, 15-100. Outside that the equations do not apply."
    },
    "sex": {
      "enum": [
        "male",
        "female"
      ],
      "type": "string",
      "description": "Required by the BMR equations, which are fitted separately."
    },
    "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."
    },
    "activity": {
      "enum": [
        "sedentary",
        "light",
        "moderate",
        "active",
        "extreme"
      ],
      "type": "string",
      "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."
    },
    "targetBmi": {
      "type": "number",
      "description": "Target BMI, 15-40, to compute a goal weight."
    },
    "proteinGoal": {
      "enum": [
        "maintenance",
        "active",
        "strength",
        "deficit"
      ],
      "type": "string",
      "description": "Which protein guidance range to report. Default maintenance."
    },
    "bodyFatPercent": {
      "type": "number",
      "description": "Optional but worth supplying: adds the Katch-McArdle estimate, which uses lean mass, and moves the protein target onto lean mass."
    },
    "dailyDeficitKcal": {
      "type": "number",
      "description": "Daily deficit, to estimate a timeline. The timeline is a lower bound."
    }
  }
}
body_metrics annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
536 ms
95th percentile latency
536 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 536 ms · metadata changed · 1 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http body-metrics-mcp https://body-metrics.gumballtools.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add body-metrics-mcp --url https://body-metrics.gumballtools.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable body-metrics-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "body-metrics-mcp": {
      "url": "https://body-metrics.gumballtools.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "body-metrics-mcp": {
      "type": "streamableHttp",
      "url": "https://body-metrics.gumballtools.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start body-metrics-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "body-metrics-mcp": {
      "type": "http",
      "url": "https://body-metrics.gumballtools.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http body-metrics-mcp https://body-metrics.gumballtools.com/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://body-metrics.gumballtools.com/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "body-metrics-mcp": {
      "serverUrl": "https://body-metrics.gumballtools.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Body Metrics MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Body Metrics MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing