MCP server for managing users with tools to create users, resources to query user data, and prompts for generating fake users
Two tools with basic schemas but significant quality gaps. create-user has Zod schema with 4 parameters (name, email, address, phone) but parameter descriptions are null, violating the requirement that every parameter needs a description. create-random-user has empty schema {}. Both tools have short descriptions (under 100 chars) that lack context on when to use them or what they return. Tool annotations present (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) but descriptions do not explain the side effects or recovery paths. No output schema documented. Error handling returns generic text ('Failed to save user') without actionable guidance. Naming is acceptable (verb_noun pattern) but descriptions are too terse.
Create a random user with fake data
Create a new user in the database
Parameter descriptions are null in create-user schema. Zod schema defines name, email, address, phone but each has description: null. LLMs cannot infer parameter meaning from names alone, 'address' could be mailing address, billing address, or IP address.
create-random-user has empty input schema {} with no parameters defined. Tool description says 'Create a random user with fake data' but does not document what output fields to expect or how the LLM should use the result.
No output schema documented for either tool. Responses return text like 'User 123 created successfully' but LLMs need structured output (user_id, name, email, etc.) to chain downstream calls or extract data for the user.
Error handling is generic and non-actionable. Both tools return 'Failed to save user' or 'Failed to generate user data' without explaining why or what the LLM should do next (retry, check input, contact admin).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | <=2025-11-25 | v2 |
Tool descriptions are too short (under 50 chars) and lack context. 'Create a new user in the database' does not explain when to use this vs create-random-user, what fields are required, or what the return value contains.