MCP server exposing ArchSmith's render/validate/registry lookups to any MCP-capable agent, over stdio.
ArchSmith MCP server has well-structured tool definitions with clear naming (verb_noun pattern: get_schema, validate, render, list_registries, get_registry) and comprehensive descriptions (avg 180+ chars). All tools are READ_ONLY with explicit risk annotations. Input schemas are present for parameterized tools using Zod validation. However, output schemas are not formally documented in the tool definitions, responses are described narratively rather than as structured JSON Schema. The render tool has sophisticated logic (inline vs resource_link based on size threshold) but this complexity is not reflected in a formal output schema. Error handling includes recovery hints (schemaDiscoveryHint) but lacks per-parameter validation constraints and actionable error categorization.
Returns the raw, current contents of a governed registry — the live source of truth for which colors/sub-layer types a diagram IR may use. This is governed vocabulary, not the IR's structural document contract; see get_schema for that. For 'colors' specifically, pass family to get just one color family instead of the whole registry.
Returns the ArchSmith diagram IR JSON Schema (draft 2020-12) — the structural contract a diagram IR document must satisfy. Call this, and get_registry for governed vocabulary, before authoring an IR.
Lists the governed registries (e.g. sub-layers, colors, icons) available via get_registry.
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 65536 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.
Output schemas not formally documented. Tool descriptions explain response structure narratively (e.g., 'Returns { valid, errors }' for validate, 'returned as one text content block; a larger one... is returned as a resource_link' for render) but no JSON Schema or TypeScript interface is exposed to the LLM. LLMs cannot reliably parse unstructured descriptions of complex outputs.
render tool's embedFonts parameter lacks validation constraints in description. No mention of default value (false) in the parameter description itself, only in the tool description. Parameter descriptions should be self-contained.
get_registry 'family' parameter is optional but its applicability is conditional on 'name' being 'colors'. This dependency is documented in the description but not enforced via schema constraints (e.g., conditional schema or enum validation). Undocumented parameter relationships cause silent misuse.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Validates an ArchSmith diagram IR document against the schema and governed registries (sub-layers, colors). Call get_schema and get_registry first to learn the required structure and governed vocabulary before authoring an IR. Returns { valid, errors }.
list_registries and get_schema have empty input schemas ({}). While correct, the descriptions do not explicitly state 'This tool takes no parameters', LLMs may attempt to pass parameters anyway.
Error responses include a schemaDiscoveryHint but do not categorize errors as retryable, user-fixable, or fatal. Validation errors are actionable (call get_schema), but the response structure does not signal error classification to the LLM.