MCP server for Ecky CAD DSL - provides tools for AST inspection, modification, and design parameter manipulation in a prompt-driven 3D CAD system
Ecky MCP server has well-structured tool names following verb_noun convention (ecky_ast_inspect, ecky_ast_set_*), but suffers from incomplete parameter descriptions and missing output schemas. All 8 tools have descriptions (10-120 chars), but most are terse and lack actionable context for LLM selection. Input schemas are present with type declarations, but parameter descriptions are minimal (e.g., 'Path to the AST node to inspect' lacks format/constraint details). No visible output schema documentation. Error handling and recovery guidance are absent. Security patterns (digest-based safety checks) are present but underdocumented.
Delete a binding (variable definition) from the Ecky AST and re-render the design
Insert a new binding (variable definition) into the Ecky AST and re-render the design
Inspect the abstract syntax tree of an Ecky design at a specific path, returning node metadata and structure
Rename a binding (variable definition) in the Ecky AST and re-render the design
Replace an entire subtree in the Ecky AST with new source code and re-render the design
Set a numeric value in the Ecky AST at a specified path and re-render the design
Set a select/choice value in the Ecky AST at a specified path and re-render the design
Output schemas not documented. LLMs cannot infer what fields are returned by inspect/set/replace operations, forcing them to guess downstream data structure and risk failed chaining.
Parameter descriptions lack actionable constraints. 'Path to the AST node' does not explain format (dot-notation? array indices?), valid ranges, or examples. LLMs cannot validate input without explicit format guidance.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | <=2025-11-25 | v2 |
Set a string value in the Ecky AST at a specified path and re-render the design
Tool descriptions are terse (40-120 chars) and lack WHEN/WHY context. 'Set a numeric value in the Ecky AST' does not explain when to use set_number vs set_string vs set_select, or what happens on digest mismatch.
No error handling or recovery guidance. Digest mismatch, invalid paths, and rendering failures are not documented. LLMs have no guidance on retry strategy or fallback actions.
Destructive operations (delete_binding, replace) lack confirmation or dry-run support. Agents can irreversibly modify designs without safeguards.