MCP server for calculating areas of geometric shapes (triangle, square, rectangle, trapezium) using FastMCP framework with Google ADK agent integration
KalkulatorLuas is a simple geometry calculator with 4 tools. All tools have descriptions (10-60 chars, below the 50-200 char LLM-optimized baseline) and visible input schemas with typed parameters. However, descriptions are minimal and lack context about when/why to use each tool. No output schemas are documented. Tools follow a consistent naming pattern (hitung_luas_*) but lack action verbs (should be 'calculate_area_*' or 'compute_area_*'). All parameters have types and descriptions, meeting baseline requirements. No error handling, validation guidance, or recovery paths documented. The server is functional but lacks production-grade polish.
Menghitung luas bangun datar persegi.
Menghitung luas bangun datar persegi panjang.
Menghitung luas bangun datar segitiga.
Menghitung luas bangun datar trapesium.
Tool names lack action verbs. All tools use 'hitung_luas_*' (Indonesian for 'calculate_area_*'), which is domain-specific but not verb-noun pattern. LLMs expect 'calculate_*', 'compute_*', or 'get_*' to infer intent from the name alone.
Descriptions are too brief (10-60 chars vs. 50-200 char baseline). 'Menghitung luas bangun datar segitiga' lacks context about when to use this tool vs. others, prerequisites, or what the output contains. LLMs cannot determine tool selection from minimal descriptions.
Output schemas are not documented. Tools return dict with 'luas' field, but the schema (type, range, units) is not declared. LLMs cannot plan downstream operations or validate results without knowing the output structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No input validation or error handling. Tools accept float parameters with no bounds checking (negative values, zero, infinity). No error messages guide recovery if invalid input is passed.
Parameter descriptions lack constraints. 'Panjang alas dari segitiga' does not specify units (cm, m, inches?), valid range (must be > 0?), or precision (decimal places). LLMs cannot validate input without explicit constraints.