Turn any Python codebase into a production-grade MCP server with zero friction.
Four tools with complete schemas and descriptions, but quality is uneven. format_greeting and compute_stats have adequate descriptions (60-80 chars) and clear schemas. ShoppingCart tools lack depth: descriptions are terse (20-30 chars), and ShoppingCart_total_items has zero input parameters with no explanation of what it returns. Naming is inconsistent: ShoppingCart_add_item and ShoppingCart_total_items use PascalCase with underscores (non-standard verb_noun pattern). No output schemas documented. Error handling and recovery guidance absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata.
Add or increment an item in the shopping cart.
Return the total quantity of all items across all cart entries.
Compute basic statistics (mean, min, max) for a list of numbers. Exercises schema coercion: the MCP caller passes a JSON array and the framework must coerce each element to float before calling this function.
Format a greeting message for a person. Returns a formal or informal greeting string.
ShoppingCart_total_items has no input parameters and no documented output schema. Description is 8 words; unclear what 'total quantity' means (sum? count of distinct items?) or what structure is returned.
Tool names use PascalCase_with_underscores (ShoppingCart_add_item) instead of standard verb_noun lowercase (add_shopping_cart_item). LLMs expect action verbs at the start; this naming obscures intent.
No tool annotations present. Risk metadata (WRITE vs READ_ONLY) exists in test file but is not exposed via MCP tool definitions. FastMCP supports destructiveHint and readOnlyHint; these should be set to guide agent behavior.
No output schemas documented. Callers cannot predict response structure. compute_stats likely returns {mean, min, max} but this is inferred, not specified. format_greeting return type is unstated.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
No error handling or recovery guidance. If compute_stats receives an empty array or non-numeric values, no documented behavior or suggested next steps for the agent.