multiCAD-mcp-server
MultiCAD-MCP-Server enables AI-driven control of CAD applications and headless DXF generation for AECO/ConTech workflows.
Manage CAD sessions: connect/disconnect, status, zoom extents, screenshots, undo/redo, dashboard.
Draw and edit entities: lines, circles, arcs, polylines, text, dimensions, leaders, tables, blocks, offsets, fillets, trim/extend, copy/paste.
Organize layers and files: create/rename/color layers, AECO/AIA/MEP templates, save/open/switch/close DWG/DXF/PDF.
Annotate and dimension: auto-dimension, label spaces with m², leaders.
Manage layouts: paper space, ISO formats, viewports, title blocks, scales.
Handle xrefs and raster images: attach, reload, detach DWG/orthophotos.
Inspect drawings: bounding box, point-in-polygon, intersections, OSNAP snapping, ASCII minimap.
Export data: JSON, Excel, FIEBDC-3 (.bc3), vector PDF, CE3X thermal envelope JSON.
Interactive tools: prompt user for points/entities/distances/text in CAD; HTML5 viewer with pan/zoom, layer toggles, area inspection.
Enrich BIM metadata via XDATA, audit/QA, purge layers.
Provides natural-language control of AutoCAD via Windows COM automation, enabling AI agents to create and modify drawings, manage layouts and viewports, apply parametric geometry operations (offset, fillet, chamfer, explode), add hatches, dimensions, labels and BIM metadata (XDATA), query spatial data, prompt the user to pick points or select entities on screen, and print vector PDF plans.
📐 multiCAD-MCP-Server (Automatización CAD & ConTech con IA)
🏗️ Perfil & ConTech | 📈 Repositorio & Enlaces |
|
|
Servidor MCP Universal de Grado Industrial para Control de CAD mediante IA, Motor Headless DXF, Estándares AECO, Trazado PDF Vectorial, Visor Gráfico Interactivo y Puente ConTech CE3X.
Control interactivo por lenguaje natural de AutoCAD, ZWCAD, GstarCAD y BricsCAD vía Windows COM, con motor offline autónomo DXF para arquitectura, construcción, mediciones y certificación energética.
⚡ Enlaces y Accesos Rápidos
🌟 Recurso | 🚀 Acción / Enlace | 📝 Descripción |
Paquete PyPI Oficial | Distribución oficial ( | |
Glama MCP Registry | Directorio oficial de servidores MCP e Inspector web interactivo. | |
Instalador 1-Clic | Inyección automática y segura en Claude Desktop y Cursor. | |
Historial de Cambios | Registro pormenorizado de novedades, mejoras y correcciones. | |
Código de Conducta | Normas de convivencia y participación en la comunidad. | |
Guía de Contribución | Pasos para reportar bugs, proponer macros y enviar PRs. | |
Seguridad | Política de reporte responsable de vulnerabilidades. | |
Documentación Técnica | Documentación de herramientas, comandos shorthand y arquitectura. | |
Puente CE3X | Certificación energética oficial desde planos CAD. | |
Repositorio Upstream | Repositorio base original de la comunidad. |
📥
🎯 ¿No quieres lidiar con consolas, comandos ni clonar repositorios?
📦 Opción 1: Uso directo vía PyPI con uvx (Recomendado):
Copia estas líneas en tu archivo de configuración de Claude Desktop o Cursor:
"multicad": {
"command": "uvx",
"args": ["multicad-mcp-server"]
}O instálalo en tu entorno Python con:
pip install multicad-mcp-server🛠️ Opción 2: Instalador 1-Clic en local:
Clona o descarga el repositorio en local.
Haz doble clic sobre
instalar_en_claude_desktop.bat.El instalador detecta automáticamente el binario ejecutable
multicad-mcp.exe, genera una copia de respaldo de seguridad.bake inyecta la configuración en Claude Desktop y Cursor sin alterar tus otros servidores MCP.
Related MCP server: cad-mcp
🌟 Características Principales (AECO & ConTech Edition)
Módulo | Icono | Funcionalidades Destacadas |
Motor Headless DXF | ⚡ | Adaptador universal |
Espacio Papel & Maquetación | 📐 | Herramienta |
Edición Paramétrica & Geometría | ✂️ | Comandos nativos de modelado: |
Topología, Contornos, Trim & Extend | 🔗 | Detección automática de polilíneas de contorno desde punto interior ( |
Asistente OSNAP & Intersecciones | 🧲 | Localización exacta de cruces geométricos entre curvas/líneas ( |
Tramas Técnicas & Sombreados | 🧱 | Rayados normalizados ( |
Búsqueda & Reemplazo Semántico | 🔎 | Herramienta |
Visor CAD Interactivo HTML5 | 👁️ | Generación y apertura en 1 clic de un visor web interactivo en Canvas con zoom suave, paneo, conmutador de capas y selección de recintos con inspección de m² y datos BIM. |
Inteligencia Espacial & Minimapas | 🧭 | Inferencia espacial directa en el chat: consulta Point-in-Polygon ("¿qué hay en x,y?"), cálculo del bounding box envolvente y generación de minimapas ASCII esquemáticos. |
Rotulación & Acotación Inteligente | 🏷️ | Acotación automática ( |
Conector ConTech CAD ➔ CE3X | 🏢 | Extracción paramétrica de la envolvente térmica del edificio con cálculo trigonométrico de orientaciones (N, S, E, O) a partir de vectores normales y generación de archivo |
Trazado PDF Vectorial Nativo | 📄 | Impresión directa de planos en formato PDF 1.4 vectorial puro con formatos normalizados ( |
Human-in-the-Loop Interactivo | 🤝 | Interacción bidireccional asistida: la IA solicita al usuario que pinche un punto con la mirilla de AutoCAD ( |
Control de Cámara & Vistas 3D | 🎥 | Herramienta |
Enriquecimiento Semántico BIM | 🏷️ | Inyección y lectura de metadatos estructurados en entidades CAD mediante XDATA ( |
Gestor de XREFs & Ortofotas | 🗺️ | Coordinación de proyectos multidisciplinares: enlace y recarga de referencias externas DWG ( |
Plantillas Normalizadas AECO | 🏛️ | Comando |
Cálculo de Superficies & Cuadros | 📐 | Medición analítica de recintos poligonales (algoritmo Shoelace / Gauss) y generación automática de Tablas CAD de Cuadros de Superficies Útiles ( |
Presupuestos FIEBDC-3 (.bc3) | 💰 | Exportación de líneas de medición CAD directamente a formato estándar de costes de edificación ( |
Macros Arquitectónicas | 🧱 | Comandos shorthand compuestos de alta velocidad: |
Auditoría QA & Purge | 🔍 | Verificación de salud del dibujo CAD: detección de entidades en capa 0, líneas duplicadas y purga automática de capas vacías no referenciadas. |
🛠️ Herramientas Unificadas MCP Disponibles
manage_session: Ciclo de vida de la conexión, estado de instancias CAD y navegación histórica.manage_view: Control de encuadre, cámara, auto-zoom extents/window, vistas 3D axonométricas y estilos visuales.manage_layouts: Gestión completa de espacio papel, formatos ISO normalizados (A4aA0), ventanas gráficasMVIEWescaladas y cajetines AECO con rotulación.prompt_user: Interacción "Human-in-the-Loop" solicitando clics en pantalla (point), selección de objetos (entity), distancias o texto vía AutoCAD Utility.draw_entities: Primitivas vectoriales, tramas técnicas (ANSI31,AR-CONC,GRAVEL,SOLID) y macros arquitectónicas (wall,door,window,table, etc.).manage_entities: Modificación paramétrica (offset,fillet,chamfer,explode,matchprop,boundary,join,trim,extend), búsqueda semántica (find_text,replace_text), medición (area,area_table), auditoría (audit) y metadatos BIM XDATA (set_metadata,get_metadata).manage_layers: Creación, visibilidad, colores y plantillas normalizadas (template\|aeco,template\|aia,template\|mep,purge).manage_blocks: Creación, inserción y lectura/escritura de atributos de bloques.manage_files: Apertura, guardado, alternancia y cierre de archivos DWG/DXF.manage_xrefs: Enlace, recarga y desenlace de referencias externas DWG e imágenes ráster/ortofotos.export_data: Extracción a JSON, Excel, presupuestos FIEBDC-3 (.bc3) y planos en PDF vectorial (.pdf).export_ce3x_envelope: Extracción paramétrica de la envolvente térmica (fachadas orientadas, huecos, forjados) para certificación energética oficial enCE3X-MCP-SERVER.inspect_drawing: Inteligencia espacial, consulta Point-in-Polygon ("¿qué hay en x,y?"), detección de cruces (intersections), asistente de enganchesnap(OSNAP) y minimapa ASCII.manage_annotations: Acotación automática de edificios y paredes (auto_dimension), rotulación inteligente de recintos con m² en centroides (label_spaces) y directrices.show_drawing_viewer: Generación y apertura en 1 clic de un visor CAD interactivo en HTML5/Canvas en el navegador con zoom, pan, control de capas e inspección de recintos.
📜 Historial de Versiones
👨💻 Autor de la Versión Mejorada
Jose Manuel Caamaño González | Arquitecto Técnico & BIM Manager
Digital Product Lead | ConTech & Digital Twin SaaS | Data Analytics (SQL, Power BI)
Available Tools
15 toolsdraw_entitiesA
Create new 2D/3D geometric primitives, text, dimensions, leaders, and native tables.
Behavior:
Mutation: Mutates the drawing database by creating and appending new entities.
Persistence: Changes persist in the active drawing database and are written to DWG/DXF file upon save.
Side Effects: Auto-creates destination layers if they do not exist. Automatically computes centroid and extents.
Usage Guidelines:
When to Use: Call whenever creating new geometry from scratch (lines, walls, circles, rectangles, polylines, text labels, architectural dimensions, multi-arrow leaders, or schedule tables).
Sibling Routing / Alternatives:
For modifying, transforming (move, rotate, scale), restyling, or deleting existing entities, use
manage_entities.For inserting reusable component blocks (doors, windows, symbols) or creating block definitions, use
manage_blocks.For creating paperspace presentation sheets, title blocks, and viewports, use
manage_layouts.For attaching external DWG references or raster underlays, use
manage_xrefs.
Shorthand Grammar (one entity specification per line):
line|start|end|color|layer → line|0,0|10,10|red|walls
circle|center|radius|color → circle|5,5|3|blue
rect|corner1|corner2|color → rect|0,0|20,15
text|pos|text|height|color → text|5,5|Hello|2.5
arc|center|radius|start|end → arc|0,0|5|0|90
polyline|points(;)|closed|color → polyline|0,0;10,10;20,0|closed
spline|points(;)|closed|color → spline|0,0;5,10;10,0
dimension|start|end|color → dimension|0,0|10,0
leader|points|text|height|color|layer → leader|0,0;10,10|Note|2.5|red
leader|group1
group2...|text|height|color → leader|0,0;10,10~~0,0;-10,10|Notetable|ins|rows|cols|row_h|col_w|title|headers|data → table|0,0|4|3|3|15|Precios|Item;Cant;Val|Acero;10;150~~Mano;5;120
Defaults: color=white, layer=0. Coordinates: "x,y" or "x,y,z". Points in a polyline/leader: semicolon-separated "0,0;10,10".
Parameters:
entities: Shorthand string (one command per line) or JSON array of entity specification objects.
Returns: JSON string with created entity handles, status, and summary count.
| Name | Required | Description | Default |
|---|---|---|---|
| entities | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses that the drawing database is mutated, that changes persist to DWG/DXF on save, and that destination layers are auto-created and centroid/extents auto-computed. It stops short of stating what happens on malformed input (atomic vs. partial creation), whether the operation is undoable, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but front-loaded and fully sectioned: purpose, behavior, usage, grammar, parameters, returns. Every line of the shorthand grammar table earns its place by specifying a distinct callable entity form, and no sentence is redundant with another.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, yet the description still summarizes them. For a one-parameter, annotation-free tool with a free-form string DSL, the mutation semantics, side effects, routing, and input grammar are all covered — nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (the single 'entities' parameter is typed only as string), so the description must compensate and does: it defines the per-line shorthand grammar with ten concrete examples, coordinate formats ('x,y' / 'x,y,z', semicolon-separated point lists), and defaults (color=white, layer=0). This is far beyond what the schema conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb (Create) and enumerates the concrete resource set (2D/3D primitives, text, dimensions, leaders, native tables). Combined with the explicit sibling routing section, an agent can distinguish this from manage_entities, manage_blocks, and manage_layouts without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit 'When to Use' clause plus four named alternatives (manage_entities, manage_blocks, manage_layouts, manage_xrefs) each with the condition that selects it. Nothing about tool selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_ce3x_envelopeA
Extract CAD thermal building envelope parameters for CE3X energy certification.
Behavior:
Mutation: Strictly read-only for CAD geometry; does not alter drawing database or active viewport.
Persistence: Saves a standardized JSON envelope file to the configured output directory.
Side Effects: Filesystem write of the output JSON file.
Usage Guidelines:
When to Use: Call when bridging CAD floor plans to energy certification workflows (CE3X-MCP-SERVER, CTE DB-HE, or RD 390/2021). Computes exterior wall surface areas, wall azimuth orientations (N, S, E, W) by normal vector geometry, associated window openings, and usable floor area.
Sibling Routing / Alternatives:
For generic drawing takeoffs, Excel spreadsheets, or FIEBDC-3 budgets, use
export_data.For spatial queries or room area schedules without thermal calculations, use
inspect_drawingormanage_entities(operations="area|...").
Parameters:
wall_height: Clear floor-to-ceiling height in meters. Default: 2.70.
climate_zone: CTE climate zone (e.g., "A3", "C1", "D3"). Default: "C1".
building_type: Building typology ("vivienda_individual", "bloque_viviendas", "terciario"). Default: "vivienda_individual".
filename: Output JSON filename. Default: "envolvente_ce3x.json".
Returns: JSON string containing CTE thermal envelope parameters, ready for direct ingestion by CE3X-MCP-SERVER.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | envolvente_ce3x.json | |
| wall_height | No | ||
| climate_zone | No | C1 | |
| building_type | No | vivienda_individual |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares read-only CAD behavior, states that it persists a standardized JSON file to the configured output directory, and flags the filesystem-write side effect explicitly. It omits overwrite/collision behavior, permissions, and error handling, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by clearly labeled Behavior, Usage Guidelines, Parameters, and Returns sections. Well organized and mostly tight, though the Returns paragraph partially duplicates what the output schema already conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, yet the description still adds mutation/persistence/side-effect context and full parameter semantics. Together with the sibling routing, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents all four parameters with units ('floor-to-ceiling height in meters'), valid CTE climate zone examples ('A3', 'C1', 'D3'), and building typology values ('vivienda_individual', 'bloque_viviendas', 'terciario') that are not represented as schema enums. Defaults are restated from the schema, which slightly duplicates structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Extract) and resource (CAD thermal building envelope parameters) with the intended domain (CE3X energy certification). It also names the sibling tools (export_data, inspect_drawing, manage_entities) it should not be confused with, so the agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit 'When to Use' condition (bridging CAD floor plans to CE3X/CTE DB-HE/RD 390 workflows) and an explicit 'Sibling Routing' block that names alternatives and the conditions selecting them (export_data for generic takeoffs, inspect_drawing for spatial queries). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_dataA
Extract drawing measurements, bill of quantities, budget standards, or plot vector PDF sheets.
Behavior:
Mutation: Strictly read-only for drawing geometry; does not alter CAD entities or model database.
Persistence: When format is "excel", "bc3", or "pdf", writes persistent files to configured output directory.
Side Effects: Filesystem file creation/overwrite in output directory. If format="json", purely returns in-memory payload without disk writes.
Usage Guidelines:
When to Use: Call to extract structured quantity takeoffs, generate Excel spreadsheets (.xlsx), export Spanish AECO construction budgets (.bc3 FIEBDC-3), plot publication vector PDFs (.pdf), or retrieve JSON drawing entities.
Sibling Routing / Alternatives:
For extracting thermal envelope parameters specifically formatted for energy certification in CE3X, use
export_ce3x_envelope.For interactive browser visualization of the plan, use
show_drawing_viewer.For spatial queries or bounding box summaries, use
inspect_drawing.
Parameters:
scope: Entity selection scope ("all", "selected"). Default: "all".
"all": Processes all entities across visible layers.
"selected": Restricts export to currently selected entities in CAD viewport.
format: Output serialization format ("json", "excel", "bc3", "pdf"). Default: "json".
"json": Returns parsed entity array directly to LLM context.
"excel": Generates multi-tab Excel workbook with layer summaries, lengths, and areas.
"bc3": Generates standard FIEBDC-3/2020 budget and measurement exchange file.
"pdf": Plots modelspace/paperspace to standard vector PDF 1.4 document.
filename: Output file name or relative path (e.g. "mediciones.xlsx", "presupuesto.bc3", "plano.pdf").
paper_size: Paper standard when format="pdf" ("A4", "A3", "A2", "A1", "A0"). Default: "A3".
Returns: JSON string containing export summary, file path, exported entity counts, or extracted entity data.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | all | |
| format | No | json | |
| filename | No | drawing_data.xlsx | |
| paper_size | No | A3 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: it states read-only-ness for geometry, that excel/bc3/pdf formats write persistent files to the output directory, that files may be created/overwritten, and that json is purely in-memory. This is exactly the safety and side-effect context an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Heavily structured with labeled sections and front-loaded, but somewhat verbose: the Returns section is redundant with the existing output schema and the mutation/persistence/side-effects bullets could be tightened. Still, nearly every line earns its place for a 4-parameter, no-annotation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation-capable export tool with no annotations and a 0%-covered schema, the description covers purpose, routing, side effects, per-parameter semantics, and return shape. An agent has everything required to call it correctly; the output schema further covers return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: every parameter (scope, format, filename, paper_size) is explained with its allowed values, defaults, and per-value behavior (e.g. what each format produces, pdf paper standards). It adds substantial meaning beyond the bare property names in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and enumerates the concrete resources extracted (drawing measurements, bill of quantities, budget standards, vector PDF sheets), and explicitly names sibling tools it is not (export_ce3x_envelope, show_drawing_viewer, inspect_drawing). An agent can disambiguate without reading any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit 'When to Use' section plus a 'Sibling Routing / Alternatives' list naming three alternatives with the exact condition that selects each (CE3X energy certification, browser visualization, spatial queries). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_drawingA
Inspect spatial intelligence, dimensions, geometric intersections, and object snaps.
Behavior:
Mutation: Strictly read-only; does not modify drawing entities, layers, or CAD state.
Persistence: No persistent side effects or disk modifications.
Side Effects: Computes spatial relationships in-memory from active CAD or DXF model.
Usage Guidelines:
When to Use: Call whenever the AI needs spatial intelligence (drawing extents, room schedules, what entity is located at coordinate X,Y, line crossings, or nearest snap points).
Sibling Routing / Alternatives:
For launching an interactive graphical web viewer for human visual inspection, use
show_drawing_viewer.For computing area or measuring specific entity handles, use
manage_entities(operations="area|...").For requesting interactive human mouse clicks in the CAD viewport, use
prompt_user.
Modes & Parameters:
mode: Inspection mode ("summary", "point", "intersections", "snap"). Default: "summary".
"summary": Global bounding box, room schedule, layer inventory, and ASCII minimap.
"point": Point-in-polygon raycasting query ("what room/space contains point X,Y?"). Requires
point="x,y"."intersections": Detect geometric crossings between entities. Optional:
handle1,handle2,layer."snap": Object snap assistant. Finds closest endpoint, midpoint, or center to
point. Requirespoint="x,y".
point: Coordinates "x,y" or "x,y,z" (required for "point" and "snap" modes).
handle1: Optional first entity handle to restrict intersection checks.
handle2: Optional second entity handle to test intersection against handle1.
snap_types: Comma-separated snap filters: "endpoint", "midpoint", "center". Default: "endpoint,midpoint,center".
tolerance: Search radius for snap points in drawing units. Default: 1.5.
layer: Optional layer name to filter intersection candidates.
Returns: JSON string with mode-specific spatial data, coordinates, and matched entities.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | summary | |
| layer | No | ||
| point | No | ||
| handle1 | No | ||
| handle2 | No | ||
| tolerance | No | ||
| snap_types | No | endpoint,midpoint,center |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It explicitly declares that the operation is strictly read-only, has no persistent side effects, and computes spatial relationships in-memory from the active CAD or DXF model, covering the key safety and side-effect concerns for a mutation-capable-looking tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized for a tool with seven parameters and four distinct modes. It is front-loaded with purpose, then behavior, usage, modes, and returns, with no redundant filler; each section earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 0% schema coverage, no annotations, and an output schema already present, the description supplies everything the agent needs: mode routing, parameter meaning, behavioral guarantees, and usage alternatives. It does not need to describe return values because an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully, and it does. It explains every parameter in context: allowed mode values and their specific behaviors, required point format for point/snap modes, optional handle filters, snap_types values, tolerance semantics, and layer filtering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (inspect) and enumerates the concrete resources it operates on: spatial dimensions, geometric intersections, and object snaps. It clearly distinguishes this tool from siblings through explicit routing guidance, so an agent can identify it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit 'When to Use' section and directly names alternatives such as show_drawing_viewer, manage_entities, and prompt_user, with the condition that selects each. This fully answers when to use this tool versus its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_annotationsA
Create automated architectural annotations, centroid room labels, and linear dimension chains.
Behavior:
Mutation: Mutates drawing by generating and placing new annotation text, dimensions, and leaders.
Persistence: Inserted annotations persist in DWG/DXF database upon save.
Side Effects: Auto-creates destination annotation layers (e.g. A-ANNO-TEXT, A-ANNO-DIMS) if nonexistent.
Usage Guidelines:
When to Use: Call to automatically label room centroids with computed areas (m²), generate overall or wall-by-wall linear dimension chains, or add leader callouts with arrowheads.
Sibling Routing / Alternatives:
For manually drafting single primitive dimensions or leaders with custom points, use
draw_entities(entities="dimension|... / leader|...").For modifying, moving, restyling, or deleting existing annotation entities, use
manage_entities.For room scheduling tables, use
manage_entities(operations="area_table|...").
Actions & Parameters:
"label_spaces": Places text label with room name and computed area at centroid of closed room spaces.
"auto_dimension": Generates exterior linear dimension chain along bounding box or wall segments.
"add_leader": Inserts architectural callout leader pointing to specified geometry.
Parameters:
action: Action to perform ("label_spaces", "auto_dimension", "add_leader"). Default: "label_spaces".
handles: Optional entity handle or list of handles to annotate. If None, processes all spaces.
style: Dimensioning style for "auto_dimension" ("overall" for global extents, "segments" for each wall). Default: "overall".
offset: Offset distance in drawing units between geometry and dimension line. Default: 1.0.
text_height: Text height for labels and dimensions in drawing units. Default: 0.35.
prefix: Text prefix added before calculated area value (e.g. "Sup = "). Default: "".
suffix: Text suffix appended after area value. Default: " m²".
layer: Target layer name (default: "A-ANNO-TEXT" for space labels, "A-ANNO-DIMS" for dimensions).
color: Optional color name or ACI number.
Returns: JSON string containing created annotation handles, count, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| layer | No | ||
| style | No | overall | |
| action | No | label_spaces | |
| offset | No | ||
| prefix | No | ||
| suffix | No | m² | |
| handles | No | ||
| text_height | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that this is a mutation, that results persist to the DWG/DXF on save, and that annotation layers are auto-created as a side effect. It stops short of failure modes, required permissions/active-drawing prerequisites, and undo/rollback semantics, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a one-line purpose, then clearly sectioned Behavior, Usage Guidelines, Actions, Parameters, and Returns. It is long, but the length is justified by 9 parameters; a few lines (e.g. restating defaults already in the schema) are mildly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no annotations, and an output schema (so return-format detail is optional), the description is nearly complete, covering actions, side effects, and sibling routing. It omits prerequisites like requiring an open/active drawing session and behavior on error, which a mutation tool of this complexity could reasonably state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does: every parameter is explained with meaning, units, and defaults (offset in drawing units, text_height, prefix/suffix examples, layer defaults per action, style='overall' vs 'segments', handles=None meaning process all spaces). This adds substantial meaning the bare schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create automated architectural annotations, centroid room labels, and linear dimension chains') and enumerates the three concrete actions it can perform. It also names the sibling tools it is NOT (draw_entities, manage_entities) so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to Use' conditions are given (label room centroids with areas, generate dimension chains, add leader callouts) plus a dedicated Sibling Routing section that names draw_entities, manage_entities, and the area_table operation as alternatives with the distinguishing condition for each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_blocksA
Create, insert, inspect, and manage reusable CAD blocks and attribute tags.
Behavior:
Mutation: Mutates drawing by adding block definitions (
create), inserting block references (insert), or updating attribute tags (set_attrs).list,info, andget_attrsare read-only.Persistence: Block definitions and inserted instances persist in the DWG/DXF database.
Side Effects: Auto-creates destination layer if nonexistent during insert.
Usage Guidelines:
When to Use: Call to insert reusable standard components (doors, windows, sanitaryware, electrical symbols, furniture), inspect block library definitions, or read/write block attribute tags (e.g. door width, fire rating).
Sibling Routing / Alternatives:
For drawing primitive 2D geometry (lines, rectangles, polylines), use
draw_entities.For transforming or deleting arbitrary entity instances, use
manage_entities.For external project references linked as DWG files, use
manage_xrefs.
Shorthand Grammar:
list: List all block definitions in drawing.
info|block_name|include: Get definition details and reference count (include: info, references, both).
insert|name|point|scale|rotation|layer|color: Insert block instance at point (e.g. insert|Door|10,20|1.5|90|walls|red).
create|name|handles|base_point|description: Create new block definition from existing entity handles.
get_attrs|handle: Query attribute key/value dictionary from a block reference handle.
set_attrs|handle|attributes_json: Set attribute values on a block reference handle (e.g. set_attrs|A1|{"TAG":"val"}).
Defaults: scale=1.0, rotation=0, layer=0, color=white.
Parameters:
operations: Shorthand string (one command per line) or JSON array of block operation objects.
Returns: JSON string containing per-operation execution results, block details, and inserted handles.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 mutation semantics per operation, flags which commands are read-only (list, info, get_attrs), states persistence in the DWG/DXF database, and reveals a side effect (auto-creating the destination layer on insert). Missing only permission/auth requirements and error-failure behavior, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded with Purpose, Behavior, Usage Guidelines, and Grammar headings, so an agent can stop reading early once it has what it needs. The grammar section is long but each line maps to a distinct operation, so little is padding; a slightly tighter parameter/default treatment would earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter dispatcher tool with an output schema, the description supplies everything needed to invoke it correctly: operation grammar, defaults, examples, side effects, and routing to alternatives. The return values are covered by the output schema, and the description only summarizes them, which is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single parameter is a freeform `operations` string, so the description must compensate and largely does: it documents the shorthand grammar command-by-command, enumerates valid values for `include`, lists defaults (scale=1.0, rotation=0, layer=0, color=white), and gives worked examples. Minor gap: the schema declares type string while the description also allows a JSON array form, and valid color/layer token syntax is only shown by example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb set (create, insert, inspect, manage) against a specific resource (reusable CAD blocks and attribute tags), and explicitly names the sibling tools it should not be confused with (draw_entities, manage_entities, manage_xrefs). An agent can distinguish it from every listed sibling without opening a single schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Has a dedicated 'When to Use' section with concrete trigger scenarios (doors, windows, sanitaryware, symbols) and a Sibling Routing block that names three alternatives with the condition that selects each. Nothing about tool selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_entitiesA
Modify, select, transform, restyle, compute areas, and manage existing drawing entities.
Behavior:
Mutation: Mutates drawing entities (positions, rotations, layers, colors, attributes).
Destructive Actions: Flag
delete|handlesas DESTRUCTIVE; permanently deletes specified entity handles from drawing.Persistence: Geometric modifications persist in drawing database upon save.
Side Effects:
copy/pasteaccesses internal CAD clipboard buffers;area_tablecreates a new AutoCAD schedule table.
Usage Guidelines:
When to Use: Call to modify existing drawing elements (select, move, rotate, scale, change color/layer, copy, paste, delete, measure area, insert area schedule table).
Sibling Routing / Alternatives:
For creating new geometry from scratch, use
draw_entities.For inserting or creating reusable blocks, use
manage_blocks.For whole-drawing spatial inspection or raycasting without modifying anything, use
inspect_drawing.For layer lifecycle (create/delete layers, template application), use
manage_layers.
Shorthand Grammar (one command per line or semicolon-separated):
select|by|value → select|layer|walls (by: color, layer, type)
move|handles|offset_x|offset_y → move|A1,B2|10|5
rotate|handles|angle|cx|cy → rotate|A1|45|0|0 (angle in degrees)
scale|handles|factor|cx|cy → scale|A1|2.0|0|0
set_color|handles|color → set_color|A1,B2|red
set_layer|handles|layer → set_layer|A1|walls
set_color_bylayer|handles → set_color_bylayer|A1,B2
copy|handles → copy|A1,B2
paste|base_point → paste|100,200
delete|handles → delete|A1,B2 (DESTRUCTIVE)
area|handles → area|A1,B2 (or area|layer|A-ROOMS)
area_table|ins_x,ins_y|layer → area_table|0,0|A-ROOMS|Cuadro Áreas
Parameters:
operations: Shorthand string (one operation per line) or JSON array of entity operation objects.
Returns: JSON string containing per-operation execution results, affected handles, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that entities are mutated, that delete|handles is DESTRUCTIVE and permanently removes handles, that changes persist on save, and that copy/paste touches internal CAD clipboard buffers while area_table creates a schedule table. It does not cover permissions/auth requirements, undo/rollback, or what happens when one operation in a multi-op batch fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with the purpose and organized under Behavior / Usage Guidelines / Grammar / Parameters headers, and the grammar block earns its length by being the only parameter documentation available. There is mild redundancy, as the operation list in 'When to Use' repeats items already covered by the purpose line and grammar.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the brief Returns note is sufficient and no return-value detail is owed. For a mutation tool with zero annotation coverage the description supplies the safety and side-effect context an agent needs, though batch atomicity and error/partial-failure semantics remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there is a single parameter, yet the description compensates with a full shorthand grammar including argument order and worked examples for every operation, which the schema does not provide at all. The JSON-array alternative form ('JSON array of entity operation objects') is named but never specified, leaving that half of the parameter contract under-documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states specific verbs (modify, select, transform, restyle, compute areas) and the resource (existing drawing entities), which is precise for a multi-operation tool. It also names the sibling tools it is not (draw_entities, manage_blocks, inspect_drawing, manage_layers), so an agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is an explicit 'When to Use' line enumerating the supported operations, plus a dedicated 'Sibling Routing / Alternatives' section that names four alternatives and the exact condition selecting each (create geometry, insert blocks, non-mutating inspection, layer lifecycle). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_filesA
Open, save, create, close, list, and switch active CAD drawing files (.dwg, .dxf).
Behavior:
Mutation: Modifies document collection state.
savewrites files to disk;newinitializes fresh drawing;closeunloads drawing from CAD memory.Destructive Actions: Flag
close|falseas destructive if unsaved changes exist (discards edits without saving).Persistence: Saves document files permanently to disk in DWG or DXF formats.
Side Effects: Switches active document context for all subsequent CAD operations.
Usage Guidelines:
When to Use: Call to manage CAD file lifecycle (create blank drawing, save backup or work in progress, list open files, close tab, or switch active drawing).
Sibling Routing / Alternatives:
For plotting or exporting data/measurements into PDF, Excel, or BC3, use
export_data.For referencing external drawings without opening them as active editing documents, use
manage_xrefs.For CAD connection lifecycle (connecting to CAD software, status, undo/redo), use
manage_session.
Shorthand Grammar:
new: Create a new blank drawing.
save|filename|format: Save drawing to disk (formats: dwg, dxf, pdf. Default: dwg).
close|save_changes: Close active drawing (save_changes: true/false. Default: false).
list: List all currently open drawings and indicate active file.
switch|drawing_name: Switch active document focus to specified open drawing.
Parameters:
operations: Shorthand string (one command per line) or JSON array of file operation objects.
Returns: JSON string containing per-operation execution results, active file names, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it states that the tool mutates document-collection state, that save persists to disk, that close|false is destructive and discards unsaved edits, and that switching changes active context for all subsequent operations. The gaps are unmentioned auth/permission requirements and any failure or error semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core purpose and then clearly sectioned into Behavior, Usage, Grammar, Parameters and Returns; each block is useful. The Returns block is redundant since an output schema already exists, which keeps it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with no annotations, the description supplies the behavior, routing, and per-command syntax an agent needs, and return-value detail is already covered by the output schema. Nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single required parameter, so the description must compensate, and it largely does: it documents the shorthand grammar for each command (new, save|filename|format with default dwg, close|save_changes default false, list, switch|drawing_name) plus the accepted formats. It is weaker on the alternate 'JSON array of file operation objects' form, whose object fields are never specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific set of verbs (open, save, create, close, list, switch) applied to a named resource (CAD drawing files .dwg/.dxf), so the tool's scope is unambiguous despite the generic name 'manage_files'. It also names the siblings it must not be confused with, letting an agent differentiate without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'When to Use' section enumerates concrete triggers (create blank drawing, save work in progress, close tab, switch active drawing) and the 'Sibling Routing' section explicitly assigns alternatives with the condition that selects them: export_data for plotting/export, manage_xrefs for non-active references, manage_session for connection lifecycle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_layersA
Create, modify, toggle visibility, restyle, and apply standardized AECO layer templates.
Behavior:
Mutation: Mutates drawing layer table (creates layers, renames, changes colors, sets lineweights).
Destructive Actions: Flag
delete|nameas destructive; removes target layer definition (layer cannot contain entities or be active layer 0).Persistence: Layer definitions, visibility states, colors, and lineweights persist in DWG/DXF database.
Side Effects: Toggling layers (
on/off) updates viewport entity visibility immediately.
Usage Guidelines:
When to Use: Call to organize drawing structure, enforce architectural CAD layer standards (
template|aeco), isolate or hide geometry, set lineweights, or create target layers before drawing.Sibling Routing / Alternatives:
For creating geometry on specific layers, use
draw_entities(entities="line|...|layer").For moving existing entities between layers, use
manage_entities(operations="set_layer|...").For paperspace layout sheets and viewports, use
manage_layouts.
Shorthand Grammar:
create|name|color|lineweight: Create new layer (e.g. create|walls|red|50).
delete|name: Delete empty layer (destructive).
rename|old|new: Rename existing layer.
on|names: Turn on layers (comma-separated, e.g. on|walls,doors).
off|names: Turn off layers (e.g. off|furniture).
set_color|name|color: Change layer color (e.g. set_color|walls|red).
template|preset: Batch-create standard layer palette (presets: aeco/cte, aia, mep).
is_on|name: Query if layer is currently visible.
list: List all layers in drawing.
info: Detailed layer summary with colors and states.
Defaults: color=white, lineweight=25 (0.25mm), template preset=aeco.
Parameters:
operations: Shorthand string (one command per line) or JSON array of layer operation objects.
Returns: JSON string containing per-operation execution results, layer list, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 thoroughly: it discloses mutation of the layer table, destructive semantics for delete (including the constraint that the layer must be empty and not layer 0), persistence behavior in DWG/DXF, and the immediate viewport side effect of on/off toggling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then cleanly sectioned into Behavior, Usage Guidelines, Grammar, Defaults, Parameters, and Returns. Every line is functional, though the grammar enumeration is lengthy and could be marginally tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with an output schema present, the description covers behavioral traits, destructive constraints, usage routing, accepted command syntax, and defaults. Return values are summarized and backed by the output schema, so no agent-critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single `operations` parameter has 0% schema coverage, yet the description fully compensates with a complete shorthand grammar (command|arg syntax per operation), a list of valid template presets, an alternative JSON array form, and documented defaults for color and lineweight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific multi-verb statement of scope ('Create, modify, toggle visibility, restyle, and apply standardized AECO layer templates') tied to the layer-table resource. An agent can immediately distinguish it from sibling tools like manage_entities and draw_entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to Use' section enumerates concrete triggers (organize drawing structure, enforce CAD standards, isolate geometry, create target layers). The 'Sibling Routing / Alternatives' block names three alternatives with the exact condition that selects each, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_layoutsA
Manage AutoCAD paperspace layouts, presentation sheets, viewports, and AECO title blocks.
Behavior:
Mutation: Mutates paperspace configurations, layout dictionaries, and sheet entities.
Destructive Actions: Flag action="delete" as DESTRUCTIVE; permanently removes target layout sheet and all entities/viewports placed upon it. Cannot delete active layout or "Model" tab.
Persistence: Layout definitions and viewport scales persist in drawing database upon save.
Side Effects: Switches active tab in CAD interface when action="activate" or action="create" is called.
Usage Guidelines:
When to Use: Call to compose architectural presentation sheets, configure standard paper formats (A4-A0), insert scaled modelspace viewports, add standardized title blocks, or switch active sheets.
Sibling Routing / Alternatives:
For adjusting camera zoom, pan, or visual style inside active modelspace viewport, use
manage_view.For exporting or plotting finished sheet to vector PDF document, use
export_data(format="pdf").For creating 2D/3D geometry in modelspace, use
draw_entities.
Actions & Per-Action Required Parameters:
"create": Create new layout sheet with border frame, viewport, and title block.
Required:
name,paper_size,orientation,scale.
"list": List all layouts in drawing with active status.
Required: (none).
"activate": Switch active CAD workspace tab to this layout.
Required:
name.
"delete": (DESTRUCTIVE) Permanently delete named layout sheet.
Required:
name(cannot delete active layout or "Model").
"add_viewport": Add architectural viewport to existing layout.
Required:
name,scale. Optional:model_center,viewport_rect.
"add_titleblock": Add AECO standard title block with metadata.
Required:
name,title,author,sheet_number.
Parameters:
action: Action to perform ("create", "list", "activate", "delete", "add_viewport", "add_titleblock"). Default: "create".
name: Layout sheet name (e.g. "Plano_01_Distribucion").
paper_size: Paper standard ("A4", "A3", "A2", "A1", "A0", "LETTER", "TABLOID"). Default: "A3".
orientation: Sheet orientation ("landscape", "portrait"). Default: "landscape".
scale: Architectural scale ("1:50", "1:100", "1:20", "1:200", "1:500", "1:10", "1:1"). Default: "1:50".
model_center: Center coordinate in modelspace to focus ("x,y", e.g. "15.0, 10.0").
viewport_rect: Viewport center and dimensions in paper mm ("cx,cy,w,h", e.g. "210,148,380,260").
title: Project or sheet title for title block.
author: Designer, collegiate engineer, or author name.
date: Date string for title block.
sheet_number: Sheet index or code (e.g. "PL-01", "1/4"). Default: "1/1".
unit: Model units ("m" for meters, "mm" for millimeters). Default: "m".
Returns: JSON string with action result, layout details, and success status.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| name | No | ||
| unit | No | m | |
| scale | No | 1:50 | |
| title | No | ||
| action | No | create | |
| author | No | ||
| paper_size | No | A3 | |
| orientation | No | landscape | |
| model_center | No | ||
| sheet_number | No | 1/1 | |
| viewport_rect | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: it discloses mutation scope, marks action="delete" as destructive with the exact blast radius (all entities/viewports) and its guard rails (cannot delete active layout or Model tab), notes persistence on save, and warns about the active-tab UI side effect. Only permission prerequisites and failure modes (e.g. duplicate name) are unstated, which is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded and organized under Behavior / Usage / Actions / Parameters headings, with the destructive warning surfaced early. It is long, and the per-action required-parameter list partly restates information in the Parameters section, but most of the length is warranted by 12 undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter multi-action mutation tool with no annotations and 0% schema coverage, the description supplies everything needed: action enumeration, per-action required params, defaults, formats, destructive semantics, and side effects. An output schema exists, so the brief Returns line is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 12 parameters, so the description must compensate entirely, and it does: every parameter gets meaning, allowed values, defaults, and concrete format examples (e.g. "x,y", "cx,cy,w,h", "PL-01"). The per-action required/optional mapping is additional value the schema does not express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line names a specific resource domain (paperspace layouts, presentation sheets, viewports, AECO title blocks) and the per-action breakdown pins down each operation precisely. It is clearly distinguishable from siblings like manage_view, draw_entities, and export_data, which it explicitly names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Usage Guidelines section states when to call it (compose sheets, configure paper formats, insert viewports, add title blocks, switch sheets) and provides explicit sibling routing with conditions for three alternatives. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_sessionA
Manage CAD application lifecycle, COM connection, viewport controls, and undo/redo history.
Behavior:
Mutation: Controls external CAD application process, active COM session, and editor state.
Persistence: Connection state persists across subsequent tool calls in the MCP server process.
Side Effects: Can launch CAD application process (connect), terminate session (disconnect), or launch local web dashboard in browser (open_dashboard).
Usage Guidelines:
When to Use: Call to verify CAD connectivity, connect to running CAD, inspect CAD vendor info, or perform composite session operations (e.g. connect + zoom_extents + status).
Sibling Routing / Alternatives:
For pure camera, zoom, 3D viewpoints, and visual styles, prefer
manage_view.For opening, saving, closing, or switching drawing files, use
manage_files.For creating geometry, use
draw_entities.
Actions & Parameters:
connect: Launches and connects to auto-detected CAD software (AutoCAD, ZWCAD, GstarCAD, BricsCAD).
disconnect: Unlinks from active CAD COM session.
status: Returns current connection status, active adapter type, and drawing name.
list_supported: Lists installed and supported CAD application vendors.
check_running: Detects running CAD processes without attaching.
zoom_extents: Zooms active viewport to fit drawing extents.
screenshot: Captures active CAD window raster screenshot as base64 PNG.
export_view: Generates internal drawing raster preview.
undo: Steps back in drawing history. Parameter:
count(int, default: 1).redo: Steps forward in drawing history. Parameter:
count(int, default: 1).open_dashboard: Launches web dashboard in browser. Parameters:
host,port.
Parameters:
operations: Shorthand string or JSON array of session action objects.
Returns: JSON string with per-operation status, connection details, and results.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 mutation scope, that connection state persists across subsequent calls, and the concrete side effects (launching a CAD process, terminating a session, opening a browser dashboard). It stops short of failure modes, permissions, or what happens when no CAD app is installed, which is the only remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Clearly front-loaded with labeled sections (Behavior, Usage Guidelines, Actions & Parameters, Returns) that make it scannable. It is long, but the length is largely justified by enumerating ten distinct session actions; the Returns section is somewhat redundant given an output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers lifecycle, persistence, side effects, action catalogue, and routing to alternatives — ample for a composite session tool, and the presence of an output schema means return values need no elaboration. Missing only error/failure behavior and prerequisite conditions for connect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single 'operations' parameter is an opaque string, so the description must compensate — and it does, explaining that it is a shorthand string or JSON array of session action objects, then enumerating all ten actions with their own parameters (count default 1, host, port). The only weakness is that the exact string/JSON grammar of 'operations' remains implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Manage CAD application lifecycle, COM connection, viewport controls, and undo/redo history'), and the sibling-routing section explicitly separates it from manage_view, manage_files, and draw_entities. An agent can distinguish this from every named alternative without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to Use' plus a 'Sibling Routing / Alternatives' block naming three siblings and the exact condition that selects each ('For pure camera, zoom... prefer manage_view'). This is textbook when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_viewA
Control CAD camera viewport, display zoom, 3D viewpoint presets, and visual shading styles.
Behavior:
Mutation: Modifies interactive viewport display state (zoom factor, center point, view direction, visual style) in the active CAD editor window. Does NOT modify drawing database entities.
Persistence: Viewport changes persist in the active drawing session until manually adjusted or closed.
Side Effects: Refreshes display graphics in active CAD GUI. In screenshot/preview operations, reads screen framebuffer and returns base64 image data.
Usage Guidelines:
When to Use: Call whenever navigating the drawing, zooming to extents (ze), zooming into specific coordinates (zw), switching to 3D axonometric perspectives (preset|iso_sw), changing shading (style|realistic), or stepping through history (undo/redo).
Sibling Routing / Alternatives:
For creating, configuring, or activating paperspace sheet presentations and architectural viewports, use
manage_layouts.For launching an interactive web-based canvas viewer for human inspection in the browser, use
show_drawing_viewer.For exporting vector PDF sheets or SVG files to disk, use
export_data.
Shorthand Grammar (one command per line or semicolon-separated):
ze (or zoom_extents): Zoom to fit all drawing entities in viewport.
zw|x1,y1|x2,y2 (or zoom_window): Zoom into rectangular window bounds.
zc|x,y|mag (or zoom_center): Center view on coordinate (x,y) with optional magnification factor.
preset|top|bottom|front|back|left|right|iso_sw|iso_se|iso_ne|iso_nw: Switch 3D or orthographic viewpoint.
style|2d|wireframe|conceptual|realistic|shaded|hidden: Set visual rendering mode.
screenshot / preview: Capture visual raster snapshot of current drawing viewport.
undo|count / redo|count: Step backward or forward in CAD session history (default count: 1).
Parameters:
operations: Shorthand string commands (one per line) or JSON array of operation objects.
Returns: JSON string containing per-operation execution results, success status, and details.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so: it states the mutation is viewport-only and explicitly 'Does NOT modify drawing database entities,' notes persistence until manual adjustment or close, and discloses side effects including the base64 framebuffer return from screenshot/preview. That is exactly the mutation-safety context annotations would otherwise supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and organized under clear headers (Behavior, Usage Guidelines, Shorthand Grammar, Parameters, Returns), so it is scannable. It runs long, with some overlap between the Behavior section and the grammar list (e.g., screenshot/preview described twice), but given 0% schema coverage the grammar list is load-bearing rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, command-string tool with no annotations, the description covers purpose, mutation scope, persistence, side effects, invocation grammar, and routing to alternatives. An output schema exists, and the description appropriately limits itself to a one-line Returns note instead of duplicating return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'operations' parameter, so the description must compensate and does: it documents the accepted string grammar command-by-command (ze, zw|x1,y1|x2,y2, zc|x,y|mag, preset, style, screenshot, undo/redo) including defaults for undo/redo count. This adds far more than the bare 'type: string' schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: 'Control CAD camera viewport, display zoom, 3D viewpoint presets, and visual shading styles.' The explicit sibling-routing block distinguishes it from manage_layouts, show_drawing_viewer, and export_data, so an agent can select it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'When to Use' list enumerates concrete triggers (zooming to extents, switching to axonometric views, changing shading, undo/redo), and 'Sibling Routing / Alternatives' names three alternatives with the condition that selects each. This is explicit when-to-use plus when-not-to-use coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_xrefsA
Manage external CAD references (DWG XREFs) and raster cartography or orthophoto underlays.
Behavior:
Mutation: Modifies drawing reference table and external block definitions.
Destructive Actions: Flag
detach|nameas destructive; removes reference link and unbinds geometry/images from drawing.Persistence: XREF and raster link paths persist in DWG/DXF database upon save.
Side Effects: Reads external files from disk at specified paths during attachment.
Usage Guidelines:
When to Use: Call to overlay external project files (structural models, MEP designs, topographies, aerial orthophotos, scans) as linked external references without duplicating geometry.
Sibling Routing / Alternatives:
For inserting self-contained reusable CAD blocks embedded in the current drawing, use
manage_blocks.For opening, saving, or switching between independent drawing documents, use
manage_files.
Shorthand Grammar:
attach|path|[x,y]|[scale]|[rotation]: Attach DWG external reference.
raster|path|[x,y]|[scale]: Attach raster image underlay (PNG, JPG, TIFF).
list: List all currently attached XREFs and raster images.
reload|name: Reload updated external reference file from disk.
detach|name: Unlink and remove reference from drawing (destructive).
Parameters:
input: Shorthand string, dictionary, or list containing action and parameters.
Returns: JSON string with operation status, attached reference names, and paths.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and succeeds. It discloses mutation of the reference table and block definitions, marks detach|name as destructive with unbinding of geometry/images, notes persistence of link paths on save, and states that external files are read from disk during attachment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-sectioned and front-loaded, with behavior, usage, and grammar clearly separated. The Returns section is redundant because an output schema exists, but this is a minor efficiency issue rather than a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is very complete for a complex tool with no annotations and no schema parameter descriptions, and the output schema covers return values. However, it does not fully specify the dictionary or list input shapes beyond saying they contain action and parameters, leaving a small gap for non-shorthand invocations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the single input parameter is an unconstrained anyOf string/array/object. The description compensates by giving a clear shorthand grammar for every supported action, including attach, raster, list, reload, and detach, along with required arguments such as path, coordinates, scale, rotation, and name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: managing external CAD references (DWG XREFs) and raster cartography or orthophoto underlays. It later distinguishes this tool from manage_blocks and manage_files, so an agent can route correctly without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool: overlaying external project files as linked references without duplicating geometry. It also names alternatives and their selection conditions: manage_blocks for embedded reusable CAD blocks and manage_files for independent drawing documents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prompt_userA
Prompt the human user for interactive mouse clicks, coordinate picking, or command line input in CAD.
Behavior:
Mutation: Strictly read-only for drawing geometry; does not alter drawing database.
Persistence: No persistent side effects or disk modifications.
Side Effects: Pauses execution to display prompt message in CAD command line and crosshair cursor, awaiting user mouse click or keyboard input. Captures ESC / cancellation gracefully.
Usage Guidelines:
When to Use: Call for Human-in-the-Loop workflows whenever the AI needs the user to click a coordinate on screen, pick an entity visually with the crosshairs, measure a distance interactively, or confirm a string prompt.
Sibling Routing / Alternatives:
For automated programmatic coordinate queries without user intervention, use
inspect_drawing.For selecting entities programmatically by layer/color/type, use
manage_entities(operations="select|...").For launching an interactive web-based canvas viewer in the browser, use
show_drawing_viewer.
Shorthand Grammar:
point|message|[base_x,base_y]: Prompts user to click a point in CAD viewport (e.g. point|Click door hinge point).
entity|message: Prompts user to click an entity on screen (returns entity handle, type, and layer).
distance|message|[base_point]: Prompts user to pick two points or measure distance in CAD.
string|message: Prompts user to type text in CAD command bar.
Parameters:
input: Shorthand string (action|message|optional_args), dictionary, or list.
Returns: JSON string containing user response, picked coordinates (x, y, z), picked entity handles, or cancellation status.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and meets it: it declares the operation read-only with respect to drawing geometry, states there are no persistent side effects, and crucially discloses the blocking behavior ('Pauses execution ... awaiting user mouse click or keyboard input') plus graceful ESC/cancellation handling. For a tool that halts the agent loop on human input, this is exactly the behavioral context needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then cleanly sectioned into Behavior, Usage Guidelines, Grammar, Parameters and Returns, so an agent can skim to what it needs. Slightly heavier than necessary: the Returns section restates information that an output schema already supplies, and the shorthand grammar, while useful, is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description does not need to own return-value documentation, and it covers everything else a caller needs: the blocking/human-in-the-loop nature, the cancellation path, exact input grammar, and routing away from non-interactive siblings. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% on a single, loosely-typed anyOf parameter, so the description must compensate and does: it explains that input is a shorthand string/dictionary/list and gives the full 'action|message|optional_args' grammar with four concrete action variants and expected return payloads per action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Prompt) with a specific resource (the human user) and enumerates the exact interaction types: mouse clicks, coordinate picking, command line input in CAD. This is clearly distinguishable from siblings like inspect_drawing and show_drawing_viewer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to Use' block names human-in-the-loop workflows, and the 'Sibling Routing / Alternatives' section routes three named siblings (inspect_drawing for programmatic queries, manage_entities for programmatic selection, show_drawing_viewer for browser canvas) with the condition that selects each. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_drawing_viewerA
Generate and launch an interactive HTML5 CAD Canvas viewer in the web browser.
Behavior:
Mutation: Strictly read-only for CAD geometry; does not alter drawing database or active viewport.
Persistence: Saves a standalone HTML viewer file to the configured output directory.
Side Effects: Writes a self-contained HTML file to local disk. If open_browser is True, spawns an external process to open the system default web browser.
Usage Guidelines:
When to Use: Call when a human user requests interactive visual exploration, panning/zooming, or clicking on rooms/layers in a graphical UI.
Sibling Routing / Alternatives:
For programmatic spatial queries (bounding box, point raycasting, snap points, ASCII map), use
inspect_drawing.For exporting static documents or publication files (vector PDF, BC3, Excel), use
export_data.For controlling viewport zoom/camera inside the active CAD software window, use
manage_view.
Parameters:
filename: Output HTML file name or relative path (default: 'visor_cad.html').
open_browser: Whether to automatically launch default web browser (default: True).
Returns: JSON string with status, absolute HTML file path, entity count, and browser launch result.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | visor_cad.html | |
| open_browser | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so: it declares read-only semantics for CAD geometry, discloses that a standalone HTML file is written to disk, and warns that open_browser=True spawns an external browser process. These are exactly the side-effect details an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then organized into Behavior, Usage, Parameters and Returns sections that are easy to scan. Minor redundancy between 'Saves a standalone HTML viewer file' and 'Writes a self-contained HTML file to local disk.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, zero-annotation tool, the description covers purpose, side effects, routing, parameter meaning and a brief return summary (status, path, entity count, launch result). An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain both parameters, and it does: filename is an output file name or relative path, open_browser controls automatic browser launch. It adds path semantics beyond the bare schema types, though the defaults it restates are already visible in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Generate and launch an interactive HTML5 CAD Canvas viewer in the web browser.' This is clearly distinguishable from siblings like inspect_drawing or manage_view, which are named explicitly later.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit 'When to Use' condition (human requests interactive panning/zooming or clicking) and a routing block that names three alternatives with the exact condition that selects each. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
v0.1.0- First observed
draw_entities - First observed
export_ce3x_envelope - First observed
export_data - First observed
inspect_drawing - First observed
manage_annotations - First observed
manage_blocks - First observed
manage_entities - First observed
manage_files - First observed
manage_layers - First observed
manage_layouts - First observed
manage_session - First observed
manage_view - First observed
manage_xrefs - First observed
prompt_user - First observed
show_drawing_viewer
TDQS
Scored across 15 tools
Several tools overlap: manage_session and manage_view both expose zoom/screenshot/undo, while draw_entities, manage_annotations, and manage_entities all create or manipulate dimensions/text/areas, and export_data overlaps with export_ce3x_envelope. The sibling routing guidance helps, but several boundaries remain blurry enough to risk misselection.
All 15 tools use lower_snake_case and follow a predictable action-first verb_noun pattern (manage_*, draw_entities, export_data, prompt_user, inspect_drawing, show_drawing_viewer). The longer phrase and acronym in export_ce3x_envelope do not break the overall consistency.
15 tools sit at the upper end of the healthy range and cover the major CAD domains without becoming unmanageable. However, the overlap between session/view, draw/annotations, and export/CE3X suggests a few tools could be consolidated, so the count is slightly heavy rather than perfectly scoped.
The surface covers connection/session management, file lifecycle, drawing, layers, entities, blocks, xrefs, annotations, layouts, inspection, user prompting, viewer generation, and multiple export formats. Minor gaps remain, such as explicit block-definition deletion or dedicated text-style management, but core workflows are well supported.
Maintenance
Related MCP Connectors
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
B2B, GovCon & LegalTech MCP server for live RFPs, contract parsing, compliance & proposal tools.
AI Hub for AEC — 50+ 3D formats, clash detection, ACC integration via Autodesk Platform Services.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server for Autodesk Revit (BIM) with 705+ API endpoints. Enables AI agents to create walls, place doors/windows, generate sheets, manage views, and produce construction documents via the Model Context Protocol. Uses named pipes for zero-crash Revit integration.22MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes CAD geometry reasoning over STEP files to LLMs, allowing natural language queries about parts, assemblies, dimensions, holes, and mass properties.-
- AlicenseNot gradedqualityCmaintenanceMCP server for Autodesk Inventor that provides 32 tools for parametric control of CAD models via COM automation.GPL 3.0
- AlicenseAqualityCmaintenanceMCP server for full AutoCAD automation, AutoCAD LT automation, and headless DXF generation. It provides 8 consolidated tools for drawing, entity, layer, block, annotation, P&ID, view, and system operations via MCP stdio transport.1237MIT