Enhanced MCP Server for Multi-Provider Architecture Diagrams with comprehensive access to Python diagrams library and GraphViz tools, supporting AWS, Azure, GCP, Kubernetes, and other cloud providers
This server has 5 tools with moderate definition quality but significant gaps across naming, descriptions, parameter documentation, and schemas. Tool names follow verb_noun patterns (validate_*, generate_*, get_*, auto_fix_*, suggest_*) which is good. However, most parameter descriptions are present but brief, and output schemas are not explicitly documented. The tools lack error handling guidance, actionable error messages, and clear recovery paths. No tool annotations (readOnlyHint/destructiveHint) are present despite the server handling both read and write operations. Parameter validation rules are undocumented, forcing LLMs to guess at constraints.
Automatically fix diagram code issues across all providers
Generate diagram image with advanced styling options
Get comprehensive list of available services across all providers
AI-powered suggestion for diagram structure based on architecture description
Validate Python diagrams code syntax and imports for any provider
Output schemas not documented. Tools return results but the structure expected by LLMs is not declared (e.g., validate_diagram_code returns what fields? generate_diagram returns what image metadata?). LLMs cannot plan downstream tool calls without knowing output structure.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) present despite mixed read/write operations. generate_diagram and auto_fix_diagram_code perform writes and should be marked destructiveHint=true or idempotentHint=true. Server advertises these tools but LLM has no metadata to assess side effects.
Parameter validation rules undocumented. 'format' enum in generate_diagram lists [png, svg, pdf] but no description explains what happens if an invalid format is passed, what default is used, or whether it affects output path. 'complexity_level' in suggest_diagram_structure lists no enum despite the description mentioning 'simple, medium, advanced', constraint should be formalized.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | 2024-11-05+ | v1 |
No error handling guidance in any tool description. What happens if diagram code has invalid syntax? What if Graphviz is unavailable? What if a provider service doesn't exist? Descriptions do not tell LLMs what to do on failure, forcing blind retries.
Parameter descriptions are generic and lack actionable detail. 'code' is described as 'Python diagrams code to validate' but does not specify: required imports, expected syntax, what constitutes valid code, examples of errors caught. 'theme' in generate_diagram has no description at all, LLM cannot infer valid theme names.
get_available_services missing output pagination. If AWS has hundreds of services, returning all in one response bloats context and risks token exhaustion. No limit or offset parameters documented; tool description does not state how many results are returned or if results are truncated.
generate_diagram's 'output_path' parameter marked optional but no description of default behavior. If omitted, does the server auto-generate a filename? Return the image as base64? Write to /tmp? This ambiguity forces LLM to guess or make wasteful follow-up calls.