A software developer assistant MCP server that remembers prompt templates and executes them when asked.
Three tools with minimal documentation and no proper schema validation. Tool names follow verb-noun pattern (list_, get_), but descriptions are bare and lack critical context. Parameters lack descriptions entirely. No error handling guidance. Output schemas are undocumented or trivial. This server falls significantly below production baseline.
Tool: Return the prompt text for a given prompt name.
Tool: Return the prompt file content.
Tool: List all available prompt names.
list_prompts: No input schema visible; description lacks context about when to call, what structure is returned, or prerequisites. Violates pattern:tool-description baseline of 50-200 chars and complete parameter documentation.
get_prompt: Parameter 'prompt_name' has type and basic description, but overall tool description is only 58 chars ('Tool: Return the prompt text for a given prompt name.'). Baseline is 194 chars. Missing: when to use this vs get_prompt_file, error handling (what if prompt not found?), output schema documentation.
get_prompt_file: No input parameters documented but tool takes none (empty input schema). Description is only 35 chars. No output schema documented. LLM cannot determine when to call this vs get_prompt without additional context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 40 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 29 | - | v1 |
Error handling: get_prompt returns 'Prompt not found' as a string, not a structured error. LLM receives ambiguous string response and cannot distinguish success from failure or determine recovery action. Violates pattern:recovery-guide.
No output schemas documented for any tool. list_prompts returns 'list' type with no documentation of list contents (strings? objects?). get_prompt returns 'str' with no indication of encoding or format. get_prompt_file returns 'dict' with no field documentation. Violates pattern:tool baseline that 100% of A+ tools have documented return types.
Unclear composition and naming distinction: get_prompt (singular) and get_prompt_file (returns dict of all prompts) are semantically opposite but naming does not make this clear. LLM likely to conflate them. Violates pattern:tool composition principle (each tool does exactly one thing).
No validation of prompt_name parameter. Tool silently returns error string instead of structured error with suggestions. If user asks for 'my_prompt' but file is 'my-prompt.txt', tool fails without guidance. Violates pattern:recovery-guide (errors must guide next action).