MCP server template built with Bun runtime, providing example tools, prompts, and resources
Single tool 'calculate_bmi' has basic definition structure but significant gaps in LLM-readiness. The tool name lacks a leading action verb (should be 'get_bmi' or 'calculate_bmi' is marginally acceptable). Description is adequate at 57 characters but lacks guidance on when/why to use it or what the returned BMI value means. Input schema is properly typed (number) with parameter descriptions, but output schema is completely undocumented, LLM has no guidance on interpreting the returned text. No error handling, validation ranges, or recovery guidance. Tool sits at the 52nd percentile of community servers: definitions exist but lack production rigor.
Calculate BMI to see if you are overweight.
Output schema completely undocumented. LLM does not know what the returned 'text' value represents (raw BMI number? categorization? interpretation?). Should specify return object structure: {bmi: number, category: string, interpretation: string}.
No validation on input parameters. Height and weight parameters have no constraints (min/max ranges). LLM can pass height=1000 or weight=-50, causing nonsensical results. Should define: height 50-250 cm, weight 1-500 kg.
Tool description lacks LLM guidance. Current: 'Calculate BMI to see if you are overweight.' Missing: when to use (health assessment), what BMI means (weight/height ratio), interpretation of output (BMI > 25 = overweight), prerequisites (need height in cm and weight in kg). Description is 57 chars, within range but too sparse on context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
No error handling guidance. If inputs are invalid (negative, zero, or extreme values), tool returns uninterpretable output. Should return actionable errors like 'Invalid height: must be 50-250 cm; got 1000' rather than failing silently or returning nonsense BMI.