Single tool with clear naming (get_user_by_id) and adequate description (94 chars). Input schema present with type and description. However, output schema is completely undocumented, the User struct is visible in code but not declared in the tool definition. No error handling guidance, no parameter constraints (e.g., case sensitivity), and no documentation of what happens on missing user. Lacks pagination despite returning structured data. Naming is verb-first and clear, but schema documentation is incomplete.
retrieve a user's profile using their unique user id. Use this tool when you need to look up a user's id, name, age or other available user information.
Output schema completely undocumented. Tool returns User struct (id, name, age) but MCP tool definition has no output schema declaration. LLMs cannot plan downstream operations or extract fields reliably.
No error handling guidance. Tool silently returns empty/nil User on missing ID. Description does not explain what happens when user is not found or how to recover (e.g., 'Try search_users() with a partial name').
Parameter constraint not documented in description. Input requires lowercase ID but description only states 'all characters are in lower case', no guidance on what happens if uppercase is passed or how to normalize.
No pagination or result limits. While current dataset is small (2 users), tool lacks limit/offset parameters and total count in response. Violates pattern for scalable tool design.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Tool composition incomplete. Single tool only retrieves by ID. No search_users, list_users, or get_user_by_name variant. Agents cannot discover users without knowing exact ID.