Local-first, MCP-native tool for modelling software architecture — a self-hosted alternative to Structurizr with a React Flow editor. Provides MCP tools for managing C4 model workspaces, elements, relationships, views, and boundaries.
StructSmith provides 31 tools with consistent naming (verb_noun pattern) and basic descriptions. However, critical gaps exist: most tools lack documented input schemas beyond parameter names, parameter descriptions are minimal or absent, and output schemas are entirely undocumented. Tool descriptions average ~80 chars (below the 194-char baseline for A+ tools). No error handling guidance, recovery paths, or actionable error messages are evident. The server implements tool annotations (destructiveHint/readOnlyHint) correctly, which is a strength. Composition is sound, tools are single-responsibility and chainable via IDs. Security posture is unclear (no visible permission gates or audit logging). Overall, this is a functional but under-documented toolkit suitable for basic use but lacking production-grade polish.
Create a new boundary in a view
Delete a boundary from a view
List boundaries in a view
Update an existing boundary
Create a new element in the model
Delete an element from the model
Update an existing element
Missing output schemas: No tool documents what fields it returns. LLMs cannot plan downstream calls or extract required data (e.g., does workspace_create return workspace_id?). This violates pattern:tool and pattern:response-shaper.
Undocumented parameter descriptions: Tools like workspace_create, model_validate, and model_preview_operations have no visible parameter descriptions. LLMs cannot infer what 'data' object should contain or what 'operations' format is expected.
No error handling guidance: Tools lack recovery paths. If workspace_get fails with 404, the LLM has no suggestion to call workspace_list first. No actionable error messages or categorization (retryable vs fatal).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Import a Mermaid diagram into a workspace
Apply a batch of operations to the model
Get the semantic model for a workspace in JSON or outline format
Preview the result of applying operations without persisting them
Validate the semantic model for a workspace
Provides comprehensive modeling guide with rules and allowed values for the C4 model
Create a new record (metadata) for an element
Delete a record from an element
Update an existing record
Resolve a StructSmithRef payload to its target object
Create a new relationship between elements
Delete a relationship between elements
Update an existing relationship
Create a new view in a workspace
Delete a view from a workspace
Get a specific view by ID
List all views in a workspace
Update an existing view
Create a new workspace
Delete a workspace
Get a specific workspace by ID
Inspect a workspace with optional layout and history details
List all workspaces
Update an existing workspace
Destructive operations lack confirmation: delete_* and workspace_delete tools have no dry-run or confirmation step. Agents can irreversibly delete workspaces without a safety gate.
Minimal tool descriptions: Most descriptions are 30 - 60 chars (baseline is 194 chars). workspace_list is 'List all workspaces', lacks context on when to call it vs workspace_get, or what structure is returned.