A learning repository containing multiple MCP server implementations and FastAPI projects, including hello_mcp (basic MCP tools), schema-powered_mcp (Pydantic schema-based tools), WebSocket demos, and a FastAPI book review API
This is a learning repository with 5 tools across multiple projects. Tool definitions are minimal: descriptions are present but generic (10-30 chars), input schemas lack parameter descriptions entirely, and output schemas are undocumented. No error handling, no parameter validation guidance, and no composition patterns. Tools are READ_ONLY but lack idempotent/readOnly annotations. The codebase shows basic FastMCP usage but does not follow production-grade tool design patterns.
Add two numbers and return the sum
Add two numbers and return sum
Returns a simple server status
Greet a user by name
Greets the user by name
Parameter descriptions missing entirely. Input schemas define types (integer, string) but lack descriptions explaining what each parameter controls or constrains. LLMs cannot infer parameter meaning from names alone.
Output schemas undocumented. Tools return dicts (e.g. {sum: result}, {greeting: message}) but the response structure is not formally documented. LLMs cannot plan downstream tool calls without knowing what fields to expect.
Duplicate tool names. 'add_num' appears twice (hello_mcp/client.py and hello_mcp/server.py) with nearly identical schemas. This creates ambiguity and wastes LLM reasoning cycles deciding between them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools lack error responses that tell the LLM what to do next. No validation of inputs (e.g., what if 'name' is empty or 'a'/'b' are out of range?).
No tool annotations. All tools are READ_ONLY but lack readOnlyHint, idempotentHint, or destructiveHint annotations. This prevents agents from reasoning about retry safety and side effects.