MCP server for managing users with tools to create users, resources to query user data, and prompts to generate fake users
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Tool names follow verb_noun convention (create-user, create-random-user), which is good. However, parameter descriptions are completely absent, the schema shows types (string) but no guidance on format, constraints, or purpose. The create-random-user tool lacks input parameters entirely, making its schema incomplete. Error handling is minimal: generic 'Failed to save user' and 'Failed to generate user data' messages provide no recovery guidance. Tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) are present but descriptions are under 50 characters, below the 50-200 char baseline for LLM-optimized descriptions. No output schema documentation. Sampling usage (deprecated pattern) is present but not penalized per spec rules.
Create a random user with fake data
Create a new user in the database
create-random-user has no input schema, schema score must be 0. Tool accepts no parameters but provides no documentation of this constraint.
All input parameters lack descriptions. 'name', 'email', 'address', 'phone' in create-user have types but no guidance on format, length, or validation rules. LLMs cannot infer whether email must be RFC 5322 compliant or if phone accepts international formats.
Error messages are generic and non-actionable. 'Failed to save user' and 'Failed to generate user data' do not tell the LLM what went wrong, whether to retry, or what to try next. Per pattern:recovery-guide, errors must guide recovery.
No output schema documented. Callers do not know what fields the response contains or how to chain results to downstream tools. Per pattern:tool, output structure must be documented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Tool descriptions are 30 - 40 characters, below the 50-character minimum for LLM clarity. 'Create a new user in the database' and 'Create a random user with fake data' lack context on when to use each tool, what data is required, or what the tool returns.