Skip to main content
Glama

Generar diagrams C4

generate_c4

Generate Structurizr DSL/JSON and C1–C4 diagrams from an explicit architecture model, with transparent SVG/PNG exports, an offline viewer, and a hashed manifest.

Instructions

Generate Structurizr DSL/JSON and real C1 context, C2 container, C3 component and C4 code diagrams from an explicit architecture model. Returns transparent SVG/PNG, a viewer and a hashed manifest.

Input Schema

NameRequiredDescriptionDefault
modelYes
levelsNo
projectYesOutput project folder name

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and destructiveHint=false, and the description usefully adds that outputs include a viewer and a hashed manifest and that rendering is 'transparent' (traceable). However, it does not say that artifacts are written to a project-named folder, whether existing output is overwritten, or what happens on oversized models — meaningful gaps for a non-idempotent write tool with openWorld=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, with the generation action and the artifact list front-loaded and no filler. Slightly jargon-heavy but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a deeply nested required 'model' with people, systems, containers, components, codeViews and relationship limits, and no output schema, the description says nothing about model structure or validation constraints. The artifact and return-value side is covered adequately, but the input-side burden is not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% — only 'project' (output folder name) is documented, while the large 'model' object and 'levels' array are not. The description partially compensates by tying the tool to an 'explicit architecture model' and enumerating C1–C4, which the agent can map to the levels enum, but it never explains the model's required shape (focalSystem, systems/containers/components/codeViews).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (generate) and concrete artifacts (Structurizr DSL/JSON, C1–C4 diagrams, SVG/PNG, viewer, hashed manifest), which is far more informative than the title alone. It doesn't distinguish itself from the sibling render_structurizr, which likely also produces diagrams, so the agent can't tell from the description which one to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'from an explicit architecture model' implies the model must be supplied rather than inferred, but there is no explicit when-to-use, no when-not-to-use, and no mention of when render_structurizr would be the better choice. The agent is left to infer the routing decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.