A simple MCP Server running on AWS Lambda
Single tool 'order-tickets' with moderate definition quality. Tool has a clear verb-noun name and a description present, but the description is verbose and contains example values (anti-pattern). Parameter descriptions are minimal (5-10 chars each). No output schema documented. No error handling guidance. No parameter constraints (e.g., quantity bounds, date format validation). Resource 'timeslots' is present and functional but similarly lacks detailed schema documentation.
Use this tool to order tickets to the Peppa Pig Park. The tool expects two parameters - timeslot and quantity. The timeslot should be a stringified date. The quantity should be a number. Example: order-tickets(timeslot: "April 19, 2025", quantity: 3) The tool will return a text message with the order number.
Description contains literal example values ('April 19, 2025', quantity: 3) instead of format constraints. LLMs tend to reuse example values literally in real calls, causing failures.
Parameter descriptions are trivially short (5-10 characters). 'The timeslot for the tickets' and 'The number of tickets to order' lack actionable constraints like date format (ISO 8601?), timezone, quantity bounds (1-100?), or whether past dates are allowed.
No output schema documented. The tool returns {content: [{type: 'text', text: '...'}]}, but LLMs cannot verify this structure or plan downstream operations. Response content should be formally specified in the tool definition.
No error handling guidance. If quantity exceeds availability, if timeslot is invalid, or if the date is in the past, the tool provides no recovery hints. LLM receives no signal of what to do next.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 65 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Parameter 'quantity' lacks bounds. No minimum (1 ticket? 0?) or maximum (100? 1000?). Unbounded numeric parameters let LLMs pass absurd values that break the API or business logic.
Parameter 'timeslot' expects 'stringified date' but no format is specified. Does it accept 'April 19, 2025', '2025-04-19', or both? LLMs will guess and frequently generate invalid formats.
Tool description mixes WHAT (order tickets) with WHEN (expects two parameters) and HOW (stringified date). Descriptions should focus on WHAT, WHEN, and WHAT IT RETURNS, implementation details belong in parameter descriptions.