Skip to main content
Glama
ayeshLK

@archsmith/mcp-server

Render a diagram IR to SVG

render

Validates an ArchSmith diagram IR and converts it into a complete SVG document, returning validation errors instead of broken geometry when the input is invalid.

Instructions

Validates then renders an ArchSmith diagram IR to a complete SVG document. Call get_schema and get_registry first to learn the required IR structure and governed vocabulary before authoring a document. Font embedding defaults to false to keep MCP responses compact; only opt in if the SVG must render portably without installed fonts — embedding adds a font subset sized to this diagram's own text, not a fixed cost, but it's still an added cost worth opting into deliberately. A render under 25,000 bytes is returned as one text content block; a larger one (e.g. a big diagram, or embedFonts:true on one) is returned as a resource_link instead, fetchable via resources/read, so the tool result itself never grows unbounded. Fails with the validation errors (isError: true) instead of rendering if the IR is invalid — never renders broken geometry from an invalid document.

Input Schema

NameRequiredDescriptionDefault
irYesThe diagram IR document to render.
embedFontsNoEmbed the bundled Arimo font for portable rendering, subset to just the glyphs this diagram's text needs (not the whole font). Default: false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.1

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the 25,000-byte threshold that switches the result from a text content block to a resource_link fetchable via resources/read, and that invalid IR fails with isError:true rather than emitting broken geometry. Embedding cost and the opt-in default are also made explicit.

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?

Front-loads the core action, then prerequisites, then return-shape and failure semantics in a single dense paragraph with no filler topics. Minor redundancy in the embedFonts justification ('still an added cost worth opting into deliberately') costs it a point.

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

Completeness5/5

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

No output schema exists, so the description properly explains return behavior (inline text vs resource_link and how to fetch it) plus the failure mode. For a 2-param tool with a nested free-form IR object, nothing an agent needs to invoke or interpret the call correctly is missing.

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

Parameters4/5

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

Schema coverage is already 100%, so baseline is 3. The description goes beyond the schema's field text by framing embedFonts as a deliberate cost tradeoff (subset sized to this diagram's own text, not a fixed cost), which helps the agent decide rather than just describing the flag.

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?

States a specific verb+resource pipeline: validates an ArchSmith diagram IR and renders it to a complete SVG document. An agent can tell what it produces (an SVG) and from what (an IR) without opening the schema, and the scope is narrowed to ArchSmith diagrams rather than a generic renderer.

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?

Gives a concrete prerequisite flow (call get_schema and get_registry first to learn the IR structure and vocabulary) and conditional guidance for embedFonts (opt in only when portability without installed fonts is required). It does not explicitly state when to prefer this over the sibling validate tool, which is the only gap.

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

Deploy Server

Other Tools