Serveur MCP qui convertit des listes de températures de villes entre Celsius et Fahrenheit, restructurant les données pour inclure les deux unités pour chaque mesure.
Single tool with basic structure but significant quality gaps. Tool name 'convert_city_temperatures' is verb-noun compliant and clear. Description is present (89 chars) but lacks WHEN/WHY context and does not explain the bidirectional conversion logic or file format requirements. Input schema exists with one parameter 'filename' (string type, 67-char description), but lacks format constraints, enum values, or validation guidance. No output schema documented, return type is inferred from code (Dict[str, List[Dict[str, float]]]) but not formally specified in tool metadata. No error handling guidance visible; code returns error dicts but tool description does not explain recovery paths. No parameter constraints (file extension, path validation, size limits). Baseline: avg tool description 194 chars (this is 89); avg param description 72 chars (this is 67). Missing: output schema documentation, error recovery guidance, input validation constraints.
Converts the temperatures of each city to the other unit (Celsius ↔ Fahrenheit).
No output schema documented. Return type inferred from code (Dict[str, List[Dict[str, float]]]) but not formally specified in tool metadata. LLM cannot plan downstream operations or validate response structure.
Description lacks WHEN/WHY context and does not explain bidirectional conversion logic, file format requirements (JSON structure), or expected input format. At 89 chars, below baseline 194 chars for tool descriptions.
No error handling guidance in tool description. Code returns error dicts for missing files and malformed JSON, but description does not explain recovery paths or what to do if file not found.
Parameter 'filename' lacks format constraints. No guidance on file extension (.json), path validation, size limits, or expected JSON structure (required keys: 'scale', 'values'). LLM may pass invalid filenames.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No input validation constraints visible. Code checks for 'celsius'/'fahrenheit' scale but parameter description does not document expected JSON schema or valid scale values.