Visual AI Prompt Builder MCP server that decomposes raw prompts into structured blocks and compiles them into Claude-optimized XML
Three tools are defined with descriptions and input schemas present. However, the server exhibits significant quality gaps. Tool names lack clear action verbs (decompose_prompt and compile_prompt are somewhat descriptive but less clear than verb_object patterns like 'parse_prompt' or 'generate_prompt'). Descriptions are present but brief (119-167 chars), lacking the critical context of WHEN to use each tool and what prerequisites exist. Most critically, parameter descriptions are minimal or absent, the 'prompt' parameter in decompose_prompt has a description, but blocks_json in compile_prompt has only a generic description of the JSON structure without explaining when/why to use it. No output schemas are documented anywhere, forcing LLMs to guess what fields will be returned. Error handling is not visible in the code excerpts. The server is HTTP-based (FastMCP), which is positive for transport, but lacks modern MCP protocol features like tool annotations, progress reporting, or error categorization.
Compile a list of blocks into a Claude-optimized structured XML prompt. Takes the JSON returned by decompose_prompt (or manually crafted blocks) and produces a ready-to-use XML prompt with a token estimate.
Decompose a raw prompt into structured blocks (role, objective, context, constraints, etc.). Uses AI (Claude/OpenAI) if an API key is configured on the server, otherwise falls back to keyword-based heuristic analysis. Returns a JSON list of blocks ready to edit or pass to compile_prompt.
List all available block types in flompt with their descriptions. Useful to know which types to use when manually crafting blocks to pass to compile_prompt.
No output schemas documented for any tool. LLMs cannot infer what fields will be returned, forcing guessing and wasted tokens on exploratory calls.
Parameter descriptions are minimal or generic. 'blocks_json' parameter in compile_prompt lacks context on structure and validation. 'prompt' in decompose_prompt has a description but no format guidance.
Tool names lack clear action verbs. 'decompose_prompt' is somewhat descriptive but 'compile_prompt' is ambiguous, does it compile, generate, or transform? Names like 'parse_prompt' and 'generate_prompt' would be clearer.
No error handling guidance visible. If decompose_prompt fails to parse malformed input or if an API key is missing, what error does it return? How should an LLM retry?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 57 | - | v1 |
Tool descriptions (119-167 chars) lack WHEN/WHY context. 'Decompose a raw prompt into structured blocks' doesn't explain when an LLM should call this vs compile_prompt, or what the structured format enables.