AutoCAD MCP Native Bridge
Provides tools for interacting with AutoCAD drawings, including reading drawing state, units, extents, layers, entities, dimensions, and text; filtering and inspecting objects; and performing native editing operations such as creating, modifying, copying, moving, rotating, mirroring, offsetting, arraying, and deleting entities via the AutoCAD API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AutoCAD MCP Native Bridgecheck the AutoCAD bridge status and summarize the current drawing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AutoCAD MCP Native Bridge
中文
AutoCAD MCP Native Bridge 是 Windows 本机 MCP 桥接项目。Node.js MCP 服务通过命名管道与 AutoCAD 进程内的 .NET 插件通信,使兼容 MCP 客户端能够读取图纸状态、检查几何,并通过 AutoCAD API 执行编辑操作。
实机验证范围:AutoCAD 2025 / R25.0 / Windows x64,已完成安装、服务配置和
get_bridge_status连接测试。 安装器按本机 AutoCAD API 和运行时编译 2020–2027 插件;除 2025 实机验证外,其它版本仍需对应 CAD 主机加载/连接测试,不将“能编译”当作“实机兼容”。
Windows 安装器
仓库提供 installer/ WinForms 连接器:扫描 AutoCAD 2020–2027 并显示构建号;扫描并支持 OpenAI Codex、DeepSeek Harness 两种 MCP 客户端;安装时依据所选 AutoCAD 的本机 API 和运行时编译插件,部署便携 Node.js/MCP 服务,并写入所选 AI 客户端配置。状态检测分开报告 AutoCAD 插件握手、MCP tools/list 工具发现和 AI 客户端配置。AutoCAD 2020 使用 .NET Framework 4.7、2021–2024 使用 .NET Framework 4.8;2025/2026 按本机运行时选 .NET 8 或 10,2027 使用 .NET 10。AutoCAD 2027 对应 R26.0。
构建安装器:使用 Windows .NET 8 SDK 运行 dotnet publish installer/AutoCadMcpInstaller.csproj -c Release -o installer/publish。单文件输出为 installer/publish/AutoCadMcpInstaller.exe。
功能
读取活动图纸、单位、范围、图层、模型空间实体、尺寸和文字。
按类型、图层和条件筛选对象,读取实体详细属性。
创建/编辑线、圆、多段线、弧、椭圆、文字、尺寸、填充、图层和块。
执行复制、移动、旋转、镜像、偏移、阵列、删除和属性修改。
通过
list_tools/cad_call发现和调用原生操作。preview_drawing_plan与apply_drawing_plan支持批量计划验证和事务应用。MCP 使用 stdio;AutoCAD 端只监听本机命名管道
AutoCAD_MCP_<年份>_V2,不开放 TCP 端口、不使用 OAuth。
要求
Windows x64;AutoCAD 2020–2027(安装时需要相应 API 文件和可识别的 .NET 运行时)。
安装器可部署便携 Node.js LTS 和从 Microsoft 官方源校验下载的 .NET SDK;编译阶段需要访问 GitHub 源码与 NuGet。
Windows x64 上的 OpenAI Codex 或 DeepSeek Harness。其他 MCP 客户端可手动配置 stdio 服务,目前不会由连接器自动发现/管理。
安装器需要所选 AutoCAD 版本的 managed API DLL;插件按对应本机 API 编译。
快速安装
从 GitHub Releases 下载 AutoCadMcpInstaller.exe,运行后选择 AutoCAD 版本和已检测的 AI 客户端,再点“安装/修复”。安装期间关闭 AutoCAD。安装器会备份旧插件和所选客户端配置,并只将本插件 bundle 子树追加到对应 AutoCAD 配置的 TRUSTEDPATHS(不关闭 SECURELOAD)。打开 AutoCAD 和所选 AI 客户端后点“测试 MCP 连接”;该检查分别报告 CAD 插件响应、MCP 工具清单能否发现和客户端配置是否写入。AI 客户端需重启/新建会话,实际工具可见性还应在客户端内核实。
手动运行 MCP 服务或开发服务端时,可以从源码安装:
git clone https://github.com/yanmiong/autocad-mcp-native.git
cd autocad-mcp-native
npm ci
npm test
npm run check重启/新建 AI 会话,先调用 get_bridge_status、drawing_summary 等只读工具确认连接,再进行写操作。完整安装、更新、卸载说明见 docs/安装与使用.md,故障排查见 docs/故障排查.md,工具参数见 docs/API.md。
安全建议
初次使用采用只读检查;编辑前备份源 DWG,确认活动图纸路径。
复杂修改先预览绘图计划,再显式应用;超时后先检查当前图纸,不要盲目重放。
不要加载来源不明的插件,不要为了方便全局关闭 AutoCAD 安全加载。
不要将含客户设计、个人路径、日志或凭据的内容提交到公开仓库。
开发与测试
npm ci
npm test
npm run check本地 MCP 测试共 7 项,不要求运行 AutoCAD;另有安装器兼容性测试覆盖 AutoCAD 系列映射、运行时识别与构建目标选择。两者均不等于实时 AutoCAD 宿主集成验证。插件按本机版本构建示例:
powershell -ExecutionPolicy Bypass -File .\scripts\Build-AutoCADPlugin.ps1 `
-CadYear 2025 -DotNetMajor 8 `
-AutoCADDir "C:\Program Files\Autodesk\AutoCAD 2025" `
-OutputDirectory "$env:TEMP\AutoCadMcpBuild"路线图
对 AutoCAD 2020–2027 各运行时组合完成实机加载与连接测试,并在兼容矩阵中记录结果。
完善安装状态、更新与回滚界面。
对新发布的 AutoCAD 主版本及时增加运行时/API 映射和对应测试。
项目许可见 LICENSE;贡献流程见 CONTRIBUTING.md。
Related MCP server: autocad-mcp
English
AutoCAD MCP Native Bridge connects a Node.js MCP server to an in-process .NET plug-in in AutoCAD through a local Windows named pipe. It supports drawing inspection and native editing operations for MCP clients.
Host integration verified so far: AutoCAD 2025 / R25.0 on Windows x64. The installer compiles against the selected installation's API and runtime; other supported year/runtime combinations still require host load and pipe-connection tests. Do not manually load a prebuilt DLL into a different release. See the Chinese installation guide and docs/API.md. Licensed under MIT.
Available Tools
23 toolsapply_drawing_planA
Apply the exact operations of a previously previewed plan to the same active drawing in one transaction. Any error rolls the transaction back.
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses atomic transaction semantics ('in one transaction', 'any error rolls the transaction back'), which is real behavioral value. It omits permission requirements, idempotency, and what happens if the plan is stale relative to the active drawing — meaningful gaps for a mutation 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?
Two tight sentences, zero waste, with the core action front-loaded and the transactional guarantee second. Nothing extraneous.
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?
A single-parameter mutation tool with no output schema and no annotations needs more than atomicity claims. The description covers side-effect behavior but not permissions, return content, or failure modes beyond rollback, leaving the agent with an incomplete picture of invocation consequences.
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 planId has only a regex pattern, so the description must compensate. It does add one important piece of meaning — the ID must reference a previously previewed plan — but it never mentions planId directly nor clarifies identity/lifetime constraints, leaving partially documented semantics.
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?
Names a specific verb (apply) and resource (drawing plan), and scopes it precisely: a previously previewed plan applied to the same active drawing. This clearly separates it from the sibling preview_drawing_plan (which only previews) and from the primitive draw_* tools.
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 phrase 'previously previewed plan' establishes the required ordering — an agent infers it must first obtain a plan via preview_drawing_plan. However, no explicit when-not guidance or alternatives are named, so it stops short of full routing clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cad_callB
Call any native AutoCAD operation by name with a JSON argument object. Discover names with list_tools.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| tool | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It does not disclose that arbitrary native operations may mutate or destroy drawing state, what permissions or bridge state are required, what happens on an unknown/invalid tool name, or what the response looks like. For a wildcard dispatcher that can invoke any operation, this is a substantial 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?
Two short sentences with zero filler, and the primary purpose is front-loaded ahead of the discovery pointer. Every clause 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 a 2-param tool with a free-form nested `args` object, no annotations, and no output schema, the description covers the discovery path but omits how to construct valid `args` and how this relates to the dedicated sibling tools. Adequate to invoke blindly, not complete enough to invoke correctly with confidence.
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. It does map both params meaningfully: 'by name' explains the `tool` string, and 'with a JSON argument object' explains `args`. But it says nothing about where to find each operation's expected argument shape, leaving the free-form nested `args` object entirely unconstrained.
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 uses a specific verb ('Call') plus resource ('any native AutoCAD operation by name'), making clear this is a generic dispatch/escape-hatch tool rather than one of the dedicated siblings like draw_line or open_drawing. It also points at the discovery mechanism (list_tools), which sharpens its identity. It stops short of explicitly stating how it relates to the wrapped convenience tools, but the core purpose is unambiguous.
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 gives one concrete piece of context: use list_tools to discover valid operation names. However, it never says when to prefer cad_call over the many equivalent dedicated siblings (draw_line, move_entity, save_active_drawing, etc.), which is the central routing decision for this tool. Usage is implied rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
count_modelspace_entitiesC
Count model-space entities by DXF type.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not state that this is a read-only aggregation, whether it counts entities in the active drawing or all open drawings, or how the per-type results are shaped, leaving the agent to guess the operation's scope and safety.
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?
A single front-loaded sentence with no filler, appropriate for a simple counting tool. It is efficient, though its brevity is partly under-specification rather than tight editing.
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?
No output schema and no annotations means the description must explain the return shape and scoping; it does neither. For a tool whose entire value is the grouped count it produces, that leaves a significant hole.
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 parameter 'limit' has 0% schema description coverage, so the description is the only place its meaning could be clarified. It says nothing about what 'limit' bounds (entity count scanned? number of DXF types returned?), so the schema gap is not compensated.
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 (count) and resource (model-space entities) plus the grouping dimension (DXF type), which is enough to separate it from the sibling list_modelspace_entities. It never names that sibling explicitly, so the differentiation is inferred rather than stated.
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?
No when-to-use guidance is given. The description does not say whether this should be preferred over list_modelspace_entities when only totals are needed, nor whether it is scoped to the active drawing like get_active_drawing implies for other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_blockA
Create a named local block definition from 1 to 50 line, circle, rectangle and/or text entities; rejects duplicate names.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| entities | 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. It usefully discloses the duplicate-name rejection and the 1-50 entity limit, but omits what happens on duplicate (error vs overwrite), whether the definition persists in the drawing, required permissions, and what is returned.
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?
A single tight sentence that front-loads the action and resource, then appends the entity constraints and duplicate-name rule. No filler sentences.
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 mutation tool with no annotations and no output schema, the description covers creation semantics and constraints but leaves the return value, persistence/side effects, and error behavior (beyond duplicate names) unaddressed. Adequate but with clear gaps.
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. It does add real meaning: 'name' is constrained as a unique non-duplicate identifier and 'entities' is bounded 1-50 with allowed types listed. However, it does not explain entity sub-fields (start/end, center/radius, coordinates), leaving half the schema undocumented in both places.
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 ('Create') plus resource ('named local block definition'), and pins the scope down with the entity types accepted and the 1-50 count range. It is readily distinguishable from insert_block (which places a reference) and list_blocks.
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 no explicit when-to-use guidance or mention of the sibling tools (insert_block, list_blocks) that an agent would naturally weigh against this one. The only hint is the duplicate-name rejection, which is a constraint rather than usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_drawing_copyB
Create a full DWG copy of the active drawing without renaming or modifying the source drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the source drawing is neither renamed nor modified, which is the key side-effect guarantee. However it is silent on overwrite behavior if the destination exists, permissions, and what the tool returns (no output schema exists), which are meaningful gaps for a file-writing operation.
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?
One sentence, zero waste, with the non-destructive guarantee front-loaded. Nothing could be cut without losing information.
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?
No annotations, no output schema, and an undocumented required parameter. For a tool that writes a file, the description should say where the copy lands and what is returned (e.g., the new file path); neither is covered.
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 parameter 'path', and the description adds nothing about it. It never clarifies whether path is the destination file path, a directory, or a naming template, nor any format constraints (e.g., .dwg extension) — leaving the only parameter's meaning unexplained in both structured and unstructured fields.
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 (Create) and resource (full DWG copy of the active drawing) plus a scoping constraint that it will not rename or modify the source. It implicitly distinguishes itself from save_active_drawing, but never names or contrasts with that sibling explicitly.
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?
No when-to-use or when-not-to-use guidance is given. With siblings like save_active_drawing, open_drawing and get_active_drawing in the set, the agent is left to infer that this is the non-destructive snapshot path, but the description never states the condition that selects this tool over those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entityC
Delete exactly one entity identified by its AutoCAD hexadecimal handle.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full disclosure burden, yet it never says the operation is irreversible, whether an undo/rollback exists, what happens if the handle does not match any entity, or whether the drawing must be saved afterwards. 'Exactly one' is the only behavioral constraint offered.
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?
A single front-loaded sentence with zero filler; the verb, the scope, and the identifier all appear in the first few words.
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?
A destructive mutation with no annotations, no output schema and an undocumented parameter needs considerably more: error behavior, irreversibility, save semantics, and handle provenance are all absent. The definition is not adequate for an agent to call this safely on a real drawing.
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 only parameter has no description in the schema, so the description must compensate. It does partially by naming it an 'AutoCAD hexadecimal handle', which explains the expected format and matches the schema pattern, but it does not say where to obtain a handle or that it must belong to the active drawing.
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 (delete) and resource (one entity) plus the identifying key, and the word 'exactly one' bounds the scope so an agent knows this is not a bulk operation. No sibling is named, but no other sibling performs deletion, so confusion risk is low.
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 no guidance on when to reach for this tool versus e.g. move_entity or set_entity_layer, nor any stated prerequisite such as inspecting the entity first with inspect_drawing_geometry or obtaining the handle from list_modelspace_entities. The agent must infer the workflow entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_circleC
Draw a circle in model space using center XYZ coordinates and positive radius in drawing units.
| Name | Required | Description | Default |
|---|---|---|---|
| center | Yes | ||
| radius | 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. It discloses the unit semantics ('drawing units') and radius constraint ('positive'), but says nothing about which drawing is mutated, whether the new entity is returned, what layer it lands on, or whether the operation is undoable.
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?
A single front-loaded sentence that states the action, the geometry target, and the parameter semantics without any filler. Every clause 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?
For a mutating geometry tool with zero annotation coverage, no output schema, and 0% schema description coverage, the description omits key context an agent needs: the affected drawing, return value, layer assignment, and failure conditions. It is under-specified relative to the tool's complexity.
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 partly does: it maps 'center' to XYZ coordinates and 'radius' to a positive value in drawing units, aligning with exclusiveMinimum 0. It does not explain that z is optional or what default is applied when omitted, a real gap given the nested object.
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?
Names a specific verb and resource ('Draw a circle') plus the target space ('model space'), so the operation is unambiguous. However it does nothing to distinguish this from the many sibling draw primitives (draw_line, draw_polyline, draw_rectangle), leaving the agent to infer the difference from the name alone.
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 no when-to-use, when-not-to-use, or alternative guidance. It never states the prerequisite that a drawing must be open/active (siblings like open_drawing and get_active_drawing exist), nor when a circle is preferable to other shape primitives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_lineB
Draw a line in model space using start/end XYZ coordinates in drawing units.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It notes the coordinate system (model space) and units (drawing units), which is useful context, but it does not state whether an active drawing is required, whether the operation modifies the drawing, or what side effects occur. Significant gaps for a mutation 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?
A single, front-loaded sentence that states the action, resource, and key coordinate details. No wasted words.
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 mutation tool with no annotations and no output schema, the description is thin. It omits prerequisites like needing an open drawing and does not describe side effects or return behavior. The agent is left with gaps essential for correct invocation.
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. It clarifies that start/end are XYZ coordinates and that units are drawing units, adding meaning beyond the bare schema. However, it does not explain the object structure or that z is optional, leaving some parameter semantics to 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 states a specific verb (Draw) and resource (line) and adds the scope 'in model space using start/end XYZ coordinates in drawing units.' It distinguishes from drawing siblings like draw_polyline and draw_circle by naming 'line', but it does not explicitly contrast with them. Clear but not maximally differentiated.
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?
No explicit when-to-use or when-not-to-use guidance is given. The purpose implies that the tool is for drawing a line segment, but there is no mention of prerequisites (e.g., requiring an open drawing) or alternatives. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_polylineB
Draw a 2D lightweight polyline with optional bulge arcs. Points are XY drawing units; each bulge controls the outgoing segment.
| Name | Required | Description | Default |
|---|---|---|---|
| bulges | No | ||
| closed | No | ||
| points | 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 it does add real semantic content: coordinate units (XY drawing units) and the bulge-to-segment mapping rule. However, it omits mutation context an agent needs — where the polyline is created, whether an active drawing or layer is required, and error/limit behavior — so disclosure is partial.
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?
Two short sentences, zero filler, with the core operation front-loaded and the geometry semantics immediately following. Every clause 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?
For a no-annotation, no-output-schema mutation tool, the description covers geometry semantics but leaves the creation context vague — which drawing receives the polyline, layer assignment, and the interaction with sibling tools like set_entity_layer or get_active_drawing are 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 description coverage is 0%, so the description must compensate. It meaningfully explains two of three parameters: 'points' are XY drawing units and each 'bulges' entry controls the outgoing segment. The 'closed' parameter is never mentioned, leaving a documented gap.
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 and resource ('Draw a 2D lightweight polyline') and even names the distinctive geometric feature (bulge arcs). It does not explicitly contrast itself with sibling draw_line/draw_rectangle, but the resource name and 'polyline' scope make it separable.
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 no guidance on when to choose this over draw_line, draw_rectangle, or apply_drawing_plan, nor any stated prerequisites (e.g., an open/active drawing, target layer). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_rectangleB
Draw a closed rectangular polyline in model space using opposite XY corners in drawing units.
| Name | Required | Description | Default |
|---|---|---|---|
| x1 | Yes | ||
| x2 | Yes | ||
| y1 | Yes | ||
| y2 | 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, and it discloses only the geometric outcome. It does not state whether an active drawing is required, what entity or identifier is returned, whether the rectangle can be undone, or whether it is affected by the current layer — all relevant for a mutation tool in a CAD session.
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?
A single tight sentence that front-loads the action and result with no filler. Nothing in it is redundant with the name or schema.
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?
With no annotations, no output schema, and undocumented parameters, the description should do more for a state-mutating tool. The missing prerequisite (active drawing), return behavior, and layer/undo implications leave real gaps for an agent deciding whether and how to call it.
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 four parameters (x1, y1, x2, y2) rely entirely on the description, which clarifies that they are two opposite corners expressed in drawing units. However, it does not disambiguate which corner is (x1,y1) versus (x2,y2), nor whether ordering matters, so compensation is partial.
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 names a specific verb (draw), a specific output entity type (closed rectangular polyline), the target context (model space), and the input basis (opposite XY corners in drawing units). This clearly distinguishes it from siblings like draw_line, draw_polyline, and draw_circle without requiring the schema to be opened.
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?
Use is implied by the name and the 'opposite XY corners' phrasing, but there is no explicit when-to-use vs. alternatives guidance and no mention of prerequisites. Notably, siblings such as open_drawing and get_active_drawing suggest a drawing must be active, and the description is silent on that condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_drawingA
Read the active AutoCAD drawing name/path and current space state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. 'Read' implies a non-destructive operation, but it does not disclose error conditions (e.g., no active drawing), idempotency, or any side effects. This is a minimal disclosure for a read 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?
A single, front-loaded sentence with no filler. It communicates the core function immediately.
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 low complexity, zero parameters, and no annotations or output schema, the description is adequate but not complete. 'Current space state' is vague, and there is no mention of what happens if no drawing is active or how the result is formatted. More context would help an agent handle edge cases.
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 tool has zero parameters, so the baseline is 4. The empty schema confirms no parameter semantics are needed, and the description appropriately does not invent any.
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 ('Read') and a precise resource ('active AutoCAD drawing name/path and current space state'), which is unique among siblings like get_bridge_status, open_drawing, and save_active_drawing. An agent can identify the tool's purpose 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?
Provides no explicit when-to-use, when-not, or alternative routing. The description implies it is used to inspect the active drawing, but it does not say whether to prefer it over get_bridge_status or how it relates to list_layers. Guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bridge_statusB
Check the loaded AutoCAD plug-in version, named pipe, active drawing, read-only state and units.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but 'Check' does establish a read-only, non-mutating diagnostic. It usefully enumerates the reported facets, yet says nothing about failure modes (e.g., what happens when no plug-in is loaded or the pipe is down) or return format.
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?
A single front-loaded sentence with no filler; the reported facets are listed compactly and every word 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?
With no annotations and no output schema, the description is the only signal, and listing the checked facets partially compensates. Still, it omits when this check should be run relative to other operations and what an unhealthy result looks like.
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 tool takes zero parameters and the schema is empty, so there is nothing for the description to disambiguate; the baseline of 4 applies.
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?
Specific verb ('Check') plus a resource ('bridge status') that is then unpacked into concrete fields: plug-in version, named pipe, active drawing, read-only state, units. That enumeration distinguishes it from siblings such as get_active_drawing, though the term 'bridge' itself is never defined.
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 no explicit when-to-use, when-not-to-use, or alternative named. The diagnostic framing is only implied by 'Check ... state', and the overlap with get_active_drawing (which also surfaces the active drawing) is left unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_blockC
Insert an existing local block definition into model space with uniform scale and rotation in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| scale | No | ||
| position | Yes | ||
| rotation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full behavioral burden. It does not say that this is a mutating operation on the active drawing, whether the drawing must be open, what happens if the named block does not exist, or what (if anything) is returned. The scale/rotation semantics are the only behavioral detail offered.
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?
A single front-loaded sentence with no filler. Every clause (existing, local, model space, uniform, degrees) carries information an agent needs.
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 mutation tool with no annotations and no output schema, the description is thin. Preconditions (active/open drawing, pre-existing block), failure modes for an unknown block name, and the effect on the drawing are all 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%, so the description must compensate. It adds genuine value for two parameters: 'uniform' scale (single number, not per-axis) and rotation 'in degrees' (units absent from the schema). However, the required 'position' object is never mentioned, and the optional z-coordinate/default behavior is left entirely to the schema's required list.
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: 'Insert an existing local block definition into model space.' The word 'existing' implicitly distinguishes it from the sibling create_block, and 'block definition' distinguishes it from the draw_* entity tools, though it never names an alternative outright.
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?
No explicit when-to-use statement, no alternatives, no exclusions. The phrase 'existing local block definition' hints that a block must already exist (list_blocks/create_block first), but this prerequisite is left for the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_drawing_geometryB
Read drawing units, model-space extents, entity coordinates, dimension values and text without modifying the drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
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 usefully discloses the non-mutating nature of the operation, which is the key trait for a geometry read, but says nothing about result truncation, the meaning of the limit, permissions, or performance/rate characteristics.
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?
A single front-loaded sentence that names the operation first and enumerates the returned data with zero filler. Nothing could be removed without losing information.
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?
With no output schema and no annotations, the description does enumerate the kinds of data returned, which partially covers the return-value gap. However, the undocumented limit parameter and the absence of any guidance on result size or truncation leave the definition incomplete for correct invocation.
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 parameter 'limit' (min 1, max 20000) is never mentioned in the description. The description does not clarify whether the limit caps entities, dimensions, or text items, so it fails to compensate for the undocumented parameter.
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 ('Read') plus the resource and enumerates exactly what geometry is inspected: units, model-space extents, entity coordinates, dimension values, and text. This clearly separates it from write siblings like draw_line or move_entity, though it does not explicitly contrast with read siblings such as list_modelspace_entities or count_modelspace_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?
The phrase 'without modifying the drawing' implies a read-only inspection context, but there is no explicit when-to-use guidance or mention of the obvious alternatives (list_modelspace_entities, count_modelspace_entities) that also read modelspace data. The agent must infer which read tool fits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blocksA
List named, non-layout, non-anonymous local block definitions that can be inserted.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavioral scope by enumerating exclusions: layout blocks, anonymous blocks, and non-local (xref/external) definitions are omitted. It still does not state the read-only nature explicitly or describe ordering/return shape, so it is not fully transparent.
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?
A single front-loaded sentence with zero filler; the scope qualifiers are packed efficiently into one clause and nothing is repeated from the schema.
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 zero-parameter read tool with no output schema, the description adequately conveys what the result set contains and excludes. It leaves the return shape (names only vs. full definitions) and the relationship to insert_block implicit, which is a minor gap rather than a blocking one.
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 tool takes zero parameters, so the baseline is 4; there are no argument semantics for the description to clarify. No additional parameter meaning is needed or supplied.
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?
Specific verb ('List') plus a precisely scoped resource ('named, non-layout, non-anonymous local block definitions'), so an agent immediately knows what comes back. It does not name a sibling such as insert_block or create_block to differentiate itself, which keeps it short of a 5.
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 trailing clause 'that can be inserted' implies the downstream pairing with insert_block, giving an implicit workflow context. However, there is no explicit when-to-use, no when-not-to-use, and no named alternative (e.g. list_layers, list_modelspace_entities), so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_layersA
List drawing layers and off/frozen/locked state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given the lack of annotations, the description must define the tool's behavior. It clearly defines the operation as a listing action and specifies the exact data points returned (layers and their specific status flags), which is highly transparent for a read operation.
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 perfectly concise, using a single sentence to define the tool's purpose and data scope without any unnecessary language or 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 simple, zero-parameter read operation, the definition is highly complete. It specifies exactly what the tool does and what data is returned (layer status), allowing an agent to invoke it without needing further details.
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?
Since the tool requires zero parameters, the description does not need to add semantic meaning beyond the schema. The baseline score of 4 is applied here.
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 uses the specific verb 'List' and clearly identifies the resource 'drawing layers.' Furthermore, it specifies the exact attributes included in the listing: 'off/frozen/locked state,' giving precise scope.
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?
While the function is very clear, the description does not provide explicit guidance on when to use this tool versus other similar sibling tools, such as those related to entity lists or active drawings. Usage is implied by the tool name and content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelspace_entitiesB
List model-space entity handles, DXF types and layers. Use the returned handle for targeted edits.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
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 says what fields are returned and hints at downstream edit use, but omits whether this is a safe/read-only operation, how the limit parameter affects results, default behavior, or pagination.
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?
Two short sentences, front-loaded with the core action and followed by a useful downstream pointer. There is no filler or repetition.
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 simple one-parameter list tool with no output schema, the description gives the basic return fields and a reason to call it. However, with no annotations and 0% schema coverage, it should still clarify the limit behavior and confirm the operation is read-only.
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 optional limit parameter is not mentioned at all. The description does not compensate for the missing schema documentation of the limit's default, maximum, or effect on returned results.
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 and resource: list model-space entity handles, DXF types, and layers. It is clearly distinguishable from count_modelspace_entities and list_layers, though it does not explicitly name siblings or contrast itself with them.
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 phrase 'Use the returned handle for targeted edits' implies a workflow context, but it does not state when to use this tool versus alternatives like count_modelspace_entities, inspect_drawing_geometry, or list_layers. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_toolsA
List every native AutoCAD operation the plug-in exposes (name, JSON params, mutating flag). Call this first when you need a capability that has no dedicated tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden; it does disclose what the response contains (name, JSON params, mutating flag), which is genuinely useful given there is no output schema. It does not state that the call is read-only, whether the catalog is static or session-dependent, or whether there is any cost/limit, so it stops short of full behavioral disclosure.
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?
Two sentences, no filler, and the capability statement is front-loaded ahead of the usage instruction. Every clause carries information.
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 zero-parameter discovery tool with no output schema, the description supplies the return fields the agent needs and the sequencing rule for calling it. Only minor gaps remain (read-only confirmation, catalog scope/stability), which are not critical to calling 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?
The tool takes zero parameters, which is the baseline-4 case; there is nothing to disambiguate. The description correctly implies a parameterless catalog call rather than hinting at filters that do not exist.
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 (list) and resource (native AutoCAD operations exposed by the plug-in) and even enumerates the payload shape (name, JSON params, mutating flag). It is clearly separable from execution siblings like cad_call, which invoke rather than enumerate operations.
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?
"Call this first when you need a capability that has no dedicated tool" gives an explicit trigger and an implicit exclusion (use the dedicated sibling tools when they exist). It does not name those alternatives individually, but the routing condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_entityC
Move one entity by handle by the given XYZ offset in drawing units.
| Name | Required | Description | Default |
|---|---|---|---|
| dx | Yes | ||
| dy | Yes | ||
| dz | No | ||
| handle | 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 for a mutation tool. It conveys the offset semantics ('in drawing units') and single-entity scope, but says nothing about whether the drawing must be open/active, whether the move is permanent or reversible, or how invalid handles are handled.
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?
A single tight sentence with zero waste and the action front-loaded. It is appropriately sized, though dense enough that units and identifier semantics are folded together without differentiation.
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 mutation tool with 4 parameters at 0% schema coverage, no annotations, and no output schema, the description is thin. An agent still lacks preconditions (active drawing), the meaning of dz optionality, and post-move state, leaving notable gaps.
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 compensate. It maps handle to entity identity and 'XYZ offset' to dx/dy/dz, which covers all four parameters in spirit, but adds no handle format, no distinction that dz is optional, and no per-axis units detail beyond 'drawing units.'
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 (move) and resource (one entity), plus the mechanism (by handle, via XYZ offset in drawing units). An agent can distinguish it from delete_entity and set_entity_layer, though no sibling is named or ruled out.
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 no when-to-use guidance, no prerequisites, and no mention of alternatives such as moving via a transform tool. The only implicit constraint is 'one entity,' which does not tell an agent when to choose this over other manipulation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_drawingA
Open an existing DWG in AutoCAD through the bridge. Set readOnly to true to prevent modifications.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| readOnly | No |
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 it does disclose the one genuinely useful trait: readOnly=true suppresses modifications. It is silent on side effects an agent needs — whether opening replaces the currently active drawing, what happens if the file is missing or already open, and whether the bridge must be running.
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?
Two sentences, no filler, with the core action front-loaded and the one non-obvious parameter fact placed second. Every clause 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?
For a two-parameter tool with no output schema, the description covers the action and the readOnly flag but omits the state implications of opening a drawing (displacing the active document) and any failure modes. Adequate but noticeably thin for a state-changing operation with zero annotation support.
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 there are two parameters, so the description must compensate. It explains readOnly meaningfully ("prevent modifications") but gives nothing on `path` — no format, whether it is local or bridge-side, or whether a full path is required beyond minLength 1.
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 ("Open an existing DWG in AutoCAD") plus the transport mechanism ("through the bridge"). This is enough to separate it from create_drawing_copy and get_active_drawing, though it never names a sibling explicitly, so a 4 rather than a 5.
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?
Usage is only implied: the word "existing" tells the agent this is for files that already exist, so a copy-creation sibling is the wrong choice. There is no explicit when-not guidance, no prerequisite (e.g., must the bridge be connected), and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_drawing_planA
Validate and preview up to 100 geometry, text, dimension and layer operations without changing the drawing. Returns a planId for explicit commit.
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does disclose several real traits: non-mutating, capped at 100 operations, and returns a planId. It says nothing about what validation failures look like, error semantics, permissions, or plan expiry, which are the remaining behavioral gaps for a mutation-adjacent 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?
Two tight sentences with the non-mutating guarantee and the 100-op cap front-loaded, followed by the return contract. Nothing is padded and every clause 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 a deeply nested anyOf schema with seven operation types, no annotations, and no output schema, the description supplies the essentials: what it validates, that it does not mutate, the operation cap, and that a planId is returned for commit. Missing only error/validation-result semantics, which is a modest gap.
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 complex param, so the description must compensate. It partially does by naming the operation families (geometry, text, dimension, layer) that map onto the schema's anyOf variants, but adds no syntax or field-level meaning for line/polyline/circle/rectangle dimensions.
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 specific verbs (validate, preview) and the resource (drawing operations), and enumerates the operation domains covered (geometry, text, dimension, layer). It clearly implies a two-phase pattern with commit but never names the sibling apply_drawing_plan, so an agent infers rather than reads the distinction.
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?
'without changing the drawing' plus 'Returns a planId for explicit commit' implies this is the pre-commit step in a two-phase workflow, which is useful. However it never explicitly names apply_drawing_plan as the follow-up or states when to skip the preview, leaving the routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_active_drawingA
Save changes in the active drawing to its existing path.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full behavioral burden. It usefully discloses that this is a write to the existing path (no Save-As dialog, no new file), but says nothing about what happens for an untitled/never-saved drawing, whether the call can fail, or what it returns on success.
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?
A single sentence with no padding, and the key constraint ('existing path') is placed where it is read first. Nothing is wasted.
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 0-param, no-output-schema tool this is nearly complete: the action and its write target are clear. The only gap is unsaved-drawing behavior and success/failure signaling, which matters slightly more here because no annotations declare the safety profile.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a 0-param tool applies. The stated path behavior is the only semantic an invocation needs.
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 (save) and resource (active drawing) with a scoping detail - 'to its existing path' - that implicitly separates it from create_drawing_copy. An agent can tell what it does without opening the schema, though no sibling is named explicitly.
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?
Usage is implied: persist edits to the currently open drawing without choosing a new location. There is no explicit when-to-use/when-not framing and no named alternative (e.g., 'use create_drawing_copy to save elsewhere') to route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_entity_layerC
Change a model-space entity to an existing drawing layer.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | Yes | ||
| handle | 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 discloses one meaningful precondition ('existing' layer), but says nothing about what happens if the layer does not exist, whether the handle must reference a valid entity, permissions, or reversibility for what is clearly a mutation.
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?
A single tight sentence with the action front-loaded and no filler. It is appropriately sized, though there is little content to be concise about.
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 mutation tool with no annotations, no output schema, and 0% parameter documentation, the description leaves too much to inference. An agent cannot confirm handle format, layer-existence failure behavior, or the result of the operation.
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 for both parameters. It implies the second parameter is a layer name that must pre-exist, but never explains that 'handle' is a hexadecimal entity identifier (the schema's pattern) or how to obtain one.
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 ('change') and resource ('a model-space entity') plus the target ('an existing drawing layer'), so the operation is unambiguous. It does not differentiate itself from siblings like move_entity or delete_entity, but the purpose itself is clear.
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?
No guidance on when to use this instead of move_entity or other entity-mutating siblings. The only usable cue is the implicit precondition that the target layer must already exist, which is contextually useful but not framed as guidance.
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.
23 tool updates
v0.6.0- First observed
apply_drawing_plan - First observed
cad_call - First observed
count_modelspace_entities - First observed
create_block - First observed
create_drawing_copy - First observed
delete_entity - First observed
draw_circle - First observed
draw_line - First observed
draw_polyline - First observed
draw_rectangle - First observed
get_active_drawing - First observed
get_bridge_status - First observed
insert_block - First observed
inspect_drawing_geometry - First observed
list_blocks - First observed
list_layers - First observed
list_modelspace_entities - First observed
list_tools - First observed
move_entity - First observed
open_drawing - First observed
preview_drawing_plan - First observed
save_active_drawing - First observed
set_entity_layer
TDQS
Scored across 23 tools
Most tools target distinct resource-action pairs, but get_active_drawing and get_bridge_status both expose active drawing information, and inspect_drawing_geometry overlaps somewhat with list_modelspace_entities in reading entity data. Descriptions provide enough context to disambiguate in practice.
Nearly all tools follow a consistent snake_case verb_noun pattern (get_active_drawing, draw_line, preview_drawing_plan), making names predictable. The outlier cad_call uses a noun_verb order, which is a minor deviation but still readable.
23 tools is slightly heavy for the typical 3-15 sweet spot, but each tool appears to earn its place by covering a specific CAD bridge operation. The set is well-scoped for the domain despite being on the larger side.
Core drawing, entity, layer listing, block, and plan workflows are covered, with cad_call providing a generic escape hatch for native operations. Minor gaps exist for dedicated layer creation/modification, text drawing, and dimension creation, but agents can work around them using cad_call.
Maintenance
Related MCP Connectors
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
Read and edit the Revit 2024–2027 model on your PC. Needs the free Revit MCP add-in.
Revit MCP: lets AI read and edit your open model. Windows, best supported on Revit 2021+, free beta.
MCP CAD services; bundles with SmartScale (measure to CAD).
Related MCP Servers
- 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
- AlicenseNot gradedqualityBmaintenanceEnables AI/natural-language-driven 2D drafting automation on a running Windows AutoCAD, exposing drawing, dimensioning, layer/block management, and mechanical drawing tools such as title blocks, BOM, and balloons to any MCP client.205 PyPI2MIT
- FlicenseBqualityAmaintenanceNatural-language MCP bridge for AutoCAD 2024. Enables users to inspect and edit DWG drawings, manage layers, entities, layouts, styles, and system variables; draw 2D geometry and 3D solids; perform measurements and transactional edits; and export to DWG, STL, PDF, DWF, SVG, or raster formats through a local named-pipe connection.211-
- AlicenseCqualityCmaintenanceEnables MCP clients to create and edit technical drawings, manage layers and geometry, process GIS/research mapping data, generate previews and layouts, and automate AutoCAD documents on Windows through COM.22550 npmMIT