Basic MCP Server that exposes simple tools: calculator (add, multiply) and weather lookup. Integrates with Azure OpenAI for tool selection via function calling.
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization). Input schemas present but parameters lack detailed descriptions beyond the bare minimum. No output schemas documented. Error handling is minimal (get_weather returns error strings, not structured recovery guidance). Tools are simple and well-named (verb_noun pattern), but lack the depth needed for production agent use.
Add two numbers together.
Get current weather for a city (uses OpenWeatherMap API).
Multiply two numbers together.
Tool descriptions are too brief (10-50 chars vs. 50-200 char baseline). 'Add two numbers together' and 'Multiply two numbers together' lack context on when to use these tools or what they return. LLMs cannot optimize tool selection with minimal descriptions.
No output schemas documented. Callers cannot predict return types or structure. add/multiply return floats, get_weather returns a formatted string, but this is implicit, not declared. LLMs must infer output structure, risking parsing errors.
get_weather error handling returns unstructured error strings ('Error fetching weather: 404', 'Error: ...') instead of actionable recovery guidance. LLMs cannot determine if the error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
get_weather exposes API key via environment variable without validation or rate limiting. No audit trail of tool calls. No permission gates or scope declarations.
Parameter descriptions are minimal. 'First number' and 'Second number' for add/multiply do not specify type constraints, ranges, or precision. 'City name' for get_weather does not clarify format (e.g., 'London' vs 'London, UK' vs 'GB-LND').