Skip to main content
Glama

Render Structurizr DSL

render_structurizr

Render C1–C3 images from self-contained DSL into a named project folder. Validates and rejects executable directives and external references for safe diagram generation.

Instructions

Render real C1-C3 images from self-contained DSL. Use generate_c4 with codeViews for C4. Rejects executable directives and external references.

Input Schema

NameRequiredDescriptionDefault
dslYes
projectYesOutput project folder name

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is partly covered. The description adds real behavioral context beyond that: it rejects executable directives and external references, and requires the DSL be self-contained — which explains the openWorldHint=false claim in practical terms. It does not mention rate limits, failure modes, or where output lands.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then the routing rule, then the constraint. No filler or restatement of the name/title.

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

Completeness4/5

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

No output schema exists, but 'Render real C1-C3 images' plus the 'project' output folder param conveys the return well enough. The main remaining gap is that the DSL dialect/format an agent must write is never characterized beyond what is rejected.

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 coverage is 50%: 'project' is documented as the output folder name, while 'dsl' has only min/max length. The description partially compensates by constraining what the DSL may contain (no executable directives, no external references, must be self-contained), but gives no syntax, format, or size guidance. Baseline 3 is appropriate given partial schema coverage.

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

Purpose5/5

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

Specific verb+resource: "Render real C1-C3 images from self-contained DSL" tells the agent exactly what is produced and from what input. It also implicitly scopes out C4 rendering, which the next sentence makes explicit, so it is distinguishable from generate_c4.

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

Usage Guidelines4/5

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

Explicitly routes C4 work to the sibling: "Use generate_c4 with codeViews for C4." That is a clear alternative-plus-condition. It does not state when-not to use this tool in any other sense (e.g. size limits, when to prefer read_artifact for existing renders), so it falls short of full 5 coverage.

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