A demonstration of Server-Sent Events with Model Context Protocol integration using FastAPI
This template server has 5 tools with basic definitions but significant quality gaps. Tool names follow verb_noun convention (get_current_time, throw_coin, add, joke, get_item), which is good. However, descriptions are minimal (10-30 chars), parameter descriptions are sparse or missing, and schemas lack proper documentation. The 'joke' tool has a typo ('it's' instead of 'is'). Most critically, parameter descriptions are absent or trivial, the 'add' tool documents 'a' and 'b' but provides no context about valid ranges or constraints. Output schemas are not documented. Error handling is minimal (joke tool returns raw HTTP errors). This is a template/example server, not production-grade.
This tool is used to add two numbers.
This tool is used to get the current time.
FastAPI endpoint that reads an item by ID
This tool it's just a joke
This tool is used to throw a coin.
Minimal parameter descriptions. 'add' tool documents parameters 'a' and 'b' with only 'The first number' / 'The second number', no mention of valid ranges, constraints, or use cases. LLMs cannot infer whether negative numbers, floats, or zero are acceptable.
Tool descriptions are too short (10 - 35 chars). Baseline is 194 chars. 'throw_coin' is 'This tool is used to throw a coin.', lacks context on when to use it, what it returns, or whether it's idempotent. LLMs need 50 - 200 char descriptions to select tools confidently.
No output schema documentation. Tools return strings, integers, or JSON objects, but the response structure is not formally documented. LLMs cannot plan downstream tool calls without knowing what fields to expect.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
'joke' tool has poor error handling. Returns raw HTTP status codes ('Error: 404') instead of actionable guidance. LLMs cannot recover from 'Error: 404', should return 'Failed to fetch joke. Try again or use a different tool.'
'joke' tool description has a typo: 'This tool it's just a joke' should be 'This tool is just a joke'. Typos reduce clarity and professionalism.