A FastAPI-based MCP server for managing ideas with CRUD operations, MongoDB integration, and JWT authentication
YudexMinds MCP has 6 tools with basic schemas and descriptions, but significant quality gaps. Tool names follow verb_noun convention (get_ideas, create_idea, etc.), which is good. However, descriptions are minimal (10-50 chars), parameter descriptions lack detail, and schemas are incomplete. The update_idea and change_status_idea tools have redundant/confusing parameters (both 'idea_id' and 'id'). No enum constraints on status/priority fields. Error handling is absent from tool definitions. Output schemas are not documented. The server exposes all CRUD operations without clear guidance on when to use each. Baseline: 549 production tools average 194 chars for descriptions and 72 chars per param; this server averages ~30 chars for descriptions and lacks param-level detail.
Change the status of an existing idea with the provided details.
Create a new idea with the provided details.
Delete an existing idea with the provided id.
Get a specific idea by its ID.
Get all ideas.
Update an existing idea with the provided details.
Redundant parameters in update_idea and change_status_idea: both accept 'idea_id' and 'id' with identical descriptions. This creates ambiguity, LLMs will not know which to use, risking malformed calls.
Status and priority parameters lack enum constraints. Descriptions say 'The status of the idea' and 'The priority of the idea' without listing valid values (e.g., pending, in_progress, completed). LLMs will hallucinate invalid values.
Tool descriptions are 10 - 50 characters, well below the 194-char baseline for production tools. Descriptions like 'Get all ideas.' and 'Create a new idea with the provided details.' lack context on when to use each tool and what they return.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
No output schema documentation. Tool definitions do not specify what fields are returned (e.g., does get_ideas return id, title, description, status, priority, created_at?). LLMs cannot plan downstream calls without knowing response structure.
No error handling guidance in tool definitions. Descriptions do not explain what happens on failure (e.g., 'If idea_id not found, returns 404, try get_ideas() to discover valid IDs'). Agents have no recovery path.