@archsmith/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_schemaA | 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. |
| validateA | 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 }. |
| renderA | 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. |
| list_registriesA | Lists the governed registries (e.g. sub-layers, colors, icons) available via get_registry. |
| get_registryA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| diagram-schema | JSON Schema (draft 2020-12) defining what a valid diagram IR document looks like. |
| registry-sub-layers | Governed, current contents of the "sub-layers" registry. |
| registry-colors | Governed, current contents of the "colors" registry. |
| registry-icons | Governed, current contents of the "icons" registry. |
TDQS
Scored across 5 tools
Each tool has a clearly distinct role: get_schema provides the structural contract, list_registries/get_registry provide governed vocabulary, validate checks conformance, and render produces SVG. The descriptions explicitly distinguish schema (structure) from registry (vocabulary) and clarify that render subsumes validation, preventing misselection.
Three tools use verb_noun (get_schema, list_registries, get_registry) while two use bare action verbs (validate, render). The split is logical—retrieval uses get/list, actions use bare verbs—but it is not a single uniform pattern, so it falls short of perfect consistency.
Five tools map cleanly onto the core workflow: discover the schema, discover registries, validate, and render. Each tool earns its place with no redundancy, fitting comfortably in the well-scoped 3-15 range.
The surface covers the full author-validate-render lifecycle, including registry listing and lookup, so agents can complete the primary task. Minor gaps exist: no example IR or starter template, and no alternative export formats or render-option introspection beyond what render's description mentions.