A Model Context Protocol server that calculates BMI (Body Mass Index) given weight in kg and height in meters
Single tool with basic structure but significant gaps. Tool name 'calculate_bmi' is action-verb compliant and clear. Description is present (47 chars) but minimal, lacks context on when to use, prerequisites, or return value semantics. Input parameters have types (float) and descriptions, meeting baseline requirements. No output schema documented. No error handling guidance beyond ValueError for height ≤ 0. No pagination, composition, or idempotency considerations (not applicable for this simple tool). Lacks security annotations and audit trail patterns. Meets minimum viability but falls short of production-grade quality.
Calculate BMI given weight in kg and height in meters.
Tool description is too brief (47 chars). Does not explain when to call this tool, what it returns, or edge cases. LLMs need 50 - 200 char descriptions to make confident selection decisions.
No output schema documented. LLMs cannot infer the return type (float) or its semantics (BMI value, range, units). Downstream tools cannot chain on this result.
Error handling is minimal. ValueError for height ≤ 0 is raised but not documented in the tool description. LLMs do not know this constraint exists or how to recover.
Parameter descriptions lack format/range guidance. 'Height in meters' does not specify valid range (e.g., 0.5 - 2.5 m for humans) or precision expectations. LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, idempotentHint). While calculate_bmi is read-only and idempotent, these hints are not declared, limiting agent optimization and safety reasoning.