Express-based MCP server with multiple tool servers (greet and time)
Both tools have critical definition gaps. 'greet' has a parameter with null description (violates pattern:tool-description). 'get-time' has no parameters but lacks any tool description entirely. Neither tool has documented output schemas. Tool descriptions are missing or absent, making LLM selection impossible. No error handling guidance. Naming is acceptable but descriptions are the foundation of tool quality, their absence is disqualifying.
Tool descriptions completely missing. Both 'greet' and 'get-time' have no descriptions. LLMs cannot determine when or why to select these tools.
'greet' parameter 'name' has null description. Parameter descriptions are mandatory, LLMs cannot infer that 'name' is a person's name vs. a variable name vs. a resource identifier.
No output schemas documented. Tools return text content but LLMs have no formal specification of response structure, field names, or types. Prevents downstream tool chaining.
No error handling or recovery guidance. If 'greet' receives an empty string or 'get-time' fails, the LLM has no instruction on what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
No input validation or constraints. 'name' parameter accepts any string with no length limits, character restrictions, or format guidance. LLMs may pass empty strings, extremely long inputs, or special characters without bounds.