MCP server with user management tools, resources, and prompts. Includes a client interface for querying tools and resources with Google Generative AI integration.
Two tools with partial definitions. Both tools have descriptions and tool annotations, but parameter descriptions are entirely missing. The create-user tool has a complete JSON Schema with types, but create-random-user has no input schema at all (empty object). Error handling is present but generic. No output schema documentation. Naming follows verb_noun convention (create-*) which is correct.
Create a random user with fake data
Create a new user in the database
create-random-user has NO input schema (empty object {}). This prevents the LLM from understanding what inputs are available and makes the tool impossible to validate.
All parameter descriptions are missing. The create-user tool has a JSON Schema with types (name, email, address, phone) but the schema object itself contains no 'description' fields for parameters. LLMs cannot infer that 'email' must be a valid email, 'phone' must be a phone number, etc.
Output schema not documented. Neither tool documents what fields are returned (e.g., does create-user return the new user object, just the ID, or a success message?). LLMs cannot plan downstream tool calls without knowing what data is available.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Error handling is present but not actionable. Both tools catch errors and return text strings like 'Error creating user: <message>', but do not categorize errors as retryable/user-fixable/fatal or suggest recovery steps. Per pattern:recovery-guide, errors must tell the LLM what to do next.
Tool descriptions are very short (under 50 chars after 'Create a...'). Current descriptions do not explain WHEN to use each tool (create-user vs create-random-user), what data structure is expected, or what the return value represents.
Sampling pattern used in create-random-user (server.server.request with 'sampling/createMessage'). Sampling is deprecated in the current spec (2026-07-28) and will be removed ~2027-07-28. The tool calls an LLM via the deprecated Sampling API instead of integrating directly with the AI provider.