CAD MCP Server
Enables interaction with a running AutoCAD application on Windows via COM. Provides tools to inspect and bind to an AutoCAD window, list documents, attach/detach from a live document, activate documents, read system variables, list layers and modelspace entities, and submit commands to the active document (e.g. autocad_status, autocad_list_documents, autocad_attach, autocad_send_command).
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., "@CAD MCP Serverattach to my open AutoCAD drawing and list its layers"
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.
CAD MCP Server / CAD MCP 服务
文档 / Documentation: 简体中文 | English
中文和英文独立文档包含安装配置、AutoCAD 接管、使用示例、测试及故障排查。 The standalone guides cover setup, AutoCAD attachment, examples, testing, and troubleshooting.
TypeScript-based CAD server for the Model Context Protocol (MCP).
基于 TypeScript 的 Model Context Protocol (MCP) CAD 服务。
It exposes tools, resources, and prompts over stdio so an MCP client can work with CAD, lightweight GIS, and resource/environment research workflows.
它通过 stdio 暴露 tools、resources 和 prompts,使 MCP 客户端可以处理 CAD、轻量 GIS 以及资源环境研究工作流。
Status / 当前状态
This repository is still an MVP-style CAD service, but it now includes:
这个仓库仍然属于 MVP 风格的 CAD 服务,但目前已经包含:
broad 2D and lightweight 3D tool coverage
较广的 2D 与轻量 3D 工具覆盖PNG preview rendering through
sharp, with SVG fallback
通过sharp生成 PNG 预览,并提供 SVG 回退OpenCascade runtime status reporting
OpenCascade 运行时状态报告a Node-compatible OpenCascade fallback loader for
opencascade.js
兼容 Node 的opencascade.js回退加载器direct AutoCAD integration tools on Windows
Windows 平台下的 AutoCAD 直接集成工具GIS/georeference helpers for research mapping workflows
面向研究制图工作流的 GIS / 地理参考辅助能力CSV / GeoJSON / Shapefile interchange support
CSV / GeoJSON / Shapefile 互操作支持resource/environment domain tools for sampling points, monitoring wells, profile lines, and boundary polygons
面向资源环境场景的采样点、监测井、剖面线、边界面领域工具thesis/map layout helpers and drawing templates
论文 / 地图版式辅助工具与模板
Related MCP server: AutoCAD MCP Server - Codex Edition
Features / 功能
Internal CAD Session / 内部 CAD 会话
2D entities: point, line, circle, arc, rectangle, polygon, polyline
2D 实体:点、线、圆、圆弧、矩形、多边形、折线layers: create, rename, delete, visibility, lock, color
图层:创建、重命名、删除、显隐、锁定、颜色modify tools: translate, rotate, mirror, offset, trim, extend, array
修改工具:平移、旋转、镜像、偏移、修剪、延伸、阵列constraints, annotations, assemblies, drawings, and analysis helpers
约束、标注、装配、图纸与分析辅助transactions and undo/redo
事务与撤销 / 重做JSON project save/load
JSON 项目保存 / 加载
GIS And Research Workflow / GIS 与研究工作流
project CRS, origin, extent, and drawing scale metadata
项目 CRS、原点、范围与绘图比例元数据CSV import for sampling points and field observations
面向采样点和外业观测的 CSV 导入GeoJSON import/export for point, line, and polygon data
点、线、面 GeoJSON 导入 / 导出Shapefile import/export for 2D GIS exchange
用于二维 GIS 交换的 Shapefile 导入 / 导出domain tools for:
sampling points
采样点monitoring wells
监测井profile lines
剖面线boundary polygons
边界面
terrain/research helpers for:
polygon area statistics
面域统计profile length and section sampling
剖面长度与断面采样simplified cut/fill estimates
简化挖填方估算simplified grid surface volume estimates
简化格网表面体积估算
File And Preview Support / 文件与预览支持
DXF import and export
DXF 导入 / 导出SVG, PDF-underlay, STEP-like, STL-like, OBJ-like, IGES-like, and GLTF-like workflows
SVG、PDF-underlay、STEP-like、STL-like、OBJ-like、IGES-like 与 GLTF-like 工作流preview generation as SVG or PNG
生成 SVG 或 PNG 预览
OpenCascade Integration / OpenCascade 集成
reports whether the runtime backend is using mock geometry or OpenCascade
报告当前运行时后端使用 mock geometry 还是 OpenCascadeincludes a compatibility fallback for environments where
opencascade.jspackage-root loading fails under modern Node ESM runtimes
在现代 Node ESM 环境中opencascade.js包根加载失败时提供兼容回退
AutoCAD Integration / AutoCAD 集成
On Windows, the server can inspect and bind to a running AutoCAD application through COM, then read or submit commands to its live document:
在 Windows 平台上,服务可以通过 COM 检查并绑定正在运行的 AutoCAD 窗口,然后读取真实文档或向文档提交命令:
autocad_statusautocad_list_documentsautocad_attachautocad_detachautocad_activate_documentautocad_get_variablesautocad_list_layersautocad_list_modelspace_entitiesautocad_send_command
Start with autocad_list_documents to obtain the COM-reachable application window handles and open document names/paths, then call autocad_attach with the target decimal windowHandle and document. activate defaults to true, activating the selected document; false establishes the binding without activating it. autocad_status reports the live target and binding. Subsequent commands reject if the bound document is no longer active; use autocad_activate_document to switch deliberately. autocad_detach clears the binding without closing AutoCAD or its documents.
先调用 autocad_list_documents 获取 COM 可访问的窗口句柄与已打开文档,再用 autocad_attach 的十进制 windowHandle 和 document 绑定目标。activate 默认 true,会激活选中文档;设为 false 时只建立绑定,不激活文档。autocad_status 返回实时目标与绑定状态。若用户切换了活动文档,后续命令会拒绝发送;需要切换时调用 autocad_activate_document。autocad_detach 只解除绑定,不关闭 AutoCAD 或文档。
autocad_send_command submits a command once. Its default waitForIdle: false reports submitted; waitForIdle: true can report idle_observed after observing AutoCAD idle, or timeout when that observation deadline expires. A timeout result is an MCP error that preserves the command observations. These states do not prove the intended effect. timeoutMs (1000–30000 ms) bounds idle polling after the COM SendCommand call returns; a separate 45-second bridge timeout bounds blocking COM calls. Verify geometry or system variables afterward. After an error or timeout, do not resend before inspecting the drawing and command state. Busy documents reject command submission.autocad_send_command 只提交一次命令。默认 waitForIdle: false 返回 submitted;设为 true 后,观察到空闲时返回 idle_observed,轮询到期仍未观察到空闲则返回 timeout。timeout 会标记为 MCP 错误并保留命令状态数据。这些状态都不代表绘图结果正确。timeoutMs(1000–30000 毫秒)只限制 COM SendCommand 返回后的空闲轮询;阻塞中的 COM 调用由独立的 45 秒桥接超时限制。应继续查询实体或系统变量核验。发生错误或超时后,必须先检查图纸与命令状态,再决定是否重发。文档忙碌时会拒绝提交命令。
COM discovery cannot guarantee access to every process when several instances of the same AutoCAD version are running. A requested window that is unreachable fails explicitly instead of silently using another window. This is document automation, not general mouse/keyboard or screenshot control of every CAD product.
同时运行同版本的多个 AutoCAD 进程时,COM 不保证能访问所有窗口。指定窗口不可达时会明确失败,不会自动改用其他窗口。这是 AutoCAD 文档自动化,不是对所有 CAD 软件的通用鼠标、键盘或截图接管。
This workflow is separate from the internal in-memory CAD session.
这套工作流与内部内存中的 CAD 会话相互独立。
Drawing And Thesis Layout / 出图与论文版式
map layout creation
地图版式创建north arrow, scale bar, legend, coordinate grid
指北针、比例尺、图例、坐标格网thesis templates such as A3 map and A4 figure layouts
论文模板,例如 A3 地图版式和 A4 图版式batch SVG/PDF generation for drawings
图纸批量生成 SVG / PDF
Requirements / 环境要求
Node.js 18+
npm
Windows for AutoCAD COM integration
AutoCAD COM 集成需要 WindowsAutoCAD running locally if you want to use the
autocad_*tools
如果要使用autocad_*工具,需要本地运行中的 AutoCAD
Node 20+ is recommended.
推荐使用 Node 20+。
Install / 安装
npm installBuild / 构建
npm run buildWindows PowerShell note: if npm.ps1 is blocked by execution policy, use npm.cmd run build.
Test / 测试
npm testWindows PowerShell note: if npm.ps1 is blocked by execution policy, use npm.cmd test.
Run / 运行
The MCP host should launch this server over stdio.
MCP Host 应通过 stdio 启动此服务。
npm startEquivalent / 等价命令:
node dist/index.jsMCP Configuration / MCP 配置
Example configuration / 配置示例:
{
"mcpServers": {
"cad-mcp-server": {
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"],
"cwd": "${workspaceFolder}"
}
}
}After rebuilding the server, restart or reload your MCP host so new tools are picked up.
重新构建服务后,请重启或重新加载 MCP Host,以便识别新增工具。
Use mcp.config.example.json as the portable template. For a new checkout, copy it to mcp.config.json before running the repository's verification scripts:mcp.config.example.json 是可移植模板。在新 checkout 中运行仓库验证脚本前,先复制为本机配置 mcp.config.json:
Copy-Item -LiteralPath mcp.config.example.json -Destination mcp.config.jsonReplace both literal ${workspaceFolder} placeholders in the copied file with the absolute checkout directory containing package.json. Use forward slashes in JSON paths, or escape backslashes. The verification scripts read this JSON directly and do not expand ${workspaceFolder}. args must point to this checkout's built dist/index.js, and cwd must point to the checkout directory.
将复制文件中的两处字面量 ${workspaceFolder} 替换为包含 package.json 的 checkout 绝对目录。JSON 路径可使用正斜杠,或对反斜杠进行转义。验证脚本直接读取 JSON,不会展开 ${workspaceFolder}。args 应指向当前 checkout 构建后的 dist/index.js,cwd 应指向该 checkout 目录。
The local mcp.config.json, generated verification output under tmp/, and workstation task notes in BUILD_GOAL.md are ignored by Git. Keep the portable example in source control.
本机 mcp.config.json、tmp/ 下的验证产物和 BUILD_GOAL.md 中的工作站任务说明均由 Git 忽略;源码中保留可移植配置示例。
Codex Skill / Codex Skill
This repository includes a repo-local Codex skill at skills/cad-mcp/SKILL.md.
本仓库包含一个项目内 Codex skill:skills/cad-mcp/SKILL.md。
The skill summarizes safe operating patterns for this MCP server, including startup checks, internal CAD session workflows, AutoCAD COM caveats, DWG/DXF handling, GIS/research mapping workflows, and grouped tool references under skills/cad-mcp/references/.
该 skill 汇总了本 MCP 服务的安全使用方式,包括启动检查、内部 CAD 会话流程、AutoCAD COM 注意事项、DWG/DXF 处理、GIS/研究制图流程,以及 skills/cad-mcp/references/ 下的工具分组参考。
Main Tool Groups / 主要工具分组
geometry creation and editing / 几何创建与编辑
layer management / 图层管理
query and measurement tools / 查询与测量工具
assembly and drawing tools / 装配与图纸工具
topology and boolean tools / 拓扑与布尔工具
project file tools / 项目文件工具
GIS and georeference tools / GIS 与地理参考工具
field survey / resource-environment tools / 外业调查与资源环境领域工具
terrain / section / cut-fill analysis tools / 地形、断面与挖填方分析工具
AutoCAD bridge tools / AutoCAD 桥接工具
Project File Format / 项目文件格式
Saved project files use / 保存的项目文件包含:
format:cad-mcp-projectformatVersion:1savedAt: ISO 8601 stringsnapshot: serialized session snapshotscene.crs: project CRS metadatascene.origin: local/world origin metadatascene.extent: working extent metadatascene.drawingScale: drawing-to-world scale metadata
Available Research-Focused Capabilities / 面向资源环境研究的现有能力
The current implementation already supports a usable lightweight workflow for resource/environment graduate students:
当前实现已经支持一条可用的轻量级资源环境研究工作流:
import sampling points from
CSV
从CSV导入采样点import boundaries / profile lines / regions from
GeoJSONorShapefile
从GeoJSON或Shapefile导入边界、剖面线和分区assign georeference metadata
设置地理参考元数据create map layouts and thesis-style figures
创建地图版式和论文风格图件compute area / profile / cut-fill style simplified analyses
进行面积、剖面、简化挖填方等分析export figures and GIS data
导出图件和 GIS 数据
Repository Additions / 仓库新增内容
src/core/OpenCascadeAdapter.ts: OpenCascade runtime loader and compatibility fallback
OpenCascade 运行时加载器与兼容回退src/integrations/AutoCadComBridge.ts: Windows COM bridge for live AutoCAD access
Windows COM AutoCAD 实时桥接src/tools/autocadTools.ts: MCP tool registration for AutoCAD operations
AutoCAD MCP 工具注册src/tools/gisTools.ts: project georeference tools
项目地理参考工具src/tools/gisIoTools.ts: CSV / GeoJSON / Shapefile IO tools
CSV / GeoJSON / Shapefile IO 工具src/tools/fieldSurveyTools.ts: domain tools for resource/environment workflows
资源环境工作流领域工具src/tools/terrainAnalysisTools.ts: terrain / profile / cut-fill style analysis tools
地形 / 剖面 / 挖填方分析工具src/tools/mapDrawingTools.ts: map/thesis layout and batch export tools
地图 / 论文版式与批量导出工具src/resources/templates.ts: drawing template resource loader
图纸模板资源加载器src/parsers/CsvParser.ts: CSV point import parser
CSV 点导入解析器src/parsers/GeoJsonParser.ts: GeoJSON parser / exporter
GeoJSON 解析与导出器src/parsers/ShapefileParser.ts: Shapefile parser / exporter bridge
Shapefile 解析与导出桥接assets/templates/thesis-a3-map.json: thesis map layout template
论文地图版式模板assets/templates/thesis-a4-figure.json: thesis figure layout template
论文图模板
Limitations / 当前限制
DWG import is fully wired through LibreDWG's
dwg2dxf(verified end-to-end on real R14 fixtures: LINE / CIRCLE / LWPOLYLINE / ARC are imported into the session)
DWG 导入已经通过 LibreDWG 的dwg2dxf完整接通,已用真实 R14 文件端到端验证(LINE / CIRCLE / LWPOLYLINE / ARC 可以导入到会话)DWG export wires
dxf2dwgand writes a DWG to disk, but the internal minimal DXF emitter is currently rejected by LibreDWG's strict DXF parser; the binary path is in place anddwg_tools_statusreports availability, but a full R14-compliant DXF skeleton (HEADER + 9 tables + BLOCKS + OBJECTS) is still required for round-trip-safe export. Until then, preferexport_dxfand convert externally
DWG 导出已接dxf2dwg并落盘 DWG,但当前内置 DXF 输出过于精简,会被 LibreDWG 严格解析器拒收;二进制链路已就位且dwg_tools_status可用,但要真正可 round-trip,还需要一个完整 R14 DXF 骨架(HEADER + 9 张表 + BLOCKS + OBJECTS)。在此之前建议使用export_dxf并在外部转换direct AutoCAD integration currently targets running local AutoCAD through COM on Windows
直接 AutoCAD 集成当前仍然面向 Windows 本地 COMAutoCAD COM automation can be sensitive to Windows privilege/integrity level. Run the MCP host at the same privilege level as the AutoCAD process, and call
autocad_statusbefore list or command tools
AutoCAD COM 自动化可能受 Windows 权限/完整性级别影响。请让 MCP Host 与 AutoCAD 进程使用相同权限级别,并在列表或命令工具前先调用autocad_statussome DXF entity types and advanced polyline bulge cases still have limited support
某些 DXF 实体类型和高级 polyline bulge 场景支持仍有限the internal CAD session and the live AutoCAD bridge are related but distinct workflows
内部 CAD 会话与实时 AutoCAD 桥接是相关但独立的两套工作流georeference now includes a real
proj4-backed reprojection engine (reproject_point,reproject_points); the legacytransform_coordsflow remains metadata-driven for local/world conversion only
地理参考现在包含基于 proj4 的真实投影引擎(reproject_point/reproject_points),旧的transform_coords仍仅用于元数据驱动的局部/世界坐标转换raster (GeoTIFF) support is currently single-image basemap oriented; large mosaic / tile workflows are not yet bundled
栅格 / GeoTIFF 支持当前面向单幅底图,尚未内置大范围镶嵌或瓦片工作流terrain and cut/fill calculations are simplified research helpers rather than survey-grade engineering calculations
当前地形和挖填方计算属于简化研究辅助能力,不是测量级工程计算
License / 许可证
ISC
Available Tools
225 toolsadd_aligned_dimensionD
Add an aligned dimension annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| p1 | Yes | ||
| p2 | Yes | ||
| offset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the entire behavioral burden, and it discloses nothing: not units, not whether the annotation is placed on a layer, not how the offset distances the dimension from the geometry, and not whether p1/p2 are measurement points or extension-line endpoints.
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?
It is a single short sentence with no wasted words and is front-loaded, but its brevity reflects under-specification rather than disciplined concision.
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 mutating CAD tool with three required parameters, nested objects, zero schema documentation, and no annotations or output schema requires far more explanation than one tautological sentence. Nothing an agent needs in order to call it correctly is present.
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 three required parameters, including a nested p1/p2 object with x/y coordinates and an offset scalar. The description explains none of them, so the agent cannot know what geometry p1/p2 reference or how offset is interpreted or oriented.
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 is a direct restatement of the tool name: 'Add an aligned dimension annotation' for add_aligned_dimension. It adds no distinguishing detail versus siblings such as add_angular_dimension, add_linear_dimension, or add_ordinate_dimension, which share the identical 'Add a ... dimension annotation' pattern.
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, no prerequisites, and no mention of when an aligned dimension is preferred over the linear, baseline, or continued dimension siblings. The agent gets no basis for choosing this tool over its near-identical neighbours.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_angular_dimensionC
Add an angular dimension annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| p1 | Yes | ||
| p2 | Yes | ||
| vertex | 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 discloses nothing: not whether the annotation is committed immediately or requires a transaction, not the units/angle convention (degrees vs radians), not view/drawing prerequisites, and not what is returned. It only restates the creation action.
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?
It is a single grammatical sentence with zero filler, so it is concise and front-loaded. However, at this level of brevity it is under-specified rather than efficient given the tool's complexity.
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 tool with three required nested-object parameters, no annotations, and no output schema, the description supplies none of the context an agent needs to invoke it correctly. It is materially inadequate for 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% for three required parameters (vertex, p1, p2), and the description adds no meaning at all about their roles (which point is the angle vertex, how p1/p2 define the rays, ordering). The description does nothing to compensate for the complete lack of parameter documentation.
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 ('Add an angular dimension annotation'), and the word 'angular' implicitly distinguishes it from the many sibling dimension tools (aligned, radius, diameter, ordinate). It is clear but does not explicitly route the agent away from those siblings, which is what a 5 would require.
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 use this tool versus add_aligned_dimension, add_linear_dimension, add_dimension_angular, or the other dimension variants in the sibling list. The agent must infer applicability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_auxiliary_viewD
Add a add_auxiliary_view to a drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| center | No | ||
| cut_line | No | ||
| position | No | ||
| solid_id | No | ||
| direction | No | ||
| view_type | No | ||
| drawing_id | Yes | ||
| parent_view_id | No |
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. It does not disclose mutation side effects, required permissions, how the drawing is affected, whether the operation is reversible, or any constraints. For a 9-parameter mutation tool, this is a severe 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?
The single sentence is short and front-loaded, but it is under-specified rather than concise. It wastes the only sentence on a tautology, leaving no room for useful information. The structure does not earn 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 9 parameters with 0% schema description coverage, no annotations, no output schema, and nested object parameters, the description is completely inadequate. It omits nearly everything an agent would need to invoke the tool 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%, and the description mentions none of the 9 parameters. It does not explain scale, center, cut_line, position, solid_id, direction, view_type, parent_view_id, or drawing_id. The description fails to compensate for the absent schema descriptions.
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 essentially restates the tool name: 'Add a add_auxiliary_view to a drawing.' It gives a verb and resource but no meaningful definition of what an auxiliary view is or how it differs from sibling tools such as add_view, add_section_view, and add_detail_view. This is tautological rather than clarifying.
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 description provides no guidance on when to use this tool versus alternatives. Siblings like add_view, add_section_view, and add_detail_view are plausible alternatives, but the description does not mention selection criteria, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_baseline_dimensionD
Add baseline dimensions.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes | ||
| baseline | 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, yet it discloses nothing about what is created, required drawing/context state, units, or whether the operation is undoable. A single restated noun phrase gives the agent zero behavioral context 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?
It is a single short sentence, but the brevity is under-specification rather than conciseness — there is no front-loaded useful information because the sentence contains no information beyond the name.
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 mutation tool with a nested schema, no annotations, and no output schema, the description is completely inadequate. Nothing an agent needs to call it correctly is present.
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 description adds no meaning for either required parameter. The nested 'points' array of x/y objects (minItems 1) and the numeric 'baseline' value are entirely undocumented, leaving the agent to guess their 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?
'Add baseline dimensions' merely restates the tool name. It does not explain what a baseline dimension is or how it differs from the many sibling dimension tools (add_linear_dimension, add_continued_dimension, add_ordinate_dimension, etc.), so an agent cannot distinguish 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?
There is no when-to-use guidance and no mention of alternatives, despite a crowded sibling set of dimension tools that overlap heavily. The only inference available is that this adds some kind of dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_center_lineD
Add symbol annotation add_center_line.
| Name | Required | Description | Default |
|---|---|---|---|
| datum | No | ||
| symbol | No | ||
| options | No | ||
| entities | No | ||
| position | No | ||
| circle_id | No | ||
| roughness | No | ||
| tolerance | 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 burden of behavioral disclosure. It says nothing about side effects, whether the annotation is associative, how it interacts with selected entities, or what permissions or context are required. For a mutation tool with zero annotation coverage, this is a critical 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?
The sentence is short but fails because it is under-specified rather than concise; it omits information an agent needs. The wording 'Add symbol annotation add_center_line' also awkwardly duplicates the tool name.
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?
This is a complex, 8-parameter tool with nested objects, no annotations, and no output schema, yet the description provides no compensating detail. It is completely inadequate for an agent to invoke the tool 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% across 8 parameters, including nested objects like position and options, and the description does not mention a single parameter. There is no explanation of what datum, symbol, roughness, tolerance, or circle_id control, leaving the agent entirely dependent on raw property names.
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 is essentially a restatement of the tool name, adding only the generic category 'symbol annotation.' It does not specify what a center line is, what the resulting entity looks like, or how it differs from siblings like add_center_mark or the dimension tools. An agent cannot confidently choose this over the many other annotation 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?
There is no indication of when to use this tool, what prerequisites exist, or which sibling to prefer for related tasks such as center marks or dimensions. The single word 'Add' implies a creation action but provides no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_center_markD
Add symbol annotation add_center_mark.
| Name | Required | Description | Default |
|---|---|---|---|
| datum | No | ||
| symbol | No | ||
| options | No | ||
| entities | No | ||
| position | No | ||
| circle_id | No | ||
| roughness | No | ||
| tolerance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full behavioral burden, yet it discloses nothing: not whether the mark is associative to entities, whether it needs a datum or circle reference, whether it is undoable, or what it returns. For an 8-parameter mutation tool this is a complete 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?
The description is a single clause and technically concise, but this is under-specification rather than economy: it is too short to be useful and wastes the space on a restatement of the name.
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 8 undocumented parameters, nested objects, zero annotation coverage, and no output schema, the definition is entirely inadequate; an agent could not invoke this tool correctly from the definition alone.
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 8 parameters, and the description supplies no meaning for datum, symbol, options, entities, position, circle_id, roughness, or tolerance. An agent has no way to know what values are expected, especially for the nested position object and the free-form options map.
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 'Add symbol annotation add_center_mark' merely restates the tool name with the word 'symbol annotation' appended; it does not explain what a center mark is or how it differs from siblings such as add_center_line, add_surface_finish_symbol, or add_weld_symbol. It is essentially a tautology.
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 indication of when to use this tool versus the many other annotation tools (add_center_line, add_gdt_frame, etc.), nor any prerequisites or context of use. Usage is left entirely to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_componentC
Add a component reference to an assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes | ||
| rotation | No | ||
| assembly_id | Yes | ||
| file_path_or_id | 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 implies a mutation ('Add'), but omits whether the assembly must already exist, whether the operation is reversible, what permissions are needed, and what the result looks like. It adds almost no behavioral context beyond the verb.
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 single sentence is front-loaded and free of filler, clearly stating the action and target. Its terseness is efficient, though it is too sparse to be fully helpful.
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 tool with 4 parameters, 0% schema description coverage, no annotations, and no output schema, one sentence is not enough. An agent lacks parameter meanings, usage conditions, and behavioral expectations needed to invoke the tool 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% with 4 parameters. The description does not explain assembly_id, file_path_or_id, position, or rotation, nor does it clarify the required 3-item position array, the optional rotation array, or the difference between a file path and an ID. It fails to compensate for the complete lack of schema descriptions.
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 gives a clear verb ('Add') and a specific resource ('component reference to an assembly'). It distinguishes the operation from creating an assembly, but does not explicitly differentiate from siblings like create_assembly, insert_block, or remove_component.
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 provided. It does not say when an agent should prefer add_component over create_assembly, insert_block, or other assembly/component operations, nor does it mention prerequisites like an existing assembly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_coincidentD
Add a coincident constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| point_a | Yes | ||
| point_b | Yes | ||
| entity_a | Yes | ||
| entity_b | 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 says essentially nothing. The term 'coincident' implies that geometry is being made to share a point, but there is no disclosure of preconditions, failure modes, or effects on the model.
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?
It is a single short, front-loaded sentence with no wasted wording. However, for a tool with four required parameters, this brevity reflects under-specification rather than genuine conciseness.
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 four required parameters, 0% schema coverage, no annotations, and no output schema, the description is completely inadequate for an agent to invoke this tool correctly. Nothing compensates for the missing parameter and behavioral information.
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 description mentions no parameters at all. The four required parameters (entity_a, point_a, entity_b, point_b) are entirely undocumented in both the schema and the description, leaving their expected formats (IDs? point names?) ambiguous.
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 'Add a coincident constraint' is a near-verbatim restatement of the tool name add_constraint_coincident, with no additional detail. It conveys a verb+domain concept but offers nothing to distinguish it from the many sibling constraint tools beyond the word 'coincident' already present in the name.
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 use this constraint versus alternatives such as add_constraint_concentric, add_constraint_tangent, or the many other add_constraint_* siblings. No prerequisites, no context for selection are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_concentricD
Add a concentric constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| circle_a | Yes | ||
| circle_b | 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 nothing: not what a concentric constraint does to the referenced circles, whether the entities must already exist, whether existing geometry moves, or whether the operation is reversible. For a mutation tool with zero annotation coverage this is a complete 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?
It is short, but the brevity is under-specification rather than economy: a single sentence with no actionable content. It is front-loaded only in the sense that there is nothing else.
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 two-parameter mutation tool with no annotations, no output schema, and no parameter descriptions leaves the agent with nothing beyond the name. Everything needed to invoke it correctly is absent.
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 both parameters. 'circle_a' and 'circle_b' are undocumented as to whether they are entity handles, names, IDs, or numeric radia, and the description supplies no compensating detail. An agent cannot reliably format these values.
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 is a near-verbatim restatement of the tool name: 'add_constraint_concentric' -> 'Add a concentric constraint.' It confirms a verb and a resource, but adds no scope, no subject (which two objects get constrained) and no differentiation from the sibling 'mate_concentric', which reads as the same operation.
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 or when-not-to-use guidance. The agent is not told how this differs from mate_concentric, nor whether it applies inside sketches, assemblies, or already-created geometry. Nothing in the text helps choose between it and the other add_constraint_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_equalD
Add a equal constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_a | Yes | ||
| entity_b | 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 nothing: not whether the entities must already exist, whether the constraint is persistent, what happens on conflict with existing constraints, or whether the operation is reversible.
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 single sentence is short, but it is under-specified rather than concise, and it contains a grammatical error ('a equal'). Brevity here reflects missing information, not efficiency.
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 two entirely undocumented required parameters sitting among a dozen sibling constraint operations, the description is far too thin to let an agent 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?
Both required parameters (entity_a, entity_b) have 0% schema description coverage and the description adds no meaning — it never explains that these are the two entities being constrained equal, nor what form an entity reference takes.
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 is essentially a restatement of the tool name ('add_constraint_equal' → 'Add a equal constraint'), with no scope or distinguishing detail beyond the obvious. It does imply two entities are related by equality, but it never says what kind of entity is valid or how this differs from the many sibling add_constraint_* 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?
There is no guidance on when to use this constraint versus add_constraint_coincident, add_constraint_parallel, add_constraint_concentric, or the other constraint siblings, and no mention of prerequisites. An agent gets no basis for selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_fixedC
Add a fixed constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | 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 says nothing about what a fixed constraint does to the entity (locking it in place), whether it's reversible, what permissions or preconditions are needed, or how it interacts with other constraints. 'Add a fixed constraint' restates the name with zero added context.
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?
Extremely short — only four words. It's front-loaded but so under-specified that brevity reflects omission rather than efficiency.
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 geometry constraint tool with no annotations, no output schema, 0% parameter coverage, and no explanation of the fixed-constraint semantics is far too thin. The description leaves the agent unable to distinguish this from a dozen sibling constraint tools or to know what the constraint actually does.
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, but it doesn't mention entity_id at all. An agent cannot infer from the description that it must supply an entity identifier, nor what value format is expected.
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 verb (Add) and resource (fixed constraint), which is broader than a tautology but adds no differentiation. Among ~15 sibling add_constraint_* tools (coincident, parallel, tangent, etc.), 'fixed' is not explained — the agent can't tell what a fixed constraint does versus the others from the description 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?
No when-to-use guidance, no alternatives named, no prerequisites. The description doesn't mention that the entity must exist or that this anchors geometry in place.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_horizontalC
Add a horizontal constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| line_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, yet it says nothing about behavior: whether the constraint is applied immediately, what happens on conflicting constraints, whether it requires a horizontal line, or what the response is. 'Add' implies mutation but no mutation details (permissions, reversibility) are given.
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 one-line description is front-loaded and not padded, but its brevity is under-specification rather than genuine conciseness. There is nothing structurally wrong, only too little content.
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 an undocumented required parameter, the description omits essentially all the context an agent needs to invoke it correctly. It is markedly under-documented.
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 required parameter line_id has 0% schema description coverage, and the description does not mention it at all or explain what it identifies. The description fails to compensate for the documentation 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?
States a specific verb ('Add') and a specific resource ('horizontal constraint'), so the operation is unambiguous. However, it offers no differentiation from the large family of sibling constraint tools (add_constraint_coincident, add_constraint_parallel, etc.), leaving the agent to infer selection.
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 use this constraint versus the many alternatives, nor any prerequisites (e.g., whether an entity must already be selected or that only line_id is supplied). Usage must be entirely inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_midpointD
Add a midpoint constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| line_id | Yes | ||
| point_id | 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, yet it discloses nothing: no mutation semantics, no required permissions, no note on whether the constraint is reversible or how it interacts with existing constraints on the point/line.
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 short sentence with no filler, but the brevity stems from under-specification rather than tight editing — there is nothing to front-load because nothing is said.
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, no parameter documentation, and a one-line description for a constraint-creation tool with two required parameters. An agent lacks everything needed to call it correctly — which entity moves, what fails, what is returned.
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 two required parameters. The description adds no meaning: it does not clarify that line_id identifies the line whose midpoint is used or how point_id relates to it, leaving the core semantics of the constraint ambiguous.
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 restates the tool name almost verbatim ("Add a midpoint constraint") without explaining the operation's semantics — e.g. that a point is constrained to the midpoint of a line. It doesn't distinguish itself from the many sibling add_constraint_* tools beyond the word 'midpoint'.
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 constraint versus alternatives such as add_constraint_coincident or add_constraint_symmetric, and no preconditions (e.g. point and line must already exist and be unconstrained) are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_parallelD
Add a parallel constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| line_a | Yes | ||
| line_b | 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 disclosure burden. It does not state that this creates a persistent geometric relation, whether it modifies existing geometry, what selection state is required, or what errors occur when the inputs cannot be made parallel.
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 one-sentence form is brief but under-specified rather than economical. It spends no words on the information needed to invoke the tool and offers only a fragment of the name restated.
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 constraint-creation tool with two undocumented required parameters, no annotations, and no output schema, the description is far too thin. It omits the input contract, behavioral effects, and sibling differentiation that an agent needs 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% for the two required parameters, line_a and line_b. The description never mentions them, so an agent cannot learn what the two strings represent (entity IDs, names, handles) or what makes them valid inputs.
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 'Add a parallel constraint' merely restates the tool name verbatim. It does not clarify what entity types are constrained, how it differs from siblings like add_constraint_perpendicular or mate_parallel, or what the resulting constraint means. The agent learns nothing beyond the name.
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 alternatives named. The agent cannot tell whether this applies to sketch lines, 3D edges, or assembly components, nor when to choose it over the many other constraint and mate tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_perpendicularD
Add a perpendicular constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| line_a | Yes | ||
| line_b | 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, yet it discloses nothing about behavior: not whether it modifies the model, requires selected entities, resolves geometry, or is reversible. For a mutation tool with zero annotation coverage this is a critical 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?
It is a single short sentence with no padding, but that brevity is under-specification rather than conciseness — nothing is front-loaded because nothing of substance is present.
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 mutation tool with no annotations, no output schema, no parameter documentation, and a large family of near-identical sibling constraint tools, the description is far too thin to support 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 there are two required parameters (line_a, line_b). The description never mentions them, so the agent must guess what identifiers these expect (handles, names, entity IDs) and how the perpendicular relationship is applied between them.
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 ('Add') and a specific constraint type ('perpendicular'), which does distinguish it from siblings like add_constraint_parallel or add_constraint_tangent. However, it does not explain what the constraint does or what geometry it relates, so it only marginally exceeds restating the tool name.
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 use this tool versus the many other constraint tools, no prerequisites, and no indication of the state the model must be in. The agent is given nothing to route on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_symmetricD
Add a symmetric constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | Yes | ||
| entity_a | Yes | ||
| entity_b | 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 disclosure burden, yet it says nothing about what happens to the referenced entities, whether it requires an axis of symmetry, whether it is reversible, or how failures are reported. It merely echoes the name.
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 single sentence is short and front-loaded, so there is no wasted prose. But its brevity reflects under-specification rather than efficient communication — it is minimal to a fault for a 3-parameter mutation 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?
With no annotations, no output schema, and zero parameter documentation, the description leaves the agent without the minimum information needed to call this tool correctly. The context signals show all three parameters are required, which the description never acknowledges.
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 all three parameters (entity_a, entity_b, axis) are undocumented in both schema and description. The description gives no hint that a symmetric constraint relates two entities about an axis, leaving the semantics of every parameter opaque.
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 (Add) and resource (symmetric constraint), so the operation is identifiable. However, it adds nothing beyond the tool name itself and does not distinguish it from the many sibling constraint tools in any meaningful way.
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 use this constraint versus alternatives (e.g. concentric, parallel, equal) and no mention of prerequisites or the modelling context in which a symmetric constraint applies. Only implied usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_tangentD
Add a tangent constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_a | Yes | ||
| entity_b | 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 nothing: not whether the constraint triggers a solver update, whether it can fail on incompatible geometry, whether existing constraints conflict, or what is returned 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 short sentence with no wasted words, but the brevity is under-specification rather than efficiency; there is no structure because there is essentially no content.
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, mandatory-argument mutation tool with no annotations, no output schema, and zero schema documentation, the description is far too thin for an agent to invoke it confidently.
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 description says nothing about entity_a/entity_b. The agent cannot tell whether these are entity IDs, names, handles, or what geometric types each may reference.
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+resource ('Add a tangent constraint'), which is more than a bare tautology, but it adds nothing the tool name doesn't already convey and does not distinguish it from the many sibling constraints (coincident, parallel, perpendicular, concentric). An agent can identify the operation but gains no discriminating information.
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 statement of when to use this constraint versus other constraints, no prerequisites, and no mention of which entity combinations are valid. The usage context is implied only by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_constraint_verticalC
Add a vertical constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| line_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full disclosure burden, yet it only implies a mutating 'add' operation. It says nothing about whether the constraint is idempotent, what happens if line_id does not reference a valid line entity, whether the constraint can later be removed, or how failure is reported.
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 short, front-loaded sentence with no wasted words, but its brevity stems from under-specification rather than efficiency. It is not padded, yet it conveys almost nothing beyond the title.
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 an undocumented required parameter, the definition is far too thin. It omits validation rules, error semantics, and any indication of how the new constraint relates to existing geometry, leaving the agent to guess at 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 required parameter line_id is undocumented in the schema. The description does not mention line_id at all, so it neither explains that it must be the ID of an existing line entity nor compensates for the coverage gap. Only the self-evident parameter name carries meaning.
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 ("Add a vertical constraint"), so its purpose is legible. But it essentially restates the tool name verbatim and does no work to distinguish it from the many sibling constraint tools (add_constraint_horizontal, add_constraint_concentric, add_constraint_coincident), all of which share the same 'add_constraint_*' pattern.
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 use this versus add_constraint_horizontal or the other constraint siblings, no prerequisites (e.g. that the referenced geometry must already exist), and no conditions or exclusions. The agent is left to infer everything from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_continued_dimensionD
Add continued dimensions.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes |
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. It says nothing about side effects, permissions, whether it modifies the drawing, what happens on invalid points, or what is returned. It is merely a restatement of the tool name.
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 a single short sentence and is front-loaded, but it is under-specified rather than appropriately concise. It omits essential information that an agent would need to invoke the tool correctly.
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 complexity of the CAD dimensioning domain, the presence of many sibling dimension tools, no annotations, no output schema, and zero schema description coverage, the description is not complete enough for correct tool selection or 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 description adds no meaning for the single required parameter 'points'. It does not explain units, coordinate order, coordinate space, why a minimum of two points is required, or how those points define a continued dimension.
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 ('Add continued dimensions'), so the general operation is clear. However, it does not explain what a 'continued dimension' is or how it differs from sibling dimension tools such as add_baseline_dimension, add_linear_dimension, or add_aligned_dimension. The resource term is therefore ambiguous in context.
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 about when to use this tool, when not to use it, or which sibling dimension tool is the alternative. With many dimension-related siblings, the absence of routing guidance is a severe gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_coordinate_gridC
Add a coordinate grid using the provided extent and spacing.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| extent | No | ||
| spacing | Yes | ||
| drawing_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose mutation behavior. It says 'Add' but omits what entities are created, whether an active drawing is required, default layer handling, undo implications, and any side effects.
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 a single front-loaded sentence with no filler. It is appropriately brief, though its terseness borders on under-specification for a mutation 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?
For a 4-parameter mutation tool with no annotations and no output schema, the description is far too sparse. It does not cover required drawing_id, optional extent or layer semantics, or any behavioral context needed to invoke the tool 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% for four parameters, so the description should compensate. It mentions extent and spacing but omits drawing_id (required) and layer, and does not explain the extent object structure or spacing 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?
The description uses a specific verb 'Add' with the resource 'coordinate grid', making the tool's basic action clear. It does not differentiate this tool from other add_* or map-drafting siblings, so it stops 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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The phrase 'using the provided extent and spacing' implies inputs but not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_detail_viewD
Add a add_detail_view to a drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| center | No | ||
| cut_line | No | ||
| position | No | ||
| solid_id | No | ||
| direction | No | ||
| view_type | No | ||
| drawing_id | Yes | ||
| parent_view_id | 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, and it discloses nothing: whether the drawing must already exist, whether the view is created immediately or batched, what happens if parent_view_id is omitted, or what is returned. For a mutation tool with 9 parameters this is a complete void.
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?
It is a single short sentence with no waste, but its brevity comes from under-specification rather than economy. The duplicated article in 'a add_detail_view' also suggests careless generation.
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 9-parameter, mutation-style drawing operation with no annotations, no output schema, and nested coordinate objects, the description supplies none of the information an agent needs to invoke it correctly. It is effectively absent.
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?
With 9 parameters, nested objects (position, cut_line), and 0% schema description coverage, the description mentions zero parameters. An agent cannot know what scale, center, cut_line, direction, view_type, or parent_view_id mean or in what units they are expressed.
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 is a tautology: 'Add a add_detail_view to a drawing' simply restates the tool name and adds only the banal fact that it targets a drawing. It gives no indication of what a detail view is, how it differs from add_view, add_section_view, or add_auxiliary_view, and contains a grammatical redundancy that signals it was auto-generated.
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 use this tool versus its many siblings (add_view, add_section_view, add_auxiliary_view, create_viewport, update_drawing_views). No prerequisites, no exclusions, no workflow context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_diameter_dimensionC
Add a diameter dimension.
| Name | Required | Description | Default |
|---|---|---|---|
| circle_id | Yes | ||
| leader_point | 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 of behavioral disclosure, and it discloses nothing: no statement about whether this mutates the drawing, creates an annotation entity, requires a valid circle_id, or is undoable. An 'add' verb implies creation, but nothing about side effects or failure modes is given.
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 single short sentence is trim and front-loaded, but its brevity reflects under-specification rather than efficiency — there is no waste because there is almost no content.
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 a nested-object parameter, zero schema description coverage, no annotations, and no output schema, a four-word description is insufficient. An agent cannot reliably construct a valid call from this definition alone.
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 description documents neither parameter. The agent must infer that circle_id references a circle entity and that leader_point is the nested {x,y} location for the dimension leader, with no help from either the schema or the description.
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 ('add a diameter dimension'), so the basic action is identifiable. However, it does nothing to distinguish itself from the many sibling dimension tools, most notably the near-identical 'add_dimension_diameter', leaving the agent unable to tell which one to pick.
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 at all. The description does not say when a diameter dimension is preferable to add_radius_dimension, add_aligned_dimension, or the redundant add_dimension_diameter sibling, nor does it state prerequisites such as an existing circle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_dimension_angularD
Add a dimension_angular constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| line_a | Yes | ||
| line_b | 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 nothing: not whether the dimension is associative/parametric, whether entities must already exist, what happens on failure, or 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?
It is short, but this is under-specification rather than conciseness — a single sentence that adds no information beyond the tool name.
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 3-parameter creation tool with no annotations, no output schema, and no parameter documentation, the description is completely inadequate to enable a correct call.
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?
Three required parameters (line_a, line_b, value) with 0% schema description coverage, and the description explains none of them. An agent cannot tell whether line_a/line_b are entity handles, IDs, or names, nor what units 'value' uses.
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 only restates the tool name, saying it adds a 'dimension_angular constraint' without clarifying what such a dimension measures or what it applies to. Sibling add_angular_dimension exists with an almost identical name and no distinction is drawn between them, leaving the agent unable to disambiguate.
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 use this tool versus add_angular_dimension or the many other add_*_dimension siblings. No prerequisites, no context, no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_dimension_diameterD
Add a dimension_diameter constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| circle_id | 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 it discloses nothing: not whether an entity must pre-exist, whether the target must be a circle, whether the constraint persists, or what happens on failure. Bare minimum not met.
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 short sentence with no waste, but there is hardly any content to be concise about – the brevity reflects under-specification rather than discipline.
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, 0% parameter description coverage, and crowded sibling space (multiple add_*dimension and constraint tools), the description leaves an agent unable to determine correct targets, units, or workflow.
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, but it says nothing about what circle_id or value mean (units? edge reference? identifier format?). Schema provides only property names and types.
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 'Add a dimension_diameter constraint' restates the tool name with virtually no added specificity. Among dozens of sibling add_* tools, it does not distinguish what target this dimension applies to (the schema's circle_id hints it, but the description does not).
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 indication of when to use this versus add_radius_dimension, add_diameter_dimension, add_aligned_dimension, or other dimension siblings. No prerequisites, no context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_dimension_linearD
Add a dimension_linear constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| value | Yes | ||
| point_a | Yes | ||
| point_b | 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 of behavioral disclosure, and it discloses nothing. It does not say whether the constraint is persistent, what happens on failure, whether referenced points must exist, or 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?
It is a single short sentence, but it is under-specified rather than concise — there is no wasted text because there is essentially no content. Brevity here reflects a lack of information, not efficient communication.
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 4-parameter mutation tool with 0% schema coverage, no annotations, and no output schema, the description is completely inadequate. It offers nothing an agent needs in order to invoke the tool 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% across 4 parameters, and the description adds no meaning for point_a, point_b, value, or label. An agent cannot tell from either source what these parameters should reference or how value is interpreted.
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 only restates the tool name ('Add' + 'dimension_linear constraint') without explaining what a linear dimension constraint does or what geometry it applies to. It is especially unhelpful given siblings like add_linear_dimension, add_aligned_dimension, and the other add_dimension_* tools, none of which are distinguished from this one.
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 use this tool versus the many sibling dimension tools, no prerequisites, and no mention of required selections or sketch context. Nothing tells an agent how to choose between it and add_linear_dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_dimension_radialD
Add a dimension_radial constraint.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| circle_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, and it discloses nothing: not whether the dimension is associative, whether it requires an existing circle, whether it mutates the drawing, or what errors occur on failure.
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?
It is a single short sentence with no wasted words, but its brevity comes from under-specification rather than discipline. Short is not the same as concise when nothing informative is conveyed.
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 mutation tool with no annotations, no output schema, and 0% parameter documentation, the description is completely inadequate. Nothing an agent needs to invoke it correctly is present.
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 both parameters. 'circle_id' and 'value' are undocumented in both schema and description; the agent cannot tell whether circle_id references an entity ID or a named circle, nor whether 'value' is an override or an offset distance.
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 restates the tool name almost verbatim ('Add a dimension_radial constraint'), which is a tautology rather than an explanation of what gets created or where. It gives no hint that this places a radial dimension annotation on a circle entity, and it does nothing to distinguish itself from the sibling 'add_radius_dimension' or 'add_dimension_diameter'.
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, when-not-to-use, or alternative guidance is provided at all. With three near-synonymous siblings (add_radius_dimension, add_dimension_diameter, add_aligned_dimension) in the tool list, the absence of routing guidance is actively harmful to tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_explode_stepC
Add an explode step to an exploded view.
| Name | Required | Description | Default |
|---|---|---|---|
| view_id | Yes | ||
| distance | Yes | ||
| direction | Yes | ||
| assembly_id | Yes | ||
| component_ids | 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 discloses nothing. It does not say the tool mutates an existing view, whether the step is appended or replaces existing steps, whether the call is undoable/transactional, or what happens on invalid component or view ids.
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 short sentence with no filler, and the action is front-loaded. It is concise, but the brevity stems from under-specification rather than efficiency, which caps the score at merely adequate.
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?
This is a mutating CAD operation with five required geometric parameters, no annotations, no output schema, and no parameter documentation. The description supplies none of the prerequisite, side-effect, or return-value context an agent needs 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% across five required parameters (assembly_id, view_id, component_ids, direction, distance). The description mentions none of them, so an agent gets no meaning for the 3-vector direction convention, the units/scale of distance, or whether view_id must belong to assembly_id.
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 concrete verb and resource: it adds an explode step, and it scopes that step to an exploded view. An agent can tell roughly what the tool does, but nothing distinguishes it from siblings like create_exploded_view or animate_explode, which occupy the same exploded-view domain.
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 mention of prerequisites (e.g., that an exploded view must already exist), and no routing to alternatives such as create_exploded_view for creating the view or animate_explode for playback. The agent must infer placement in the workflow entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_gdt_frameD
Add symbol annotation add_gdt_frame.
| Name | Required | Description | Default |
|---|---|---|---|
| datum | No | ||
| symbol | No | ||
| options | No | ||
| entities | No | ||
| position | No | ||
| circle_id | No | ||
| roughness | No | ||
| tolerance | 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, and it discloses nothing: no statement of whether the frame is attached to entities, whether it requires a datum, what happens with the 'datum'/'symbol' fields, or any side effects. For an 8-parameter drawing-annotation mutation this is a serious 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?
It is short, but the brevity comes from under-specification rather than efficiency. A single sentence that merely echoes the tool name does not earn 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 an 8-parameter annotation tool with no annotations, no output schema, and 0% schema coverage, the description is completely inadequate. Nothing an agent needs to call it correctly is present.
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 8 parameters, including nested objects (position, options) and semantically loaded fields like datum, symbol, roughness, and tolerance. The description adds no meaning for any of them, leaving the agent to guess field formats and valid values.
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 is essentially a tautology, restating the tool name with the words 'Add symbol annotation' appended. It never explains what a GDT (geometric dimensioning and tolerancing) frame is, nor distinguishes it from the many adjacent annotation siblings such as add_surface_finish_symbol, add_weld_symbol, or add_center_mark.
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 use this tool, when not to, or which sibling annotation tool to prefer. The agent is given nothing to route on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_leaderC
Add a leader annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | ||
| points | Yes | ||
| content | No | ||
| annotation | 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 burden, and it discloses almost nothing: it does not say whether the leader is attached to existing geometry, whether the operation is reversible, or what the call returns. Only the bare implication of a write operation is conveyed.
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 single sentence is short, but it is not concise in the useful sense — it is under-specified rather than economical. There is no front-loaded scoping or actionable information beyond the tool name.
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, no parameter descriptions, and a large set of similar sibling tools, the definition is inadequate for correct invocation. An agent cannot determine valid inputs or how this leader differs from the multileader alternative.
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 four parameters, and the description explains none of them. Critical semantics such as requiring at least two points, the meaning of the opaque 'annotation' string, or allowed 'style' values are left entirely undocumented.
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 verb and resource ("Add a leader annotation"), so the basic action is identifiable, but it is essentially a restatement of the tool name and adds no distinguishing detail. Siblings such as add_multileader, add_text, and add_mtext make it important to say what kind of leader this creates, which is not done.
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 use add_leader versus add_multileader or the text/dimension tools. No prerequisites (e.g., an existing annotation handle, an active drawing) are mentioned, leaving the agent to infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_legendC
Add a simple map legend annotation listing domain layers or categories.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| layer | No | ||
| title | No | ||
| position | Yes | ||
| drawing_id | 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. It implies a mutating annotation insert but says nothing about required preconditions (drawing_id must exist), whether the legend is undoable/removable, how layer/title affect placement, or what happens with duplicate or invalid items.
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 the verb first and zero filler. It is appropriately short, though the brevity is partly the cause of the missing detail elsewhere.
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 mutation tool with 5 parameters (3 required, nested position object), no annotations, no output schema, and 0% schema description coverage. One sentence cannot cover the preconditions and parameter meaning an agent needs to call this 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 explain 5 parameters and it explains essentially none. 'domain layers or categories' loosely maps to the items array, but drawing_id, position (x/y), layer, and title are entirely unelaborated.
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 ('Add a ... map legend annotation') plus its content scope ('listing domain layers or categories'). It distinguishes itself reasonably from add_north_arrow/add_scale_bar by describing what the annotation contains, though it never names a sibling.
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, no prerequisites, no alternatives. The word 'simple' hints at a scope boundary but never says when a different legend approach or tool is warranted, nor whether a drawing/layout must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_linear_dimensionC
Add a linear dimension annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| p1 | Yes | ||
| p2 | Yes | ||
| style | No | ||
| offset | 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 only restates the action ('Add') without disclosing required inputs, side effects, coordinate system expectations, or whether it modifies an existing drawing/document.
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 a single short sentence with no wasted words and is front-loaded. However, it is under-specified rather than informative, so its brevity reflects missing content more than disciplined conciseness.
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 four undocumented parameters, nested point objects, no annotations, and no output schema, this description is inadequate. It gives the agent almost nothing beyond the tool name to invoke the tool 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% for four parameters (p1, p2, style, offset), including nested objects with x/y coordinates. The description provides no parameter meaning at all, leaving the agent unable to interpret p1, p2, offset, or style from either the schema or the description.
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 clear verb and resource ('Add a linear dimension annotation'), so the basic purpose is understandable. However, it fails to differentiate from near-identical siblings such as 'add_dimension_linear' and 'add_aligned_dimension', leaving the agent unable to choose between them 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?
There is no guidance on when to use this tool versus the many related dimension tools (aligned, angular, radius, diameter, ordinate, baseline, continued). Usage is only implied by the tool name, with no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_mtextC
Add a multi-line text annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | ||
| width | Yes | ||
| height | Yes | ||
| content | Yes | ||
| position | 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. It only says 'add', giving no information about whether the new entity is selected/returned, what happens on failure if position/width are invalid, or the coordinate/unit conventions expected for placement.
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 single sentence is front-loaded and free of filler, but it is under-specified rather than concise for a tool with five parameters and a nested position object. It earns its place but leaves the definition sparse.
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 mutation tool with no annotations, no output schema, 0% parameter coverage, and a nested object parameter needs substantially more description than one sentence. Nothing tells the agent how to call it correctly or what it returns.
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 5 parameters (content, position, width, height, style). The description only hints that content is text; it says nothing about position being an {x,y} object, that width/height must be positive, or what style accepts.
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 (add + multi-line text annotation), and the word 'multi-line' implicitly distinguishes it from the sibling add_text (single-line). However, it never names or contrasts the sibling explicitly, so the agent must infer 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?
No when-to-use guidance, no prerequisites, and no mention of alternatives despite siblings add_text, add_leader, and add_multileader occupying adjacent use cases. The agent is left to guess which annotation tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_multileaderC
Add a multileader annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | ||
| points | Yes | ||
| content | No | ||
| annotation | 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. 'Add' implies a mutation/creation, but nothing is said about required context (active document/layer), what the new entity is attached to, or side effects; for a 0%-annotated mutation tool this is a significant 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?
A single clean sentence with no padding and no wasted clauses, so it is not verbose. But it is essentially a restatement of the tool name and adds almost nothing, so it is terse to the point of under-specification.
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 four parameters at 0% schema coverage, no annotations, and no output schema, the description is far too thin. An agent has no basis for supplying style, content, annotation, or the points structure 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% and the description adds no parameter meaning whatsoever. The four params -- style, points, content, annotation -- are undocumented, and the meaning of points (minItems 2, arrow vs. landing locations) and the content/annotation overlap are left entirely ambiguous.
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 (Add) and resource (multileader annotation), which is a distinct CAD entity type. However, it does not differentiate this from the very similar sibling add_leader or from related annotation tools like add_text/add_mtext, leaving the agent to infer 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?
No when-to-use guidance and no mention of when to prefer add_multileader over add_leader, add_text, or the various add_*_dimension tools. The description contains zero routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_north_arrowC
Add a north arrow symbol annotation for a map drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| layer | No | ||
| position | Yes | ||
| drawing_id | Yes |
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. 'Add' implies a write/mutation operation, but the description does not disclose whether the drawing is modified in place, what permissions are needed, or what happens to existing annotations.
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 a single front-loaded sentence with no redundant wording. However, it is too sparse to be considered appropriately sized for a tool with four undocumented parameters; brevity here reflects under-specification rather than efficient conciseness.
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 0% schema description coverage, the description should do more to explain required inputs and behavior. It states the basic purpose but leaves the agent without enough information to call the tool correctly, especially regarding drawing_id, position, size, and layer.
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?
There are 4 parameters with 0% schema description coverage, including required drawing_id and a nested position object. The description mentions none of these parameters, so it does not compensate for the missing schema documentation. An agent must infer all parameter meanings from names alone.
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 gives a specific verb and resource: 'Add a north arrow symbol annotation for a map drawing.' This is clear enough to distinguish it from unrelated siblings like create_box or add_dimension_linear, but it does not explicitly differentiate it from similar annotation tools such as add_scale_bar or add_legend.
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 'for a map drawing' implies a context, but there is no explicit guidance on when to use this tool versus alternatives or what prerequisites exist. No when-to-use, when-not-to-use, or sibling routing information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_ordinate_dimensionC
Add an ordinate dimension.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | Yes | ||
| point | Yes | ||
| datum_point | 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 of behavioral disclosure. It says nothing about side effects, required coordinate frame, mutation impact, undo behavior, or what happens if the dimension references invalid points.
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 single sentence is under-specified rather than concise. For a mutation tool with three required parameters and nested objects, this level of brevity omits information the agent needs to call it correctly.
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 zero parameter description coverage in the schema, the description is completely inadequate for this tool. It leaves the agent without guidance on required inputs, coordinate semantics, or behavioral effects.
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 description adds no meaning for any of the three required parameters (point, datum_point, axis). It does not explain the coordinate expectations, the role of the datum point, or the axis enum beyond what the schema already shows.
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 clear verb and resource: 'Add an ordinate dimension.' An agent can tell this creates an ordinate dimension, but the description does not differentiate it from the many sibling dimension tools such as add_aligned_dimension or add_baseline_dimension.
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 about when to use an ordinate dimension versus other dimension types, nor any prerequisites or contextual conditions. The agent is left to infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_radius_dimensionD
Add a radius dimension.
| Name | Required | Description | Default |
|---|---|---|---|
| arc_id | Yes | ||
| leader_point | 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 disclosure burden, and it discloses nothing. It does not say whether this mutates the drawing, whether the arc must already exist and be committed, whether the operation is undoable, or how leader_point affects placement.
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 five-word sentence is not concise so much as under-specified; it is front-loaded only because there is nothing else to front-load.
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 a nested-object parameter, no annotations, no output schema, and zero parameter documentation, the definition is completely inadequate. An agent cannot reliably construct a correct call from this description.
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?
Two required parameters with 0% schema description coverage, including a nested leader_point object with x/y. The description mentions neither arc_id nor leader_point, so the agent gets no explanation of what the arc reference is or how the leader point is interpreted. Full compensation was required and none was given.
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 is a verbatim prose restatement of the tool name 'add_radius_dimension' — there is no information beyond what the identifier already encodes. It also fails to distinguish this tool from near-identical siblings such as add_dimension_radial and add_diameter_dimension that appear in the same toolset.
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, no prerequisites, and no mention of the sibling dimension tools an agent would have to choose between. The only hint of usage is inferable from the name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_scale_barC
Add a simple scale bar annotation to a map drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| layer | No | ||
| position | Yes | ||
| segments | No | ||
| drawing_id | Yes | ||
| segment_length | 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-disclosure burden. It implies a mutation ('Add'), but does not describe side effects, whether the scale bar is created on a layout or model space, required drawing context, return behavior, or undo 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 description is a single front-loaded sentence with no wasted words, which is structurally clean. However, it is arguably too terse for a six-parameter nested-object tool with no schema descriptions, leaving necessary context absent.
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 six parameters, 0% schema description coverage, no annotations, and no output schema, the description is not complete enough for reliable invocation. It never explains coordinates, units, required drawing state, or the role of optional parameters such as segments, label, and layer.
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 six parameters, and the description adds no meaning for any of them. It does not explain drawing_id, position coordinates, segment_length units, segments count, label, or layer, leaving the agent to infer all parameter semantics from names and types alone.
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 ('Add') and resource ('scale bar annotation') and scopes it to a 'map drawing.' This distinguishes it from other annotation tools like add_north_arrow or add_legend in practice, but it does not explicitly name or differentiate from those siblings.
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 description gives no explicit when-to-use guidance, prerequisites, or alternative tools. The phrase 'to a map drawing' provides minimal context, but an agent receives no instruction on when this scale bar tool should be chosen over related drawing/annotation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_section_viewD
Add a add_section_view to a drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| center | No | ||
| cut_line | No | ||
| position | No | ||
| solid_id | No | ||
| direction | No | ||
| view_type | No | ||
| drawing_id | Yes | ||
| parent_view_id | 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 disclosure burden, and it discloses nothing. It does not state whether this mutates the drawing, requires a specific drawing state, how the cut_line/direction/view_type interact, or what the result is.
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 single sentence is brief, but its brevity comes from under-specification rather than economy — it is a duplicated-word tautology with no informational content.
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 9-parameter mutation tool with no annotations, no output schema, nested objects, and 0% schema coverage, the definition is completely inadequate. An agent cannot reliably invoke 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% across 9 parameters, including ambiguous ones like direction, view_type, solid_id, parent_view_id, and the nested cut_line array of positions. The description supplies zero clarification, leaving the agent with no way to populate these correctly.
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 is a circular restatement of the tool name ('Add a add_section_view to a drawing'), which conveys no meaning an agent couldn't already infer. It fails to explain what a section view is or how it differs from the many sibling view-creation tools (add_view, add_detail_view, add_auxiliary_view, create_viewport).
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 use this tool versus add_view, add_detail_view, or add_auxiliary_view, nor any mention of prerequisites such as requiring an existing drawing or cut line. The agent is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_surface_finish_symbolD
Add symbol annotation add_surface_finish_symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| datum | No | ||
| symbol | No | ||
| options | No | ||
| entities | No | ||
| position | No | ||
| circle_id | No | ||
| roughness | No | ||
| tolerance | 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 burden of behavioral disclosure. It discloses nothing about whether this mutates the drawing, what permissions are needed, what the symbol attaches to, or how 'datum', 'roughness', and 'tolerance' affect the result. Total absence of behavioral context.
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?
It is a single short sentence with no wasted words, but it is under-specified rather than concise: it conveys no information beyond the name it echoes, so the brevity reflects missing content.
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 8 undocumented parameters, a nested position object, no annotations, and no output schema, the description is grossly inadequate. It gives an agent nothing to construct a valid call for what appears to be a drawing annotation 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?
There are 8 parameters at 0% schema description coverage, including a nested 'position' object and an open-ended 'options' object. The description adds zero meaning for any of them, so an agent cannot infer the role of entities, symbol, datum, roughness, or tolerance.
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 'Add symbol annotation add_surface_finish_symbol' is essentially a restatement of the tool name with no explanation of what a surface finish symbol annotation is or what it accomplishes. Beyond the verb 'add', an agent learns nothing distinguishing this from siblings like add_weld_symbol or add_gdt_frame.
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. The many sibling annotation tools (add_leader, add_center_mark, add_gdt_frame) are not referenced, leaving the agent no basis for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_textC
Add a single-line text annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | ||
| height | Yes | ||
| content | Yes | ||
| position | Yes | ||
| rotation | 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. 'Add' implies a mutation, and 'single-line' hints at the content constraint, but nothing is said about coordinate space, what layer the annotation lands on, undo/transaction behavior, or whether the operation is reversible.
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 short, front-loaded sentence with no filler, which is structurally sound. But the brevity here reflects under-specification rather than economical precision, so it does not earn more than a middling score.
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 five-parameter mutation tool with no annotations, no output schema, and a nested object parameter, the description omits nearly everything an agent needs: units, coordinate frame, style format, and return information. It is far too thin for 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% across five parameters (content, position, height, style, rotation), including a nested position object. The description adds only a weak constraint that content must be single-line; it does not explain units for height, the reference point for position, or what style expects.
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 ('Add ... text annotation'), and the qualifier 'single-line' implicitly distinguishes it from the sibling add_mtext. However, it never names or contrasts with that sibling, so differentiation still requires the agent to infer it from the description text 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 guidance on when to use this versus add_mtext or add_leader, no exclusions, and no mention of prerequisites such as an active document or layer. The agent is left to guess the selection criteria from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_viewD
Add a add_view to a drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| center | No | ||
| cut_line | No | ||
| position | No | ||
| solid_id | No | ||
| direction | No | ||
| view_type | No | ||
| drawing_id | Yes | ||
| parent_view_id | 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, and it discloses nothing. It doesn't say whether the drawing must be active, whether the view is attached to a parent, what view_type/direction values are valid, or what the call returns.
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?
It is a single short sentence, but it is also grammatically broken ('a add_view') and conveys almost no information. Brevity here reflects under-specification rather than efficient communication.
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 9-parameter tool with nested objects, 0% schema coverage, no annotations, and no output schema, this description is nowhere near adequate. An agent has no basis for supplying required or optional parameters 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% across 9 parameters, and the description explains none of them. Meanings of scale, center, cut_line, solid_id, direction, view_type, and parent_view_id are entirely 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?
The description 'Add a add_view to a drawing' essentially restates the tool name and adds only the target resource (a drawing). It never explains what a 'view' is here or how this differs from siblings like add_section_view, add_detail_view, or add_auxiliary_view, leaving the agent unable to distinguish it from those 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?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as add_section_view or create_viewport. The only implied context is that a drawing must exist, which is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_weld_symbolD
Add symbol annotation add_weld_symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| datum | No | ||
| symbol | No | ||
| options | No | ||
| entities | No | ||
| position | No | ||
| circle_id | No | ||
| roughness | No | ||
| tolerance | 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 and delivers nothing. It does not state whether this mutates the drawing, what permissions are needed, what happens to the symbol after placement, or any side effects. For a mutation tool with zero annotation coverage, this is a serious omission.
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 a single short sentence with no waste, so it is concise. However, the conciseness is achieved through under-specification rather than efficiency, and the sentence awkwardly repeats the tool name as its own object ('Add symbol annotation add_weld_symbol').
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 8 parameters at 0% schema coverage, no annotations, no output schema, and nested objects, the description should carry substantial weight. It provides essentially nothing an agent needs to call the tool correctly, falling far short of the complexity of the tool.
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 8 parameters, including nested objects (position with x/y) and an open-ended options object. The description adds no parameter information whatsoever, leaving all eight parameters undocumented. The description had a clear opportunity to explain symbols, datum, tolerance, roughness, and the position object but did not.
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 verb and a resource ('Add symbol annotation'), which is enough to identify the operation. However, it provides no sibling differentiation, which matters because the sibling list contains many annotation-adding tools like add_surface_finish_symbol, add_gdt_frame, add_center_mark, and add_center_line. An agent cannot tell from this text what distinguishes a weld symbol from these other annotation types.
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 use this tool versus alternatives, nor any prerequisites. Given the dense population of annotation tools in the sibling list, the absence of routing guidance is a meaningful gap, though the tool name itself provides some directional signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animate_explodeC
Return a simple explode animation plan.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | ||
| view_id | Yes | ||
| assembly_id | 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. 'Return' and 'plan' weakly imply a non-mutating, informational output, but the description never states that it has no side effects, what the plan format is, or whether it requires an existing exploded view. It adds almost no behavioral context beyond the name.
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?
It is a single, front-loaded sentence with no obvious waste, which is structurally fine. But it is under-specified rather than complete, and the word 'simple' is filler that adds no actionable 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?
Given no annotations, no output schema, and 0% parameter description coverage, the description is the only source of guidance an agent has, and it supplies essentially none. It does not explain the return artifact, required context, or how the inputs shape the plan, making it inadequate for a 3-parameter tool.
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 description mentions none of the three parameters (assembly_id, view_id, fps). With both the schema and description silent on parameter meaning and constraints such as which assembly/view must already exist, the description fails to compensate for the coverage 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 verb ('Return') and a resource ('explode animation plan'), so the broad purpose is inferable. However, 'simple explode animation plan' is vague about what the plan contains, and it does not distinguish this tool from close siblings like create_exploded_view or add_explode_step. That puts it at vague-but-not-tautological.
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 (e.g., that an assembly_id must already exist), and no mention of alternatives like create_exploded_view. The agent is left to infer when this tool is appropriate from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_thesis_templateC
Apply a stored thesis/map template to an existing drawing and persist layout/export metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| figure_no | No | ||
| drawing_id | Yes | ||
| template_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It hints at a write side effect ('persist layout/export metadata') but never says whether the operation overwrites existing layout settings, what happens if the template name is unknown, whether it is reversible, or who may invoke it. For a mutation tool with zero annotation coverage this is a real 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?
One sentence, front-loaded with the verb and resource, with the secondary persistence effect appended. No padding, though it is terse enough that it omits needed detail.
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 0% parameter coverage, the description is the only source of behavioral and parameter information, and it leaves both under-specified. An agent cannot reliably determine required inputs beyond the obvious two or the side-effect semantics.
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 four parameters. The description implicitly covers drawing_id ('existing drawing') and template_name ('stored ... template'), but says nothing about title and figure_no, which the 'layout/export metadata' phrase only vaguely gestures at. It does not compensate for the parameter documentation 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 gives a specific verb ('Apply') plus a specific resource ('a stored thesis/map template to an existing drawing'), and adds a second effect ('persist layout/export metadata'). That is enough to distinguish it from the drawing/map-layout siblings. It does not name or contrast any sibling tool, so it stops 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?
There is no statement of when to use this versus alternatives such as create_map_layout or add_legend, and no prerequisites (e.g. that the named template must already exist and the drawing must already be open). The usage context is only implied by 'existing drawing'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
array_polarC
Create polar array copies around a center. Angle is in radians and includes the source entity.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| angle | No | ||
| count | Yes | ||
| center | Yes | ||
| entity_ids | 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 discloses the angle-unit convention (radians) and that the angle includes the source entity, which is genuinely useful. However, it omits whether the source entities are preserved, duplicated, or moved; whether the operation is destructive; and whether any permissions or placed-entity constraints apply.
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 tightly packed sentences; the unit convention and source-inclusion rule are front-loaded and every clause earns its place. No 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 five-parameter, nested-object, no-output-schema mutation tool with zero annotations and zero schema descriptions, the description is far too thin. It leaves the agent to guess parameter meaning, side effects, and return behavior.
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 for five undocumented parameters. It only clarifies 'angle' semantics (radians, includes source), leaving 'center', 'count', 'entity_ids', and 'unit' with no semantic help beyond their names. The unit enum and required-vs-optional distinction are unaddressed.
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 ('Create polar array copies around a center'), clearly distinguishing it from array_rectangular. The operation type is unambiguous, though the description could mention it operates on entity_ids to fully anchor the resource.
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 polar array vs. array_rectangular or mirror_2d, nor any mention of prerequisites or conditions that select this tool over siblings. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
array_rectangularC
Create rectangular array copies using row and column spacing in the current units.
| Name | Required | Description | Default |
|---|---|---|---|
| dx | Yes | ||
| dy | Yes | ||
| cols | Yes | ||
| rows | Yes | ||
| unit | No | ||
| entity_ids | 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. It discloses that copies are created in 'current units' but says nothing about whether source entities are preserved, what the units default to, or that the unit parameter overrides 'current units'. Selection-set quantities (rows-1 x cols-1 copies) are unstated.
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 efficient sentence that front-loads the verb and resource with zero 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?
A mutation tool with no annotations, no output schema, and 0% schema coverage deserves more: which entities are copied vs. retained, how many copies result, and how unit interacts with dx/dy spacing 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% across 6 parameters. The description only glosses 'rows/cols/dx/dy' and 'current units', but does not explain that dx/dy are spacings, what the unit override does, or how entity_ids are consumed. It only partially compensates for a total coverage 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?
States a specific verb (Create) and resource (rectangular array copies) plus the mechanism (row and column spacing). It is distinguishable from its closest sibling array_polar, though it doesn't explicitly name the alternative.
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, when-not-to-use, or alternative guidance. The agent must infer that this is the rectangular counterpart to array_polar from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_raster_layerB
Attach a GeoTIFF on disk to the session as a raster basemap layer. Returns the assigned layer id and parsed metadata. Use list_raster_layers / render_raster_layer_png afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| name | No | ||
| path | Yes | ||
| visible | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It discloses the state change (attaching a layer to the session) and the return (layer id plus parsed metadata), but says nothing about failure behavior for a bad path, idempotency, or whether the layer is visible by default.
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 action and resource, followed immediately by the follow-up tool hint. No 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 mutation-flavored tool with four undocumented parameters, no annotations, and no output schema, the description covers the action and return shape but leaves parameter meaning and error behavior unaddressed. It is minimally adequate rather than complete.
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 all four parameters (id, name, path, visible) are undocumented in the schema. The description only hints at 'path' via 'a GeoTIFF on disk'; id, name, and visible are left entirely unexplained, so the description fails to compensate for the coverage 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?
States a specific verb and resource: 'Attach a GeoTIFF on disk to the session as a raster basemap layer'. An agent can distinguish this from import_geotiff_metadata or get_raster_layer. It stops short of explicitly contrasting with the sibling import_geotiff_metadata, which also handles GeoTIFFs.
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 list_raster_layers / render_raster_layer_png afterwards' gives post-attach workflow guidance, which is useful. But there is no when-to-use-this vs. import_geotiff_metadata guidance, nor prerequisites such as whether the file must exist or the session must be in a particular state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_activate_documentA
Activate an already-open AutoCAD document by its exact name or full path and update the binding to that document. Does not open files. Use autocad_list_documents to identify the target.
| Name | Required | Description | Default |
|---|---|---|---|
| document | 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. It usefully discloses that the operation requires an already-open document and that it 'updates the binding' to the target, but says nothing about failure behavior when the name matches nothing, whether the prior binding is lost, or any permission requirements — notable gaps for a state-changing 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?
Three short sentences, no waste, with the core action and its key constraint ('does not open files') front-loaded before the pointer to the lookup 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?
For a one-parameter activation tool with no annotations and no output schema, the description covers the essential: what it does, the precondition, and how to obtain the argument. Only failure/edge-case behavior is absent, which is a minor 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 coverage is 0% for the single parameter, so the description must compensate. It does: the document argument accepts an 'exact name or full path' (and must be exact), which is meaningful disambiguation not present in the bare 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?
Specific verb (activate) plus resource (an already-open AutoCAD document), with the scope qualifier 'already-open' and 'Does not open files'. This cleanly distinguishes it from any file-opening sibling and from autocad_attach/detach.
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?
States the precondition (document must already be open, this does not open files) and routes the agent to autocad_list_documents to find the target. It gives clear context but does not explicitly contrast with autocad_attach or autocad_detach, which are the nearest ambiguous siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_attachA
Bind this MCP server to a COM-reachable AutoCAD application window/process and document. Use a decimal windowHandle and document name/full path returned by status/list calls; omit them to select the current target. activate defaults to true and activates the selected document; false only establishes the binding without activating it. Later commands reject if the bound document is no longer active. COM may not expose every same-version AutoCAD process.
| Name | Required | Description | Default |
|---|---|---|---|
| activate | No | ||
| document | No | ||
| windowHandle | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behavior: it binds the server, activate defaults to true, later commands reject if the bound document is no longer active, and COM may not expose every same-version process. It does not describe error behavior on failed binding or what happens if already bound, but the core behavioral traits are covered.
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 front-loaded with the binding purpose and then adds only necessary detail about parameters, activation behavior, and COM limitations. Every sentence earns its place, and the structure flows logically from purpose to usage to caveats.
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 tool's complexity, no annotations, and no output schema, the description is largely complete: it covers purpose, parameter sourcing, activation semantics, a critical dependency (bound document must remain active), and a COM limitation. It stops short of explaining return values or failure modes, which would be helpful for a tool that establishes a binding.
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: it explains that windowHandle is a decimal string from status/list calls, that document is a name or full path, and that activate defaults to true and activates the selected document. All three parameters gain meaning beyond the schema's type information.
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: bind the MCP server to an AutoCAD application window/process and document. It distinguishes this binding action from activation by explaining that activate defaults to true and that false only establishes the binding without activating it. An agent can tell this apart from sibling tools like autocad_activate_document.
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 explains where to get windowHandle and document values (from status/list calls) and clarifies that omitting them selects the current target. It also describes the activate flag's effect, giving clear context for when to use each behavior. However, it does not explicitly name alternative tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_detachA
Clear this MCP server's AutoCAD binding. Does not close AutoCAD, close a document, or discard drawing changes.
| 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 full burden, and it does useful work by disclosing that the operation is non-destructive: it does not close AutoCAD, close a document, or discard drawing changes. What is missing is whether re-attachment is possible or whether the binding must be re-established afterward, but the safety profile is well conveyed.
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, scope stated first and non-behavior stated second. Every clause earns its place and nothing is redundant with the name.
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, no-output-schema teardown tool, the description covers scope and non-destructive behavior, which is close to what an agent needs. Only the post-condition (state of the session after detaching) is left unstated.
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 to document and the description appropriately adds no parameter chatter. Baseline 4 applies for a no-parameter tool.
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 precise verb and resource ('Clear this MCP server's AutoCAD binding') and pairs it with an explicit statement of what it does NOT do, which cleanly separates it from potently destructive siblings like delete_entity or close-document behavior. An agent can identify this as the counterpart to autocad_attach 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?
Usage is implied by the attach/detach pairing in the sibling list, and the negation clause hints at when it is safe, but the description never explicitly says when to call this versus autocad_attach or whether it is required before shutdown. Adequate but with a clear gap in routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_get_variablesA
Read 1–50 AutoCAD system variables from the live document, for example CMDACTIVE, CMDNAMES, CLAYER or INSUNITS. Use readback to verify command effects; an idle state alone does not prove command success.
| Name | Required | Description | Default |
|---|---|---|---|
| names | 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 disclosure burden. It adds a useful behavioral note about verification semantics and reading from the live document, but says nothing about error handling for unknown variable names, permission/auth needs, or the shape of the returned values.
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 zero waste; the core action and scope are front-loaded before the verification guidance.
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 read tool with no output schema or annotations, the description covers what it reads, how many, examples, and a usage caution. Only the return shape and failure behavior are left unstated, which are minor gaps here.
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 reinforces the 1–50 count constraint from maxItems/minItems and provides example variable names, which communicates the naming convention the regex enforces and what kinds of values are valid.
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 resource (AutoCAD system variables) with scope ("from the live document") and concrete examples (CMDACTIVE, CLAYER, INSUNITS) that make the resource unambiguous among many autocad_* siblings.
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?
Gives a clear usage condition: use readback to verify command effects, since an idle state alone does not prove success. This implies the workflow relationship with autocad_send_command but does not explicitly name that sibling or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_list_documentsA
List COM-reachable AutoCAD applications and their open documents. Returns data.applications and data.documents with window/process identity for target selection. COM may not expose every same-version AutoCAD process.
| 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 does add genuine behavioral context: it discloses the return shape (data.applications, data.documents with window/process identity) and a real limitation ("COM may not expose every same-version AutoCAD process"). It does not explicitly confirm it is a side-effect-free read, but for a list tool the disclosure of the enumeration caveat is meaningful.
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?
Three short sentences, front-loaded with what it lists, then what it returns, then the caveat. Every sentence earns its place with no 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 zero-parameter discovery tool with no output schema and no annotations, the description supplies the return structure and a key limitation, which is enough for an agent to call and interpret it correctly. It could be slightly richer by noting it is a read-only, side-effect-free probe, but nothing essential 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 tool takes zero parameters, so there is no schema semantic to add and the baseline is 4. The description's note about window/process identity relates to outputs rather than inputs, which is harmless but not compensating for any parameter 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?
States a specific verb+resource ("List ... AutoCAD applications and their open documents") with the qualifying scope "COM-reachable". It is distinguishable from siblings like autocad_status or autocad_list_layers, though it never explicitly names a sibling or contrasts with them, so it stops 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 phrase "for target selection" and "list ... applications" implies this is a discovery step preceding autocad_attach, so usage is implied rather than stated. There is no explicit when-to-use/when-not guidance or named alternative (e.g., autocad_status), which keeps this at a minimum-viable 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_list_layersB
List layers from the live AutoCAD document through COM, respecting the current application/document binding. Separate from the internal CAD session's list_layers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It mentions 'through COM' and 'respecting the current application/document binding', which hints at COM interop and dependency on an active AutoCAD connection, but doesn't specify required permissions, error conditions, or whether it requires an attached session. There's no mention of what happens if no document is bound or if COM 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?
Two concise sentences that are front-loaded with the primary purpose and then the differentiation. No wasted words; all information is relevant.
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 tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It doesn't explain the return format (list of layers?) or the behavior of the 'limit' parameter. It also doesn't clarify what 'respecting the current application/document binding' entails operationally (e.g., what happens if not attached).
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 a single optional 'limit' parameter. The description doesn't explain what 'limit' does (e.g., maximum layers to return) or its constraints (max 500). The schema has the type and range but no description, so the description should compensate, but it doesn't mention the parameter at all.
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 (layers) plus the source (live AutoCAD document through COM). It distinguishes itself from the sibling 'list_layers' by explicitly naming it and the source difference (internally 'internal CAD session' vs live AutoCAD). This is clear, though the phrase 'respecting the current application/document binding' is a bit abstract without further context.
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 clear context: use this to list layers from a live AutoCAD instance, as opposed to the internal CAD session's list_layers. It doesn't explicitly state when to choose one over the other beyond the source distinction, but the implication is clear. No explicit exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_list_modelspace_entitiesA
List entities from the live AutoCAD document's ModelSpace, respecting the current binding. Optional filters: layer, objectName, limit. Separate from the internal CAD session's list_entities.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| limit | No | ||
| objectName | No |
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 disclose meaningful context: entities come from the live AutoCAD document and results honor the current binding. It is silent on read-only safety, whether the limit is a cap vs. required, and pagination/ordering behavior, so a fair but incomplete picture.
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?
Three short sentences, front-loaded with the core action and scope. The disambiguating sentence earns its place; there is no filler, though slightly more could be said about the filters without bloat.
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 list tool, the description covers scope and the sibling distinction but leaves the return payload (entity types, handles, attributes) and filter semantics entirely unspecified. Adequate as a minimum-viable definition, not complete.
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, but it merely repeats the property names (layer, objectName, limit) with no added meaning — no matching semantics for layer, no admissible objectName values, no explanation that limit caps result count. An agent learns nothing beyond the raw schema keys.
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 (list entities) scoped to the live AutoCAD document's ModelSpace, and explicitly distinguishes itself from the similarly named internal list_entities sibling. An agent can tell which entity-listing tool to reach for 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?
Gives a clear operating condition ('respecting the current binding') and names the alternative it is not (the internal CAD session's list_entities). It does not, however, address other plausibly overlapping siblings such as autocad_list_documents or find_entities_by_layer, so routing is only partially disambiguated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_send_commandA
Submit a raw command to the live AutoCAD document. Rejects a busy document or a bound document that is no longer active. Example: _.ZOOM _E. waitForIdle defaults to false; true polls for idle for timeoutMs (1000–30000 ms) after the COM SendCommand call returns. A separate 45-second bridge timeout bounds blocking COM calls. Result state is submitted, idle_observed or timeout; none proves semantic command success. timeout is an MCP error with result data. Query intended results afterward. Submission is not retried; after an error or timeout do not resend before inspecting the drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| timeoutMs | No | ||
| waitForIdle | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does so richly: rejection conditions, waitForIdle polling semantics, a separate 45-second bridge timeout, possible result states, the caveat that no state proves semantic success, MCP-error-on-timeout behavior, and a no-retry policy. This is unusually thorough failure-mode 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?
Front-loaded with the core purpose and example, then builds out constraints, timing, and failure semantics. Dense but each sentence conveys distinct operational information; slightly packed but nothing is clearly 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 complex, annotation-free tool with no output schema, the description covers failure modes, timing, and result-state semantics thoroughly. Minor gap: no guidance on which structured siblings supersede it or formatting rules for the command string.
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 explains waitForIdle's default and polling window, the timeoutMs range (1000-30000) and its relationship to idle polling, and gives a command syntax example. The command parameter itself could use more formatting guidance, but the two behavioral params are well covered.
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 ("Submit a raw command to the live AutoCAD document") and includes a concrete example (`_.ZOOM _E`). It is clearly distinguishable from the many structured autocad_* and geometry siblings as the raw escape-hatch tool.
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?
Gives clear operating context: rejects busy/inactive documents, explains when waitForIdle should be toggled, and instructs to query intended results afterward and not to resend after error/timeout. It does not, however, explicitly state when to prefer this raw tool over the structured siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autocad_statusA
Inspect a running AutoCAD application through COM: window/process identity, current binding, active document and idle state. This does not establish a persistent binding or operate on the internal CAD session.
| 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 does well: it declares the COM transport, the read-only inspection nature, and explicitly disclaims persistent binding and internal-session side effects. It omits failure behavior (e.g., what happens when no AutoCAD instance is running), which is a real gap for a status probe.
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, front-loaded with the verb and resource, followed by the scope disclaimer. Every clause carries information; nothing is 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?
With no output schema and no annotations, the description compensates by enumerating the inspected fields, which stands in for a return-value description. It is nearly self-sufficient; only error/edge-case behavior when AutoCAD is absent 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 tool takes zero parameters, so the baseline is 4. The description correctly implies a no-argument call by describing the target application rather than any filter or identifier the caller must supply.
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 (Inspect) and a precise resource (a running AutoCAD application via COM), then enumerates the inspected aspects: window/process identity, binding, active document and idle state. It contrasts itself with the attach/binding tools by negating their behavior, but never names the sibling (e.g., autocad_attach) that an agent should pick instead, so differentiation is implied rather than explicit.
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 closing sentence effectively routes usage: 'does not establish a persistent binding or operate on the internal CAD session' tells the agent this is a non-mutating probe and that binding-related needs belong elsewhere. There is no explicit 'use when X, not when Y' clause, but the exclusions give clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_generate_pdfC
Generate summary PDF files for one or more drawings and write them into an output directory.
| Name | Required | Description | Default |
|---|---|---|---|
| output_dir | Yes | ||
| drawing_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and no output schema, so the description carries the full behavioral burden. It says files are written to an output directory but not whether files are overwritten, how filenames are derived, whether the directory must pre-exist, what happens on partial failure, or what the return value reports. For a tool with filesystem side effects and zero structured safety metadata, this is a significant 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?
A single front-loaded sentence that names the action, the input, and the output destination with no filler. It is efficient, though terse enough that the missing details feel like omission rather than deliberate brevity.
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 batch operation with two required parameters, no annotations, and no output schema, the description covers the core what/where but omits return semantics (file paths? status?), overwrite behavior, and failure handling. Adequate as a minimum-viable description, not complete for a filesystem-writing batch tool.
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 convey that drawing_ids accepts one or more drawing identifiers and that output_dir is a target directory path, which maps both required parameters to meaning. However, it adds no format detail (id syntax, path form, filename collision behavior) beyond that.
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 (generate, batch) and resource (summary PDF files for drawings), plus the destination side-effect (write into an output directory). It clearly distinguishes itself from the singular generate_pdf and from batch_generate_svg by naming the plural drawing input and PDF output. It stops short of explaining what a 'summary PDF' contains, which keeps it from 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?
No guidance on when to prefer this over generate_pdf (single drawing) or batch_generate_svg, despite both being siblings in the same tool list. The 'one or more' phrasing hints at batching but the agent gets no explicit rule for choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_generate_svgC
Generate SVG files for one or more drawings and write them into an output directory.
| Name | Required | Description | Default |
|---|---|---|---|
| output_dir | Yes | ||
| drawing_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses that files are written to disk, but not whether existing files are overwritten, whether the directory must pre-exist, permissions/errors, or per-drawing failure behavior for a batch operation. Key mutation semantics are missing.
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 efficient sentence with no filler, front-loaded with the action and resource. Appropriately sized, though brief enough to leave the gaps above.
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 batch filesystem tool with no annotations, no output schema, and 0% parameter coverage, the description is too thin. It omits return/progress semantics, overwrite behavior, and directory handling that an agent needs to call it safely.
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 description does not describe either parameter. It implies drawing_ids (the drawings) and output_dir (the output directory), but adds no format hints (e.g., id format, relative vs absolute path) beyond what the schema's bare types provide.
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 ('Generate') with resource ('SVG files') and scope ('one or more drawings'), plus the side effect ('write them into an output directory'). Clear, though it does not name or distinguish itself from the close sibling 'generate_svg' or 'batch_generate_pdf'.
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 vs alternatives guidance. Given sibling 'generate_svg' exists, the agent cannot tell from the description whether batch_generate_svg is a superset, when to prefer one over the other, or what prerequisites exist. The 'batch' scope is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
begin_transactionA
Start a nested editing transaction; pair with commit_transaction or rollback_transaction.
| 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 burden of behavioral disclosure. It usefully states that the transaction is nested and must be paired with commit or rollback, but it does not explain transaction scope, what happens to uncommitted edits, or any limitations on nesting depth.
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 a single concise sentence with the core action front-loaded and the lifecycle relation immediately following. Every part of the sentence 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 parameterless transaction-control tool with no output schema and no annotations, the description provides the essential lifecycle context: start a nested editing transaction and end it with commit or rollback. It could say more about nested transaction behavior, but it is sufficient 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?
The tool takes zero parameters, so the baseline is 4. The description does not add parameter semantics, but there are no parameters to document.
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: 'Start a nested editing transaction.' It distinguishes the tool from its transaction-control siblings by explicitly naming the commit_transaction and rollback_transaction counterparts, so an agent can tell what this tool initiates.
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 pairing instruction 'pair with commit_transaction or rollback_transaction' gives clear context for how and when this tool is used. It does not explicitly state when not to use it or how to choose between commit and rollback, but the immediate usage relationship is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boolean_intersectC
intersect two 3D solids and return a simplified composite result.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id_a | Yes | ||
| solid_id_b | 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 hints that a result is returned ('simplified composite result') but says nothing about whether the two input solids are consumed or retained, what 'simplified' means, whether the operands must overlap, or what happens on non-intersecting input.
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 efficient sentence with the operation front-loaded. Nothing wasted, though it is arguably under-specified rather than maximally concise.
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 destructive-in-effect geometry operation with no annotations and no output schema, the description omits critical context: operand fate, result identity/type, and failure modes. It should do considerably more given the total absence of structured behavioral data.
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 tells the agent the two arguments are 3D solids, which maps to solid_id_a/solid_id_b, but adds no detail on ID format, validity requirements, or whether the operands must be solids of the same body.
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: 'intersect two 3D solids' plus the output nature ('simplified composite result'). This is clearly distinguishable from boolean_union and boolean_subtract by the verb itself, though the description never names those siblings to sharpen the boundary.
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, no prerequisites, and no mention of the obvious alternatives (boolean_union, boolean_subtract) despite them being adjacent siblings. The agent must infer usage entirely from the name and verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boolean_subtractC
subtract two 3D solids and return a simplified composite result.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id_a | Yes | ||
| solid_id_b | 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 that the result is a 'simplified composite result,' but omits critical details: whether input solids are retained or consumed, error conditions, and what 'simplified' actually means. This is a mutation-like operation and the description does not clarify its side effects.
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 a single, front-loaded sentence with zero waste. It immediately states the action and result without unnecessary preamble. Structurally, it is as concise as possible for the information it 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?
Given a boolean subtraction on 3D solids, the description is insufficient. It lacks operand order, destructive semantics, prerequisites, and meaningful return details, and there are no annotations or output schema to compensate. An agent would need external knowledge to call this 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% for two required parameters. The description says 'subtract two 3D solids' but never maps solid_id_a and solid_id_b to operands or clarifies the subtraction order (A minus B vs. B minus A). It adds almost no meaning beyond the parameter names themselves.
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 and resource: 'subtract two 3D solids.' This clearly identifies the operation, though it does not explicitly differentiate from siblings like boolean_union or boolean_intersect. The verb itself provides implicit differentiation, so the purpose is clear but not maximally sharp.
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 use this tool versus alternatives such as boolean_union or boolean_intersect. The description offers no context, prerequisites, or exclusions—only the basic operation. An agent must infer usage entirely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boolean_unionC
union two 3D solids and return a simplified composite result.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id_a | Yes | ||
| solid_id_b | 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 that the result is a 'simplified composite', but does not state whether the input solids are consumed, whether the operation is reversible, what happens on failure, 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?
A single, front-loaded sentence with zero filler. The core operation is stated immediately and no sentence 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 boolean operation with no annotations, no output schema, and 0% parameter coverage, the description is too sparse. It omits usage context, parameter details, and behavioral specifics such as whether the original solids remain and how errors are handled.
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 description does not explain the two parameters beyond restating that they represent two solids. It does not clarify ID format, source, or the distinct roles of solid_id_a and solid_id_b, so it adds no meaning beyond 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 ('union'), resource ('two 3D solids'), and outcome ('simplified composite result'). It clearly distinguishes itself from sibling boolean_subtract and boolean_intersect by operation name, though it does not explicitly route between 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?
No guidance on when to use this tool versus boolean_subtract, boolean_intersect, or other modeling operations. There are also no prerequisites or conditions given (e.g., solids must exist, must be valid 3D solids).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chamfer_2dC
Create a simple chamfer line between two lines.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| dist1 | Yes | ||
| dist2 | Yes | ||
| line_id_a | Yes | ||
| line_id_b | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden, yet it only states the action. It does not disclose whether the original lines are trimmed or modified, whether the operation is reversible, what happens on invalid or non-intersecting line IDs, or whether any permissions are 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?
A single front-loaded sentence with no padding beyond the mildly redundant word 'simple.' It is efficiently sized, though the brevity reflects under-specification rather than disciplined economy.
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 five-parameter mutating geometry tool with no annotations, no output schema, and 0% schema description coverage, the description is far too thin. It omits parameter meaning, edge-case behavior, and return information, leaving an agent unable to call it confidently.
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 five parameters, and the description adds no meaning: dist1/dist2 are never explained (offset distances? along which line?), the two line IDs are only vaguely implied by 'between two lines,' and the optional unit enum is unaddressed. This fails to compensate for the coverage 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?
States a specific verb ('Create') and resource ('chamfer line between two lines'), so an agent knows the core operation. However, it does not distinguish itself from sibling tools like fillet_2d or chamfer_3d, leaving the agent to infer the 2D vs 3D and fillet vs chamfer boundaries.
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 provided, and no alternatives are named. The agent is not told when to choose chamfer_2d over fillet_2d or chamfer_3d, nor what preconditions (existing lines, valid IDs) must hold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chamfer_3dC
Create a simplified chamfered copy of a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| guides | No | ||
| radius | No | ||
| path_id | No | ||
| distance | No | ||
| edge_ids | No | ||
| face_ids | No | ||
| profiles | No | ||
| solid_id | No | ||
| direction | No | ||
| thickness | No | ||
| open_faces | No | ||
| profile_id | 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 disclosure burden. "Copy" usefully implies the operation is non-destructive to the original solid, but nothing is said about which geometry (edges, faces, profiles) is affected, what happens with conflicting parameters, or what the call returns for a 13-parameter 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?
The single sentence is front-loaded and free of filler, but at eight words it is under-specified rather than concise for a tool with 13 parameters. Brevity here comes at the cost of missing 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?
A 13-parameter tool with 0% schema coverage, no annotations, and no output schema is left almost entirely undocumented. The description provides no parameter mapping, no return expectations, and no safety or failure behavior, so it is inadequate 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% across 13 parameters, and the description names none of them. An agent has no way to know whether angle, radius, distance, thickness, guides, path_id, profiles, or open_faces are required, mutually exclusive, or dimension-dependent.
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 ("Create a simplified chamfered copy of a solid") and even hints that the result is a new copy rather than an in-place edit. It does not, however, differentiate itself from close siblings such as fillet_3d, chamfer_2d, or draft_angle, so the agent must infer 3D-vs-2D and chamfer-vs-fillet distinctions 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 guidance, no prerequisites, and no mention of alternatives. With sibling tools like fillet_3d and chamfer_2d in the same namespace, the absence of any routing instruction is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_clearanceC
Check if minimum distance meets a clearance threshold. Accepts entity ids or assembly component ids; use assembly_id to scope component lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| assembly_id | No | ||
| component_a | Yes | ||
| component_b | Yes | ||
| min_clearance | 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. It does not state whether the check is read-only, what happens on failure (e.g., error vs boolean result), whether it requires the entities to belong to the same assembly, or any side effects. With a mutation-adjacent threshold check and zero annotations, this is a significant 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 compact sentences that front-load the purpose and then add the id/scope clarification. No extraneous text, though the second sentence could be clearer about the id duality.
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 0% parameter description coverage, the description does not provide enough context for an agent to invoke the tool correctly. It omits return semantics (boolean vs error), units, and the relationship between component ids and assembly_id.
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 all four parameters. It only clarifies that component_a and component_b can be entity ids or assembly component ids, and that assembly_id scopes component lookup. It does not explain the unit or semantics of min_clearance, nor whether component ids must be from the same assembly, leaving half the parameter space undocumented.
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 (Check) and resource (minimum distance vs a clearance threshold), which distinguishes it from generic measurement tools like measure_minimum_distance and check_interference. It is clear what the tool does, though it does not explicitly contrast itself with those close siblings.
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 guidance on when to use this tool versus alternatives such as measure_minimum_distance or check_interference. The second sentence hints that entity ids and assembly component ids are both accepted, but it does not explain when to pass an assembly_id or how the threshold check differs from a raw distance measurement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_interferenceC
Check component interference using transformed component bounding boxes.
| Name | Required | Description | Default |
|---|---|---|---|
| tolerance | No | ||
| assembly_id | 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 hints at the mechanism (bounding-box based, therefore approximate) but says nothing about whether the check mutates state, permission requirements, how results are reported, or the tolerance's effect.
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 is efficient, though the sparseness reflects missing content 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?
With no annotations, no output schema, and zero schema-description coverage, the description is the only source of truth, yet it omits return semantics (does it list interfering pairs?), tolerance meaning, and usage context. Inadequate for a 2-parameter analysis tool.
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 both parameters. The description never explains assembly_id (which assembly is inspected) or tolerance (units, direction, default behavior), leaving the most consequential input entirely undocumented.
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 ('check component interference') and adds the method ('transformed component bounding boxes'), so the agent knows this is a geometry-collision check. It does not distinguish itself from the closely related sibling check_clearance, which an agent would need to disambiguate the two.
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 versus check_clearance or measure_minimum_distance, no prerequisites (e.g., assembly must exist/populated), and no exclusions. 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.
commit_transactionA
Commit the innermost active transaction.
| 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 full behavioral burden. It identifies a state-changing commit and scopes it to the innermost transaction, but omits whether the operation is irreversible, what happens to outer transactions, error behavior when no transaction is active, and 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?
A single front-loaded sentence with no filler. It delivers the essential action and scope 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?
For a simple zero-parameter transaction control tool, the description states the action and nested scope. However, with no annotations and no output schema, it leaves gaps around transaction state requirements and side effects that an agent might need before calling.
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 schema is trivially complete; the baseline for zero-parameter tools is 4. The description adds no parameter information, but none is needed.
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 ('Commit') and resource ('innermost active transaction'), making clear it finalizes the current transaction. This distinguishes it from sibling transaction controls like begin_transaction and rollback_transaction without ambiguity.
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 versus rollback_transaction or push_undo_checkpoint, nor any prerequisite about needing an active transaction. The agent must infer usage from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_cut_fill_volumeC
Estimate cut/fill volume inside a polygon from enclosed elevated sample points and a base elevation.
| Name | Required | Description | Default |
|---|---|---|---|
| boundary_id | Yes | ||
| base_elevation | Yes | ||
| sample_point_ids | 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. It hints that only sample points enclosed by the polygon count, but says nothing about read-only vs. mutating behavior, required permissions, cut/fill sign convention, units, or what the computed result looks like.
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 resource and computation are stated immediately, though terseness comes at the cost of the guidance noted above.
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 3-parameter computation with no output schema and no annotations, the description is thin: it never states return values/units, the cut vs. fill sign convention, or behavior when sample points fall outside the boundary. An agent can call it, but cannot predict its result.
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, and it partially does by mapping all three parameters conceptually (polygon = boundary_id, elevated sample points = sample_point_ids, base elevation = base_elevation). It omits, however, that sample_point_ids is optional and gives no format or unit guidance for elevations.
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 ('Estimate') plus resource ('cut/fill volume') and a clear scope ('inside a polygon'). It does not, however, distinguish itself from the near-identical sibling compute_grid_surface_volume, so an agent must guess which volume tool applies.
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 the competing sibling compute_grid_surface_volume. The agent can infer usage from the sentence, but nothing steers the choice between the two volume tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_grid_surface_volumeC
Estimate surface volume from elevated point samples and a representative cell area.
| Name | Required | Description | Default |
|---|---|---|---|
| cell_area | Yes | ||
| base_elevation | Yes | ||
| sample_point_ids | 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 delivers very little. The word 'Estimate' implies an approximate rather than exact result, which is a small useful signal, but nothing is said about units, precision, permissions, or how missing sample points 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 efficient sentence with the resource front-loaded and no filler. It is well-sized, though its brevity is partly under-specification rather than tight craft.
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 3-parameter computational tool with no annotations, no output schema, and 0% schema description coverage, the description is far too thin. It omits the role of base_elevation, the units/return format, and how the calculation handles the optional sample_point_ids, leaving the agent guessing.
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 only partially does. It loosely maps to sample_point_ids ('elevated point samples') and cell_area ('representative cell area'), but says nothing about base_elevation or expected units/formats for any of the three parameters.
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 and resource ('Estimate surface volume') and states the inputs it operates on ('elevated point samples and a representative cell area'). However, it does not differentiate itself from siblings like compute_cut_fill_volume or measure_volume/measure_surface_area, so an agent cannot tell from the description alone which volume tool applies.
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, no prerequisites, and no named alternatives. The phrase 'from elevated point samples and a representative cell area' hints at the suitable input scenario but never states when this tool should be chosen over compute_cut_fill_volume or similar siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_section_areaC
Sample elevated points along a profile line and compute the section area against a baseline elevation.
| Name | Required | Description | Default |
|---|---|---|---|
| max_offset | No | ||
| profile_line_id | Yes | ||
| sample_point_ids | No | ||
| baseline_elevation | 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. It says nothing about whether the computation is read-only, what permissions are needed, how many points are sampled or at what spacing, error behavior for missing/invalid profile lines, or performance limits. 'Sample elevated points' hints at interpolation but leaves the actual behavior opaque.
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 efficient sentence that front-loads the action and mechanism with no filler. It is appropriately sized, though the brevity comes at the cost of the missing parameter and behavioral detail.
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 computation tool with no annotations, no output schema, and 0% schema coverage, the description is too thin. It omits what the result represents (units, sign convention for fill vs cut), how the optional parameters affect sampling, prerequisites, and error 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?
Schema description coverage is 0%, so the description must compensate. It only mentions 'profile line' and 'baseline elevation', corresponding to the two required parameters, but never explains max_offset or sample_point_ids, which are two of the four parameters. Half the parameters are left semantically undocumented.
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 ('compute the section area') with the mechanism ('sample elevated points along a profile line') and the reference frame ('against a baseline elevation'). It is clearly distinguishable from the nearest siblings compute_cut_fill_volume and compute_grid_surface_volume, though it doesn't explicitly say how it differs from 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 description implies the prerequisite (a profile line must exist, points are sampled along it), which gives implicit context for when the tool applies. However, it never states when-to-use versus alternatives like compute_cut_fill_volume or when-not to use it. Guidance is inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_arcA
Create a circular arc: centre (cx,cy), radius, startAngle and endAngle in radians (counterclockwise from +X; mathematical Y-up). Radius uses unit (default mm). Stored as coords [cx,cy,r,startAngle,endAngle] in mm.
| Name | Required | Description | Default |
|---|---|---|---|
| cx | Yes | ||
| cy | Yes | ||
| unit | No | ||
| layer | No | ||
| radius | Yes | ||
| endAngle | Yes | ||
| startAngle | 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 discloses key behavioral traits: angles are in radians, counterclockwise from +X, Y-up coordinate system, radius uses the unit parameter (default mm), and the arc is stored as coords [cx,cy,r,startAngle,endAngle] in mm. It does not mention layer behavior or side effects, but the coordinate and storage conventions are substantial context beyond the schema.
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 two sentences, front-loaded with the core action and immediately followed by essential coordinate and unit conventions. Every sentence earns its place with no redundancy.
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 creation tool with 7 parameters, no annotations, and no output schema, the description provides enough to call it correctly: geometry, coordinate system, angle units, default unit, and storage format. It could mention layer behavior or return semantics, but those gaps are minor.
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 cx, cy, radius, startAngle, endAngle, and unit (default mm, angle semantics in radians). It omits any explanation of the 'layer' parameter, which is the only notable 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 ('Create') and resource ('circular arc') and lists the defining parameters. It clearly distinguishes this tool from siblings like create_circle, create_ellipse, and create_spline by naming the exact geometry produced.
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 description implies usage ('Create a circular arc') but provides no explicit when-to-use or when-not-to-use guidance, nor does it name alternative tools such as create_circle or create_polyline for related geometry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_assemblyC
Create an empty assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| name | 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. It discloses one useful trait - the assembly is created empty - but says nothing about required permissions, where the assembly is stored, whether the call is reversible, or what identifier is returned for later add_component calls.
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 short sentence with zero padding and the action front-loaded. It is concise, though the brevity edges toward under-specification rather than crispness.
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 one undocumented parameter, no annotations, and no output schema, the definition is too thin: it omits the name argument's role, the resulting assembly's identity, and any follow-up workflow (add_component, mate_*). Only the 'empty' nuance adds value.
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?
There is one required parameter ('name') with 0% schema description coverage, so neither schema nor description explains it. The description does not mention the name at all, leaving constraints such as uniqueness and the minLength=1 requirement undocumented.
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 ('Create an ... assembly') and adds the qualifier 'empty' that tells the agent no components are populated. It does not differentiate from nearby siblings such as create_group, create_block, or create_component, so it falls 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 description gives no indication of when to create an assembly versus a group, block, or component, and no prerequisites (e.g. whether a project/document must be open) are stated. Usage must be inferred 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.
create_blockC
Create a block definition from entity ids.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| entities | Yes | ||
| base_point | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden of disclosure. It never says whether the source entities are consumed/replaced, whether the new definition is attached to the document, what permissions or active document state are required, or whether the action 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 short sentence, front-loaded with the action and resource. Nothing is wasted, but the terseness also means nothing is added, so it is efficient rather than exemplary.
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 tool with no annotations, no output schema and an undocumented nested base_point object with 3 required parameters, this one-liner leaves the agent without the behavioral or parameter context needed to invoke it confidently.
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 3 required parameters. The phrase 'from entity ids' loosely maps to the 'entities' array, but 'name' and the nested 'base_point' object (x/y required, optional z) are not clarified beyond the schema's own type constraints.
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 ('create a block definition') plus the source of its content ('from entity ids'). It distinguishes the creation step from its clear siblings insert_block, explode_block and edit_block, though it never names them 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?
There is no guidance on when to use this versus insert_block, edit_block or the primitive creators (create_box, create_sphere). No preconditions, no note on whether the source entities must already exist in the drawing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_boundary_polygonC
Create a study boundary or management zone polygon with domain metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| unit | No | ||
| layer | No | ||
| points | Yes | ||
| attributes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden, yet it only says 'with domain metadata' without explaining what that metadata is, whether the polygon is closed automatically, what entity/ID is returned, or how units are applied. It is little more than a restated purpose.
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 short, front-loaded sentence with no filler. It earns its place structurally but is terse to the point of under-specification rather than efficiently complete.
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 5-parameter creation tool with nested objects, no annotations, and no output schema, the description omits coordinate/unit handling, closure, return value, and metadata semantics, leaving the agent under-informed before calling 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% across 5 parameters, and the description only vaguely gestures at 'domain metadata' (loosely the attributes param). It says nothing about points ordering/min-3 closure, the unit enum, or the layer field, so it fails to compensate for the coverage 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?
States a specific verb ('Create') and resource ('polygon') and qualifies it with the domain intent ('study boundary or management zone'), which meaningfully separates it from the generic sibling create_polygon.
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 create_polygon, create_polyline, or create_rectangle, and no prerequisites or context. The domain phrasing hints at a mapping/GIS use case but never states it as a rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_boxC
Create a box solid at origin with width, height, and depth.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| z | No | ||
| unit | No | ||
| depth | Yes | ||
| layer | No | ||
| width | Yes | ||
| height | 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. It states nothing about units defaulting, whether the box is added to the current document/layer, whether it's parametric or fixed geometry, or whether it returns an entity handle.
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 efficient sentence with the essential dimensions front-loaded. It's appropriately terse, though it could be slightly more informative without bloating.
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 geometry-creation tool with 8 parameters (5 undocumented in both schema and description), no annotations, and no output schema, the description leaves too much implicit: coordinate placement semantics, unit behavior, layer assignment, and whether the result is added to the active document.
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 8 parameters. The description mentions only width/height/depth; it says nothing about x/y/z positioning offsets, the 'unit' enum values or default, or the 'layer' parameter. With required params documented in the schema only by name, the description fails to compensate for the coverage 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?
States a specific verb and resource ('Create a box solid') plus the three required dimensions, which clearly distinguishes it from siblings like create_sphere and create_cylinder. However, it doesn't explicitly acknowledge those siblings or clarify scope beyond the primitive type.
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 tool versus create_prism, boolean_union, or other solid-creation siblings. A user wanting a rectangular solid could reasonably be unsure whether create_box or create_prism is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_circleC
Create a circle with centre (cx,cy) and radius. Lengths use unit (default mm).
| Name | Required | Description | Default |
|---|---|---|---|
| cx | Yes | ||
| cy | Yes | ||
| unit | No | ||
| layer | No | ||
| radius | 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 states that lengths use the given unit with mm default, which is useful, but says nothing about whether the circle is added to the current layer, whether it can be undone, or what constraints apply (e.g., radius must be > 0).
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 efficient sentence that front-loads the primary purpose and adds the unit default as a secondary clause. No 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 creation tool with no annotations, no output schema, and five parameters (three required), the description is materially incomplete. It omits layer behavior, validation rules (radius > 0), and whether the circle is a 2D entity (given siblings like create_sphere and create_cylinder, clarity on dimensionality matters).
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 explain the unit default (mm) and that lengths use that unit, which adds meaning beyond the enum schema, but it doesn't mention the exclusiveMinimum constraint on radius, the optional layer parameter, or how cx/cy are interpreted (absolute vs relative).
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 (circle) with the geometric parameters named. Doesn't explicitly differentiate from siblings like create_ellipse or create_polygon, but the resource is specific enough that an agent can distinguish it.
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 tool versus alternatives (create_ellipse for ovals, create_polygon for polygons, or create_arc for partial curves). Only an implicit default-value statement about units.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_coneC
Create a frustum or cone solid.
| Name | Required | Description | Default |
|---|---|---|---|
| cx | No | ||
| cy | No | ||
| cz | No | ||
| unit | No | ||
| layer | No | ||
| height | Yes | ||
| topRadius | Yes | ||
| bottomRadius | 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 only says the tool creates a solid and omits mutating side effects, undo/transaction behavior, coordinate system, units, layer defaults, and error conditions.
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 or redundancy. It is structurally clean and immediately tells the agent the tool's core action.
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 eight parameters, no annotations, no output schema, and no parameter descriptions, a one-sentence description is far too thin. It states the shape created but omits required inputs, coordinate handling, units, and creation behavior.
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 eight parameters. The description hints at frustum/cone geometry but never names or explains cx, cy, cz, height, topRadius, bottomRadius, unit, or layer, so it does not compensate for the missing schema documentation.
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 creation verb and concrete geometric resource ('frustum or cone solid'), which clearly identifies the tool's action. However, it does not explicitly differentiate itself from sibling primitives such as create_cylinder, create_revolution, or loft beyond the resource name.
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 guidance on when to use this tool versus alternatives like create_cylinder, create_revolution, loft, or sweep. Prerequisites, exclusions, and typical use contexts are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cylinderC
Create a vertical cylinder solid.
| Name | Required | Description | Default |
|---|---|---|---|
| cx | No | ||
| cy | No | ||
| cz | No | ||
| unit | No | ||
| layer | No | ||
| height | Yes | ||
| radius | Yes | ||
| segments | 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 burden. It does not say whether the solid is added to modelspace, how units/layer defaults are resolved, what the origin/cx-cy-cz offsets are, whether the operation is undoable, or 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 short, front-loaded sentence with no filler. It is efficient, though the extreme brevity is a symptom of missing content rather than tight writing.
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 an 8-parameter solid-creation tool with 0% schema coverage, no annotations, and no output schema, the description omits almost everything an agent needs: parameter meanings, units, placement semantics, and return behavior.
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 description names none of the 8 parameters. Required radius/height, centroid offsets cx/cy/cz, unit enum, layer, and segments must all be inferred from bare schema keys, so the description fails to compensate for the coverage 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 plus resource ('Create a vertical cylinder solid'), so an agent knows exactly what primitive is produced and that its axis is vertical. It is clear on its own but does not distinguish itself from siblings like create_cone or create_prism beyond the resource name.
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 about when to use this over alternatives such as create_cone/create_prism/create_sphere, nor about prerequisites like an active layer or units. The 'vertical' qualifier is the only selection hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_drawingC
Create a drawing sheet.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| template | No |
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 delivers almost nothing: it does not say whether the sheet is persisted, where it is placed, what happens if a sheet of that name exists, or whether template omission has defaults for a mutation 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?
A single short, front-loaded sentence with no filler. It is efficient, though the terseness is a symptom of under-specification rather than disciplined density.
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 creation/mutation tool with no annotations, no output schema, and 0% parameter documentation, the description is markedly incomplete — an agent cannot tell what it gets back or how the sheet name/template behave.
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 both parameters, and the description mentions neither 'name' nor 'template'. It does not explain name uniqueness or what a template string refers to, so it fails to compensate for the undocumented 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 clear verb+resource pair (create a drawing sheet), so an agent knows the operation is a new-drawing creation. However, it offers no differentiation from the many drawing/view siblings such as create_viewport, add_view, or create_map_layout.
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 among the numerous sibling tools. The agent is left to infer that a drawing sheet must exist before viewport/view creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ellipseC
Create an ellipse with radii and rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| cx | Yes | ||
| cy | Yes | ||
| rx | Yes | ||
| ry | Yes | ||
| unit | No | ||
| layer | No | ||
| rotation | No |
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. It doesn't disclose whether the operation is undoable, whether it requires an active layer or document, whether it works in 2D or 3D space, or what the return value is. These are important for a creation tool in a CAD environment.
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 single sentence is concise and front-loaded with the core action, but it is overly terse given the complexity of the tool. It earns its place by stating the essential purpose, yet it wastes no words on useful additional context.
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 0% schema description coverage, the description is far too sparse. An agent lacks information about required parameters, coordinate system, return behavior, and safety profile. For a 7-parameter creation tool, this is critically incomplete.
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 none of the 7 parameters are documented. The description only alludes to 'radii' and 'rotation', but does not explain any parameter names, units, defaults, constraints (e.g., exclusiveMinimum for radii), or the purpose of optional parameters like 'layer' or 'unit'.
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 ('Create an ellipse') and mentions the key controllable attributes (radii, rotation). It is clearly distinguishable from siblings like create_circle or create_box, though it doesn't explicitly contrast itself with those alternatives.
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 tool versus alternatives such as create_circle or create_rectangle. There is no mention of prerequisites, coordinate system, or the intended context for creating an ellipse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_exploded_viewC
Create an exploded view definition for an assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| assembly_id | 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, yet it only says 'create.' It does not disclose whether this mutates the assembly in place, whether it persists to the project/document, what happens if a definition with the same name exists, or what it returns. For a mutation tool with zero annotation coverage 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?
A single efficient sentence with the action front-loaded and zero filler. It is under-specified rather than verbose, but conciseness itself is good.
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 two-required-parameter mutation tool with no annotations, no output schema, and 0% parameter documentation, the description is not complete enough for confident invocation. It should at least explain the parameters and its relationship to the explode/animate siblings.
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 and it does not: neither 'name' nor 'assembly_id' is mentioned or explained. The agent learns nothing about naming constraints or whether assembly_id refers to an existing assembly created by create_assembly.
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: 'Create an exploded view definition for an assembly.' An agent can tell this creates an exploded-view definition rather than geometry. However, it offers no differentiation from closely related siblings like add_explode_step or animate_explode, leaving the boundary between them to inference.
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 (e.g., must an assembly already exist?), and no routing to alternatives such as add_explode_step or animate_explode. The agent must guess which of the explode-related tools applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_groupC
Create a named group from entity ids.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| entity_ids | 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 of behavioral disclosure. It states a create action but does not mention permissions, side effects, error conditions, or what happens to existing entities, leaving important behavioral traits unspecified.
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 single sentence is front-loaded and contains no wasted words. However, it is arguably too terse for a tool with multiple parameters and no other documentation.
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 tool is a mutation operation with no output schema, no annotations, and 0% schema description coverage. The description does not explain return behavior, required permissions, or parameter constraints, leaving it incomplete for an agent to invoke 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 should compensate but does not. It merely restates the property concepts ('named' for name, 'entity ids' for entity_ids) without adding format, constraints, or meaning beyond what the schema property names already imply.
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: create a named group from entity ids. It clearly distinguishes the action from siblings like ungroup or select_group, though it does not explicitly name alternatives.
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 use this tool versus alternatives such as create_assembly or select_group. The only implied usage is grouping entities, which is not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_layerB
Create a named layer with optional color (e.g. #ff0000). Layers are keyed by name; default geometry layer is "0".
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | No |
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 partially delivers: it discloses that layers are keyed by name (implying uniqueness semantics) and that a default geometry layer '0' exists. It omits error behavior on duplicate names, persistence, and whether the operation requires a transaction, which are meaningful 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 short sentences, zero filler, with the core action front-loaded before the keying detail. Every clause adds 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 2-parameter tool with no output schema and no annotations, the description covers the action, parameters, and keying but leaves return values, duplicate-name behavior, and permissions 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 coverage is 0%, so the description must compensate, and it does reasonably: 'name' is explained as the key (implying required/unique), and 'color' is given a concrete format example '#ff0000'. It still doesn't state accepted color formats exhaustively or the failure mode for an empty name, keeping it below 5.
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 ('Create a named layer'), so an agent immediately knows what the tool does and can distinguish it from delete_layer/rename_layer/set_layer_color. It does not, however, explicitly name or differentiate itself against those sibling tools, so it stops short of the 5 tier.
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 like create_layer vs. the many other create_* tools or autocad_list_layers. The note about the default '0' layer is domain context, not usage routing, so this is essentially no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lineC
Create a line from (x1,y1) to (x2,y2). Lengths use unit (default mm).
| Name | Required | Description | Default |
|---|---|---|---|
| x1 | Yes | ||
| x2 | Yes | ||
| y1 | Yes | ||
| y2 | Yes | ||
| unit | No | ||
| layer | 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 only states the default unit. It omits mutation side effects, default layer behavior, whether the line is immediately committed, required permissions, and return information.
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 concise sentences with the action and coordinate meaning front-loaded, and no wasted words. It is efficient but perhaps overly terse given the six-parameter tool with no annotations.
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 six-parameter mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is insufficient. It leaves layer semantics, return behavior, and side effects unexplained.
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 maps x1,y1,x2,y2 to line endpoints and gives the default unit, but completely omits the optional 'layer' parameter and any other parameter constraints.
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 ('Create') and resource ('line'), and defines the line by its endpoints (x1,y1) to (x2,y2). It clearly distinguishes this from a point or a polyline in practice, but does not explicitly contrast with siblings like create_polyline or create_arc.
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 or alternatives are provided. The purpose implies usage, but there is no explicit context for choosing create_line over create_polyline or create_arc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_map_layoutC
Create a map-oriented drawing layout using current project extent and drawing scale metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| margin | No | ||
| template | No | ||
| sheet_size | No | A3 |
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 reveals that the tool reads existing project extent and scale state, but says nothing about what gets created or persisted, what happens if extent/scale are unset, permissions, or whether the operation is reversible.
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 or redundancy. It is well-formed, though it is thin for the amount of structured information left undocumented.
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 4-parameter mutation tool with no annotations, no output schema, and 0% schema documentation, the description is materially incomplete: parameter meanings, defaults (e.g. sheet_size='A3'), and error behavior are all omitted.
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 four parameters exist (name, margin, template, sheet_size), yet the description names none of them. Instead it references 'project extent' and 'drawing scale', which are not even parameters of this tool, so it adds no parameter meaning at all.
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 ('Create a map-oriented drawing layout'), making the tool's function clear. It does not differentiate from nearby siblings such as create_drawing, create_viewport, or apply_thesis_template, so an agent cannot tell from the text alone which layout-producing tool to pick.
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 'using current project extent and drawing scale metadata' implies a precondition (set_map_extent / set_drawing_scale must be run first), which is useful implied usage. However, there is no explicit when-to-use guidance, no exclusions, and no named alternative among the drawing/viewport siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_monitoring_wellC
Create a monitoring well point with optional depth and screened interval metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| unit | No | ||
| depth | No | ||
| layer | No | ||
| well_id | No | ||
| screen_to | No | ||
| attributes | No | ||
| screen_from | 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 'Create' but doesn't disclose whether this requires a project/CRS context, whether the point is committed immediately or within a transaction, whether it returns an ID, or how it interacts with the many transaction tools (begin_transaction, commit_transaction) in the catalog. For a mutation tool with zero annotation coverage this is a significant 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?
Single efficient sentence, appropriately front-loaded with the verb and resource. No waste, though it is arguably undersized for the complexity of 9 parameters and the many sibling tools.
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 9-parameter mutation tool with no annotations, no output schema, and 0% schema description coverage, the one-sentence description is inadequate. It leaves coordinate system requirements, units, screen interval semantics (screen_from/screen_to), and the attributes object entirely unexplained.
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 9 parameters, and the description only hints at two of them ('optional depth and screened interval metadata'). Critical params like x/y (required), unit enum, well_id, layer, and attributes are entirely undocumented in both the schema and the description. The description fails to compensate for the coverage 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?
States a specific verb (create) and resource (monitoring well point) with the key metadata fields (depth, screened interval). However, it doesn't distinguish itself from siblings like create_sampling_point or create_point, which an agent could easily confuse it with in this dense catalog.
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, no conditions, no alternatives mentioned. In a catalog with create_point, create_sampling_point, create_box, etc., the description offers nothing to help the agent decide when a monitoring well is the right entity vs. a sampling point or generic point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pointB
Create a point at (x, y). Coordinates are converted from unit (default mm) to internal mm. Optional layer is a layer name (created if missing).
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| unit | No | ||
| layer | No |
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 useful behavior: unit conversion to internal mm, the mm default, and the side effect that a missing layer is created. It omits other behavioral traits an agent would want, such as what the tool returns, whether it operates on a sketch plane or 3D space, and error handling.
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?
Three short sentences, front-loaded with the core action, then two focused notes on unit and layer behavior. No 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 4-param creation tool with no annotations and no output schema, the description covers the non-obvious parameter semantics but leaves return value, coordinate-space assumptions, and failure modes unstated. 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% across 4 params, so the description must compensate. It does explain `unit` (default mm, converted to internal mm) and `layer` (name, auto-created), but x/y formatting and the full semantics of the layer argument remain thin.
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 ('Create a point at (x, y)') with the geometry semantics made explicit, so an agent can distinguish it from create_line/create_circle without opening the schema. It does not, however, name or contrast any sibling primitive creators.
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 statement of when to use this versus the many other primitive-creation siblings (create_line, create_circle, create_box, etc.), and no prerequisites or context (e.g. active document/sketch) are given. Usage is only inferred from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_polygonC
Create a polygon path from vertices. closed selects closed vs open stroke in preview (stored on entity properties). Points use unit (default mm).
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| layer | No | ||
| closed | Yes | ||
| points | 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 mentions that `closed` is stored on entity properties and used for preview stroke, which is useful context, but doesn't cover whether this requires an active document, layer existence, or other prerequisites. For a mutation tool with no annotations, this is a significant 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 sentences, front-loaded with the core action. The second sentence efficiently covers two parameter behaviors. No wasted words, though the backtick formatting for `closed` and `unit` is slightly informal for a tool definition.
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 4-parameter mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It should at least mention prerequisites (active document, layer existence) and describe the `points` and `layer` parameters more fully. The current text leaves too many gaps for an agent to invoke correctly without trial and error.
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 explains `closed` (selects closed vs open stroke) and `unit` (default mm), covering 2 of 4 parameters. However, `points` (the required vertex list) and `layer` receive no explanation in the description, leaving half the parameters undocumented in both schema and description.
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 (polygon path from vertices), clearly distinguishing it from siblings like create_polyline or create_rectangle. It doesn't explicitly name alternatives, but the verb-resource pairing 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?
No guidance on when to use create_polygon vs alternatives like create_polyline, create_boundary_polygon, or create_rectangle. The description explains parameters but offers no context for tool selection among the many creation siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_polylineB
Create a polyline. If closed is true, stroke is closed in SVG preview. Points use unit (default mm).
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| layer | No | ||
| closed | Yes | ||
| 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. It adds one useful behavioral detail—closed affects the SVG preview stroke—and specifies the default unit, but it omits side effects, layer behavior, permissions, and whether the polyline is created in modelspace or the current coordinate system.
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?
Three short sentences are front-loaded with the action and contain no filler. Each sentence carries information, and the most important creation statement comes first.
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 no annotations, no output schema, and 0% schema description coverage, the description is too sparse for a create operation with four parameters. It does not say what layer is used, how points are connected, what happens when closed is false, or what the tool actually returns.
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 meaning for unit by giving a default of mm and ties points to that unit, and explains closed's SVG effect, but it does not explain the points array structure or the layer parameter, leaving clear gaps.
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 'polyline', so the core purpose is clear. However, among many sibling creation tools such as create_polygon, create_line, and create_spline, it does not differentiate when a polyline is the correct choice, so it stops short of 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 description gives no when-to-use guidance, no prerequisites, and no alternatives. It only states what the tool creates and a small behavior of the closed flag, leaving the agent to infer usage from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_prismC
Create a prism from a 2D profile entity and height.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| layer | No | ||
| height | Yes | ||
| profile_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. It says only that a prism is created, without disclosing whether the result is a solid or surface, how the profile is treated (closed vs open), what layer or unit behavior applies, or what side effects occur.
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 a single front-loaded sentence with no wasted words. It is efficient and readable, though its brevity reflects the overall lack of detail rather than an optimal balance for a four-parameter creation 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 four parameters, no annotations, no output schema, and 0% schema description coverage, the description is too sparse. It omits sibling differentiation, unit/layer handling, profile validation rules, and any expectation for the returned entity.
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 explains profile_id and height by mapping them to '2D profile entity' and 'height', but the optional 'unit' and 'layer' parameters receive no explanation beyond the enum values already present 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 states a specific verb and resource ('Create a prism') and identifies the required inputs (2D profile entity and height). It clearly separates this from primitive creators like create_box or create_sphere, though it does not explicitly compare itself to profile-based siblings like sweep or create_revolution.
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 description gives no guidance on when to use this tool versus alternatives such as create_box, sweep, or create_revolution. It implies usage only by stating the required inputs, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_profile_lineC
Create a profile line used for section sampling and resource/environment transects.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| unit | No | ||
| layer | No | ||
| points | Yes | ||
| attributes | 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 the tool creates a profile line but omits whether the operation mutates the document, whether at least two points are required, how layers or attributes are applied, and what side effects or return behavior to expect.
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 a single short sentence and is front-loaded with the core action, but it is under-specified for a tool with five parameters and nested point objects. It reads as too thin rather than carefully concise.
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 creation tool with five parameters, nested point objects, no annotations, and no output schema, the description is substantially incomplete. It establishes the domain purpose but omits parameter semantics, behavioral details, and any output or side-effect guidance.
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 description does not mention any of the five parameters: name, unit, layer, points, or attributes. It gives no meaning beyond what the raw schema already provides, leaving the required nested points array and optional unit enum entirely undocumented in prose.
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 (Create) and resource (profile line) and adds the intended domain use for section sampling and resource/environment transects. It is clearer than the generic create_line sibling, though it does not explicitly distinguish itself from other line-creation 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 'used for section sampling and resource/environment transects' gives implied usage context, but there is no explicit guidance on when to choose this over create_line, create_polyline, or create_sampling_point. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_rectangleB
Axis-aligned rectangle: corner (x,y), width, height, optional cornerRadius. Lengths use unit (default mm). Y increases upward; (x,y) is the lower-left corner. Stored as coords [x,y,width,height] in mm; cornerRadius in properties.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| unit | No | ||
| layer | No | ||
| width | Yes | ||
| height | Yes | ||
| cornerRadius | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does add non-obvious context: the default unit (mm), the Y-up coordinate convention, that (x,y) is the lower-left corner, and how the shape is stored ([x,y,width,height] in mm, cornerRadius in properties). It says nothing about return values, permissions, or side effects on layers, so it is helpful but incomplete.
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 dense sentences with the shape definition front-loaded and zero filler. It is efficient, though the storage-format clause is somewhat cryptic without further explanation of the property key.
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 7-parameter creation tool with no annotations and no output schema, the description covers the geometry semantics well but omits the `layer` parameter and any statement about what the tool returns or where the entity is placed. Adequate but with visible 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, and it does for six of seven parameters: x, y, width, height, cornerRadius, and the unit enum (described only as 'default mm'). The `layer` parameter is left completely undocumented, which is the one clear 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 precisely what is created (an axis-aligned rectangle) and defines its geometry via corner, width, height and optional cornerRadius, which clearly separates it from the curved/3D siblings like create_circle or create_box. It does not explicitly name a sibling alternative, so it falls 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?
There is no indication of when to choose this over create_polygon, create_box, or other primitives, nor any prerequisites or exclusions. An agent must infer usage entirely from the name and the shape definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_revolutionC
Create a simplified revolved solid from a 2D profile around an axis.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | Yes | ||
| unit | No | ||
| angle | No | ||
| layer | No | ||
| profile_id | 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 says nothing about whether this is a mutation, whether it consumes or requires an existing profile, what 'simplified' means (e.g. no self-intersection handling), or whether the axis must be coplanar with the profile. A creation tool with zero annotation coverage needs more than a single sentence.
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 front-loaded sentence with zero filler. It is efficient, though its brevity is also the source of the definition's gaps rather than a virtue of restraint.
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 5-parameter mutation tool with no annotations, no output schema, a nested axis object, and an angle parameter that changes the result shape, the description is far too thin. An agent knows what it creates but not the constraints, defaults, or consequences of 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% across 5 parameters, so the description must compensate, yet it only loosely maps to profile_id and axis. The angle parameter (exclusiveMinimum 0, implying partial revolutions), unit enum, and layer are never mentioned, leaving meaningful behavior undocumented in both description and 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 (Create), a specific resource (revolved solid), and the construction method (from a 2D profile around an axis), which distinguishes it from primitive siblings like create_box, create_sphere, and create_cylinder. The word 'simplified' is unexplained but does not obscure the core purpose.
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 choose a revolution over siblings like create_cylinder, create_cone, or loft/sweep, which overlap in producing solids of revolution. No prerequisites such as whether profile_id must reference an existing closed profile, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sampling_pointC
Create a resource/environment sampling point with optional label, elevation, and attribute metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| unit | No | ||
| label | No | ||
| layer | No | ||
| elevation | No | ||
| attributes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It confirms this is a creation operation but says nothing about permissions required, whether the point persists, coordinate system assumptions, or return behavior. For a mutation tool with zero annotation coverage, this is a significant 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?
A single efficient sentence with no waste, front-loading the core action and resource.
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 7 parameters, required coordinates, a nested attributes object, and no annotations or output schema, the description is far too thin. It omits coordinate format, unit defaults, layer behavior, and attribute structure, leaving the agent under-informed 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% across 7 parameters, so the description must compensate. It lists only three optional fields (label, elevation, attribute metadata) and omits required x/y coordinates, unit, and layer entirely, leaving critical semantics undocumented.
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 clear verb (Create) and resource (resource/environment sampling point), which is more specific than the generic sibling names. However, it does not distinguish from create_point or similar siblings, leaving the agent to infer the difference.
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 tool versus alternatives like create_point or create_monitoring_well. The description implies a specific domain (resource/environment sampling) but offers no explicit conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sphereC
Create a sphere solid.
| Name | Required | Description | Default |
|---|---|---|---|
| cx | No | ||
| cy | No | ||
| cz | No | ||
| unit | No | ||
| layer | No | ||
| radius | Yes | ||
| segments | 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 burden of behavioral disclosure, and it offers almost none. It does not state whether the operation is a solid boolean, what coordinate system or layer defaults apply, whether it modifies the active document, or whether it 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?
The single sentence is tight and front-loaded with the verb, so it wastes no words. It is concise only because it is under-specified, not because it communicates efficiently.
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 7 parameters, 0% schema description coverage, no annotations, and no output schema, the description is far too thin for the tool's complexity. An agent has no basis for choosing units, placement, or segment counts without guessing.
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 7 parameters, and the description adds no meaning for any of them. Critical semantics such as the meaning of cx/cy/cz (center), the default unit, the effect of layer, and the tessellation role of segments are undocumented anywhere.
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 and resource ('Create a sphere solid'), which is enough to separate it from create_box, create_cylinder, and create_torus. However, 'solid' is the only added information beyond the tool name, so it sits at the minimum-viable level for a CAD primitive tool.
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 use this versus the other primitive-creation siblings, nor any mention of prerequisites such as an active document, project, or layer context. An agent must infer all usage context from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_splineC
Create a control-point spline entity.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| layer | No | ||
| degree | No | ||
| controlPoints | 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 delivers almost none. It does not say what layer/unit defaults apply, whether a document must be open, what coordinate space is assumed, or what the call returns. 'Control-point' is the only construction detail disclosed.
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 padding, which is structurally efficient. But at this length it is under-specified rather than concise for a tool with four parameters and no annotations.
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 0% schema description coverage leave the description as the sole source of context, and one sentence cannot cover it. An agent lacks defaults, return behavior, and coordinate assumptions needed to call this reliably.
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 for four undocumented parameters, and it barely does. 'Control-point' loosely points at controlPoints, but unit, layer, and degree are never explained and the controlPoints format (min 2 points, x/y required) is left entirely 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?
States a specific verb and resource ('Create a control-point spline entity'), and 'control-point' distinguishes it from a fit-point spline. However, it gives no differentiation from the many other create_* geometry siblings (create_polyline, create_arc, etc.), so an agent learns the type but not why to choose it.
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 use this vs alternatives such as create_polyline or create_arc, nor any prerequisites (e.g. an open drawing/project). The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tableC
Create a table annotation.
| Name | Required | Description | Default |
|---|---|---|---|
| cols | Yes | ||
| rows | Yes | ||
| style | No | ||
| position | 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 says nothing about which document/layer the table is placed in, what units position uses, or what happens on the returned object. Only the bare mutation is implied by 'Create'.
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 short sentence with no padding, so it is concise, but the brevity reflects under-specification rather than efficient information density. There is nothing to front-load because nothing meaningful is stated.
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 4-parameter tool with a nested object, no annotations, and no output schema, the description is too thin. An agent cannot infer how to build the position object or what rows/cols mean without guesswork.
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 4 parameters, including a nested position object with x/y, yet the description mentions none of rows, cols, style, or position semantics. It fails to compensate for the schema gap at all.
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 supplies a verb and resource ('Create a ... table annotation'), which is marginally more than the bare name. However, it is close to a tautology: 'annotation' adds little, and nothing distinguishes it from the many other create_* siblings such as create_box or add_text.
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 context, no prerequisites, and no mention of alternatives like set_table_cell for filling cells after creation. The only implied guidance is that it creates rather than edits, which is already obvious from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_torusC
Create a torus solid.
| Name | Required | Description | Default |
|---|---|---|---|
| cx | No | ||
| cy | No | ||
| cz | No | ||
| unit | No | ||
| layer | No | ||
| majorRadius | Yes | ||
| minorRadius | 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. It says the result is a solid, but does not disclose side effects, required coordinate system, layer behavior, units, or whether the entity is immediately added to the model.
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 a single front-loaded sentence with no wasted words. However, it is too terse to be considered appropriately sized for a 7-parameter solid creation 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 no annotations, no output schema, 7 parameters, and 0% schema description coverage, the description is incomplete. It omits essential details about parameters, units, placement, and layer assignment needed to invoke the tool 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% and the description adds no parameter meaning. It does not explain majorRadius, minorRadius, the optional center coordinates, unit, or layer, leaving all 7 parameters undocumented semantically.
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: "Create a torus solid." It clearly identifies the primitive being created, though it does not explicitly differentiate from siblings like create_sphere or create_cylinder beyond the tool name itself.
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 description provides no guidance on when to use this tool versus alternatives such as create_box, create_sphere, or create_cylinder. It simply states the operation without context, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_viewportC
Create a viewport entity.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| view_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It gives no disclosure of permissions, constraints, what a viewport entity is, or what happens on creation. One sentence restating the name does not meet the bar for a mutation tool with zero annotation coverage.
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 short sentence – not wasteful, but also under-specified rather than concise. It is front-loaded trivially.
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 is far too thin. It omits what an agent needs to call the tool 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% for two required parameters ('name', 'view_type'). The description adds nothing about their formats, valid values (e.g. possible view_type values), or meaning, so it fails to compensate for the coverage 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?
States a specific verb+resource ('Create a viewport entity'), but the term 'viewport entity' is vague in a CAD context and the description does not differentiate this from the numerous sibling creation tools (create_box, create_group, create_assembly, etc.). An agent can know it creates something, but not distinctively what.
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, no prerequisites, no mention of alternatives. Given the many sibling creation tools, the absence of any routing signal leaves the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
define_attributeC
Define an attribute on a block definition.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| prompt | Yes | ||
| block_name | Yes | ||
| default_value | Yes |
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 burden of behavioral disclosure. It implies a write operation on a block definition but says nothing about permissions, reversibility, side effects, or what happens if the block does not exist. This is minimal behavioral context.
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 a single front-loaded sentence with no wasted words, which is structurally clean. However, it is arguably too terse for a tool with four required parameters and no other documentation, so it is merely adequate rather than well-sized.
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 four required parameters with no schema descriptions, no annotations, and no output schema, the description is incomplete. It does not explain parameter meanings, behavioral details, or return information, leaving the agent with insufficient context to invoke the tool 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 schema has 0% parameter description coverage, and the tool description does not mention any of the four required parameters (block_name, tag, prompt, default_value). The description therefore adds no meaning beyond the bare parameter names.
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 ('Define') and resource ('attribute on a block definition'), making the tool's purpose clear. However, it does not distinguish itself from sibling tools like edit_block, create_block, or add_text, which an agent might otherwise consider.
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 use this tool versus alternatives, no prerequisites, and no context about when it is appropriate. The description only states what it does, leaving usage entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entityC
Remove an entity by id.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | 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 implies deletion but does not disclose whether removal is permanent, whether it can be undone, whether it cascades to dependent entities, what permissions or confirmations are required, or what the call returns. For a destructive operation this is a significant 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?
The single sentence is front-loaded with the action and resource and contains no filler. It is efficient, though for a destructive tool it is arguably undersized rather than optimally concise.
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 tool is structurally simple (one required string parameter, no output schema, no annotations), so the description covers the core invocation. However, it omits destructive semantics such as permanence and undo behavior, which an agent would benefit from knowing before calling.
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 required parameter entity_id is undocumented in the schema. The description adds only the phrase 'by id', which lightly signals that a string identifier is expected but gives no format, type, or example. This does not sufficiently compensate for the missing schema coverage.
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 (Remove) and resource (entity) and identifies the lookup key (by id). It is clear enough to distinguish from create_* and layer-related siblings, though it does not explicitly call out which entity types are affected or how it differs from other deletion tools like delete_layer.
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 use this tool, no prerequisites, no alternatives, and no conditions under which it should be avoided. The agent is left to 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.
delete_layerA
Delete a layer by name. Entities on that layer are reassigned to the default layer 0.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a highly specific and important consequence: entities on the deleted layer are reassigned to the default layer 0 rather than being deleted. With no annotations provided, the description carries the full burden, and it partially does so by clarifying this destructive side effect – though it omits whether operations are reversible and if permissions are required.
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 plus a dependent clause, all earning their place with zero waste. The critical side effect is front-loaded immediately after the action.
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 compact and complete for a single-parameter destructive tool. It covers the action, the identifier, and the major side effect on entities. It could have mentioned whether the deletion can be undone, but given the absence of an output schema and the minimal schema, it is largely 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?
The description adds meaning by declaring that the 'name' parameter identifies the layer to be deleted, which is slightly more specific than the schema's bare 'type: string, minLength: 1' with 0% coverage. It does not need to describe other parameters since none exist. The baseline for zero params is 4, but here there is 1 param with no schema description, and the description provides enough context to call the tool correctly.
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 (Delete) and resource (layer) with an exact scope qualifier ('by name'). Among many layer-related siblings (create_layer, rename_layer, set_layer_visible, remove_raster_layer), the destructive nature of this tool is made explicit and distinct.
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 alternatives, but the destructive nature of the tool makes its purpose self-evident. The description implies context through its purpose but does not state when to prefer this over siblings like remove_raster_layer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_angleC
Create a simplified drafted copy of a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| guides | No | ||
| radius | No | ||
| path_id | No | ||
| distance | No | ||
| edge_ids | No | ||
| face_ids | No | ||
| profiles | No | ||
| solid_id | No | ||
| direction | No | ||
| thickness | No | ||
| open_faces | No | ||
| profile_id | 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 implies creation of a copy (a write operation) but does not describe side effects, permissions, whether the original solid is modified, or what 'simplified' means.
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 a single short sentence, but it is under-specified rather than appropriately concise for a 13-parameter geometric operation. It has no structural elaboration to help an agent invoke the tool correctly.
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 complex CAD tool with 13 undocumented parameters, no annotations, and no output schema, the description is far too thin. It lacks usage, behavioral, parameter, and return-value context.
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?
There are 13 parameters with 0% schema description coverage. The description only indirectly references a solid and does not name or explain angle, radius, path_id, direction, thickness, or any other parameter, so it adds no parameter 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?
States a specific verb ('Create') and resource ('simplified drafted copy of a solid'), but it is vague about what a 'drafted copy' actually is and does not differentiate from sibling solid-creation or modification tools like shell, offset, loft, or sweep.
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, no alternatives, and no prerequisites are given. The agent must infer all routing and context from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dwg_tools_statusA
Report whether LibreDWG's dwg2dxf / dxf2dwg binaries are available on PATH so import_dwg / export_dwg can actually convert. Returns the resolved binary paths when present.
| 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 does disclose meaningful behavior: it inspects PATH and returns resolved binary paths when present. It implies a read-only diagnostic but never explicitly states it has no side effects or whether a missing binary is an error versus an empty result.
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 waste; the core assertion comes first and the downstream consequence follows 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?
For a parameterless diagnostic with no output schema, the description covers what is checked, why it matters, and what is returned when successful. Nothing an agent needs in order to call 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?
Zero parameters, so there is nothing to document and no schema semantics to add to. 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?
States a specific verb (Report whether) and resource (LibreDWG dwg2dxf/dxf2dwg binaries on PATH), and names the exact siblings it serves (import_dwg / export_dwg). An agent can distinguish it from the other status tools (geometry_backend_status, autocad_status) 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?
The phrase 'so import_dwg / export_dwg can actually convert' tells the agent the condition under which this check matters, effectively routing it before DWG import/export. It does not, however, explicitly say 'call this before import_dwg' or state when to skip it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_blockC
Return a block definition for editing.
| Name | Required | Description | Default |
|---|---|---|---|
| block_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Return a block definition' suggests a read operation, but 'for editing' creates ambiguity about whether it mutates state. It doesn't explain what the returned definition contains, whether editing occurs as a side effect, or any permissions/constraints—inadequate for a tool with a mutating-sounding name and zero structured behavioral cues.
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?
It's a single short sentence, which is concise, but the content is vague rather than front-loaded with useful detail. Brevity without information isn't efficient structure here.
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 0% schema description coverage mean the description must carry everything. It doesn't explain the return value, editing semantics, or how it relates to sibling block tools. For a tool with such a rich set of related siblings, this leaves the agent under-informed.
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?
Only one parameter (block_name) with 0% schema description coverage. The description doesn't add meaning to block_name beyond what the name implies, but with a single required string parameter the baseline is 3 per the rule for low-coverage single-param cases.
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 restates the name in a tautological way: 'Return a block definition for editing' adds no specific verb+resource information beyond what 'edit_block' already implies. It doesn't clarify whether this retrieves data, prepares a block for editing, or performs the edit itself, and gives no differentiation from siblings like insert_block or explode_block.
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 tool versus alternatives. The phrase 'for editing' hints at a use case, but there's no statement about when this should be called nor what the alternative would be. With many sibling block-related tools, this is a notable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explode_blockB
Explode an inserted block group back into loose entities.
| Name | Required | Description | Default |
|---|---|---|---|
| instance_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It does disclose the core transformation: an inserted block group is converted into loose entities, which implies a mutating operation. However, it does not state whether the explosion is reversible, what happens to the original block definition or attributes, or whether specific permissions are required.
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 a single, front-loaded sentence with no wasted words. It immediately states the action and result, which is appropriate for such a simple 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?
For a mutation tool with no annotations, no output schema, and 0% parameter description coverage, the description is incomplete. It covers the basic purpose but omits the required parameter's semantics, usage context, and behavioral side effects such as reversibility or impact on the block definition.
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?
There is one parameter, instance_id, and schema description coverage is 0%, so the description should compensate by explaining the parameter's meaning. It refers to an "inserted block group" but never mentions instance_id or clarifies how to identify the target block instance.
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 gives a specific verb ("Explode") and a specific resource ("an inserted block group"), and it states the result ("back into loose entities"). This clearly distinguishes it from block-creation tools like create_block/insert_block and group tools like ungroup.
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 description explains what the tool does but provides no guidance on when to use it versus alternatives such as edit_block, ungroup, or create_exploded_view. It also omits prerequisites, like whether the block instance must already be inserted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_3mfC
Export entities to 3MF-like text.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden but discloses almost nothing. It does not say whether the export writes to a file on disk, returns a string, overwrites on conflict, or what happens when entity_ids is omitted (it is not required). 'Text' hints at output format but conflicts with the presence of a 'path' parameter.
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 single sentence is front-loaded and wastes no words, but its brevity comes at the cost of under-specification rather than efficiency. It is concise without being informative.
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 parameterized export tool with no annotations, no output schema, no parameter descriptions, and ambiguous file-vs-text semantics, the description is far too thin. An agent cannot reliably determine how to invoke it or what side effects to expect.
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 two undocumented parameters, and it does not. 'Entities' loosely hints at entity_ids, but 'path' is never explained, and the fact that neither parameter is required is left entirely silent.
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 gives a clear verb ('Export') and resource ('entities') plus a target format (3MF), which is enough to know roughly what it does. However, '3MF-like text' is hedged and ambiguous about whether a file is written or text is returned, and it does nothing to distinguish this from the many sibling exporters (export_step, export_stl, export_obj, export_iges, export_dwg).
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 mention of prerequisites, and no differentiation from the large family of export_* siblings. The only signal is the implied format, so the agent must infer context entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_dwgA
Export the current 2D scene to DWG by writing a DXF and converting via LibreDWG's dxf2dwg. Returns base64 DWG bytes; pass path to also write to disk. Run dwg_tools_status to confirm dxf2dwg is installed.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden well: it discloses the DXF intermediate step, LibreDWG dependency, base64 return value, and optional disk write via `path`. It still omits overwrite behavior, error handling, and whether `entity_ids` narrows the export scope.
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 front-loaded: it leads with what the tool does, then return/disk behavior, then prerequisite. Every sentence adds useful information without 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?
It explains the return value and external dependency despite having no output schema, but it leaves `entity_ids` completely unexplained and says nothing about failure modes or how exporting a subset of entities affects the scene.
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 explain both parameters. It clarifies `path` as an optional disk-write target, but `entity_ids` is never mentioned, leaving half the parameters undocumented.
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: exporting the current 2D scene to DWG. It distinguishes itself from siblings by naming the DXF-to-DWG conversion pipeline via `dxf2dwg`, so an agent can separate it from `export_dxf` and other export 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?
It gives a clear prerequisite: run `dwg_tools_status` to confirm `dxf2dwg` is installed. This is useful routing guidance, but it does not explicitly say when to choose `export_dwg` over `export_dxf` or other export formats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_dxfB
Export 2D entities to DXF (internal mm). Optional entity_ids limits which entities are written.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and mostly does not. It discloses the unit system (internal mm), which is genuinely useful, but says nothing about where the file is written, whether an existing file is overwritten, or what the call returns.
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 compact sentences, no redundancy, and the core purpose plus unit convention are front-loaded ahead of the optional-parameter note. 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?
For a simple one-optional-parameter export with no output schema, the description covers purpose, units, and parameter scope. It still omits the output destination and return value, which an agent calling an export tool reasonably needs to know.
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 has no schema documentation, but the description compensates: it explains that entity_ids is optional and that supplying it restricts the export to those entities. That is the essential semantic meaning for this 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 and resource (export 2D entities to DXF) and adds the unit convention, so the agent knows exactly what the tool emits. It does not differentiate itself from the many sibling exporters (export_dwg, export_step, export_svg), which would have been easy to do.
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 indication of when to choose DXF over the sibling export formats, nor any prerequisite or precondition. The sentence about entity_ids is scope, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_geojsonB
Export 2D entities to a GeoJSON FeatureCollection while preserving layer and properties metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | No |
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 it does disclose two meaningful behaviors: only 2D entities are exported, and layer plus properties metadata is preserved in the output. However, it says nothing about where the file is written, whether an existing file at 'path' is overwritten, or what happens to 3D entities in the selection.
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 the action, scope, output format, and metadata guarantee packed in with zero filler. Nothing needs trimming and the key information leads.
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 tool with no annotations, no output schema, zero parameter documentation, and two optional parameters whose omission behavior is unspecified, the description is too thin. It never clarifies what a call without 'path' or 'entity_ids' does, nor how filtering and file output interact.
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 both parameters, so the description must compensate and largely does not: 'path' (output destination) and 'entity_ids' (which entities to export) are never explained or even referenced. The only oblique hint is the '2D entities' scope wording, which loosely maps to the entity selection.
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 (Export), resource (2D entities), and output format (GeoJSON FeatureCollection), which differentiates it from the many other export_* siblings such as export_step, export_svg, and export_shapefile. It stops short of explicitly naming the nearest alternative (export_shapefile) for the same geospatial domain.
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 '2D entities' implies a scope constraint, but there is no explicit when-to-use guidance, no statement of when to prefer this over export_shapefile or export_dxf, and no prerequisite information (e.g. CRS setup). 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.
export_gltfC
Export entities to GLTF-like text.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | 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 burden. It does not disclose that this is a write operation to a file path, whether an existing file is overwritten, whether it fails when entity_ids is omitted, or any output/return behavior. Only the terse 'GLTF-like text' hints at the result 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?
It is a single short, front-loaded sentence with no filler, which is structurally clean. However the brevity here reflects under-specification rather than efficient concision, since essential information is simply absent.
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 an export tool with zero annotation coverage, no output schema, and 0% parameter documentation, the description is far too thin. The agent has no information about where output goes, what gets exported by default, or how this differs from the adjacent export_* tools.
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 neither parameter is named or explained. The word 'entities' loosely implies entity_ids, but 'path' (the file destination) and the optionality of both parameters are not addressed anywhere in the description.
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 (export) and target format (GLTF), so the agent knows the general operation. But 'GLTF-like text' is vague and it gives no differentiation from the many sibling exporters (export_obj, export_stl, export_3mf, export_step, export_dwg). An agent cannot tell from the text why it would pick GLTF over another export format.
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 mention of alternatives among the large set of sibling exporters, and no prerequisites (e.g., whether entities must exist or a path must be writable). The agent is left to infer everything about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_igesC
Export entities to IGES-like text.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden, and it discloses almost nothing: it does not say whether output is written to the path or returned as a string, what happens when entity_ids is omitted (export everything vs. nothing), whether existing files are overwritten, or what format/permissions the path requires. "IGES-like text" is the only behavioral hint, and it is ambiguous rather than clarifying.
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?
It is a single front-loaded sentence with no filler, which is structurally sound, but the brevity reflects under-specification rather than economy of expression. Nothing is wasted, yet too little is said for a tool with two 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?
With no annotations, no output schema, and 0% schema description coverage, the description is the only source of information and is far too thin for a two-parameter export tool. An agent cannot confidently determine output destination, default selection scope, or failure modes from what is provided.
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?
Both parameters (path, entity_ids) have 0% schema description coverage, so the description must compensate and does not. "Export entities" weakly implies entity_ids selects which entities, but the meaning, default behavior, and requiredness of path and entity_ids are left entirely to inference.
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 pairs a specific verb ("Export") with a specific resource ("entities") and names the target format (IGES), so an agent can tell it apart from export_step or export_stl by format. It stops short of a 5 because "IGES-like text" hedges on the actual output artifact and the description never contrasts itself with the many sibling exporters.
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 stated prerequisites, and no mention of when to prefer IGES over the numerous alternate export formats (STEP, STL, OBJ, SVG, GLTF, 3MF, DWG) in the sibling list. Usage is only inferable from the format name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_objC
Export entities to OBJ-like text.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but discloses almost nothing. It says 'to OBJ-like text' while the schema has a 'path' parameter, leaving ambiguous whether it writes a file, returns a string, or both. Permissions, failure modes, and side effects are unstated.
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 padding, which is efficient. However the brevity crosses into under-specification rather than true conciseness, since essential detail is simply absent.
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 an export tool with no annotations, no output schema, and 0% parameter coverage, the description is too thin. It leaves the format semantics, destination behavior, and parameter meanings unresolved for an agent 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 description coverage is 0% for both parameters and the description compensates for neither. It never explains what 'path' means (file vs directory) or what 'entity_ids' accepts, and with zero required parameters it doesn't clarify the default scope.
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 (export) and resource (entities to OBJ format), and the format name distinguishes it from siblings like export_step and export_stl. The qualifier 'OBJ-like' is slightly imprecise, but an agent can still tell it apart from other export 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?
There is no when-to-use guidance and no mention of alternatives among the many export siblings (export_step, export_iges, export_stl, export_gltf). The agent is left to infer that this is for OBJ output purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_shapefileB
Export 2D entities as a zipped ESRI Shapefile package and optionally write it to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | No |
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 two useful traits: the output is packaged as a zip and the disk write is optional. It stops short of explaining what happens when 'path' is omitted (in-memory result?), what permissions are needed, or how the 2D-only restriction affects 3D entities.
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 verb, scope, and format come first, and the optional behavior is tacked on last, which is the right ordering.
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 0% parameter coverage mean the description must do more work than it does. It adequately conveys the output packaging, but an agent still lacks guidance on parameter usage, undefined-path behavior, and the choice among sibling export formats.
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 both parameters, so the description is the only clue: 'optionally write it to disk' implies 'path' is the optional disk target. It says nothing about what 'entity_ids' accepts or what happens if it is empty/omitted, so it only partially compensates for the coverage 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?
States a specific verb ('Export'), resource ('2D entities'), and output format ('zipped ESRI Shapefile package'), so the agent knows exactly what the tool produces. It does not, however, distinguish itself from the many other export_* siblings (export_geojson, export_dwg, export_dxf), leaving the format choice to the agent's domain knowledge.
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 'optionally write it to disk' hints at two operating modes but never says when to use one over the other, nor when this tool should be preferred over the sibling exporters (e.g., export_geojson) or paired with import_shapefile. No context, prerequisites, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_stepC
Export entities to STEP-like text.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | No |
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 load. It conveys only that an export produces 'STEP-like text' but says nothing about file writing, path handling, side effects, permissions, overwrite behavior, or whether the output is returned or saved.
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 a single, front-loaded sentence with no padding. It is concise, though its extreme brevity contributes to ambiguity rather than clarity.
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 no annotations, no output schema, 0% schema description coverage, and two undocumented parameters, the description is insufficient for correct invocation. It identifies the operation and format but omits essential details about behavior, parameters, and results.
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 both parameters, and the description does not compensate. 'Entities' loosely hints at entity_ids, but the path parameter is unmentioned, and no details clarify what the parameters mean or how they should be 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?
The description states a specific verb ('Export'), resource ('entities'), and target format ('STEP-like text'), which distinguishes it from sibling export tools like export_iges and export_stl. It is clear enough to select in context, though 'STEP-like' and 'entities' are somewhat vague.
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 description gives no guidance on when to use this tool versus alternatives such as import_step, export_iges, export_stl, or export_dwg. The format name provides implicit context, but there are no conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_stlC
Export entities to STL-like text.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | 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 indicates an export to text, but does not explain whether it writes a file, overwrites existing files, requires permissions, or what happens if parameters are omitted.
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 a single short sentence with no wasted words. However, it is arguably too sparse for a tool with undocumented parameters and many sibling export formats, and 'STL-like text' is imprecise.
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 definition lacks annotations, an output schema, and parameter descriptions. For an export tool with two parameters and no structured documentation, the description does not provide enough context to invoke it correctly or understand its side effects.
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 description does not clarify the meaning of the two parameters. It vaguely references 'entities' but says nothing about 'path' or how entity_ids are interpreted.
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 clear verb and resource: export entities to STL-like text. It does not distinguish this tool from sibling export formats such as export_obj or export_3mf, but the core action is understandable.
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 is given about when to use this tool versus other export tools. The only implied usage comes from the tool name and the word 'STL', with no explicit context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_svgD
Export entities to SVG-like text.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| entity_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden and fails: it never says whether output goes to the 'path' on disk or is returned inline, whether it is read-only, whether it overwrites an existing file, or what 'SVG-like' means versus real SVG. Nothing beyond a restated purpose.
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 short, front-loaded sentence with no filler, but it is terse to the point of being under-specified rather than genuinely efficient. There is no sentence to cut because there is essentially no content.
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 export tool with no annotations, no output schema, and no parameter documentation, the description supplies almost nothing an agent needs: not the output destination, not the default entity set, not the relationship to the sibling SVG generators and exporters.
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 both parameters, and the description explains neither. The meaning of 'path' (output file? directory?) and whether 'entity_ids' is optional (which entities are exported by default when omitted) are left entirely undocumented.
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?
It states a verb ('Export') and a resource ('entities') plus a target format, but 'SVG-like text' is ambiguous and there is no differentiation from the many sibling exporters (export_dxf, export_step, generate_svg, batch_generate_svg, render_preview_svg). An agent cannot tell from this text whether it writes a file or returns a string.
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 choose this over generate_svg, batch_generate_svg, render_preview_svg, or the other export_* siblings. No preconditions, no mention of which entities are eligible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extendC
Extend a line-like entity by 20 percent.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ||
| boundary_entities | 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 burden. It states the mutation (extend by 20 percent) but says nothing about which end extends, whether it is reversible/undoable, what boundary_entities constrain, or error behavior on non-line entities.
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 short sentence with nothing wasted and the action front-loaded, but it is under-specified relative to the tool's complexity rather than genuinely well-proportioned.
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 geometry mutation tool with no annotations, no output schema, and undocumented parameters needs more than a magnitude statement. The agent lacks what it needs to call this correctly on 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?
Schema description coverage is 0%, so the description must compensate, but it explains neither entity_id (only implied as 'line-like entity') nor the optional boundary_entities, which is completely unaddressed despite likely controlling extension limits.
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 (extend) and a specific resource class (line-like entity) with a concrete magnitude of 20 percent. It is clearly distinct from offset/trim in intent, though it doesn't name siblings 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 guidance on when to use this versus offset, trim, or fillet_2d, and no preconditions. The agent must infer that this only applies to open line-like geometry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fillet_2dC
Create a simple arc fillet between two lines using their intersection midpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| radius | Yes | ||
| line_id_a | Yes | ||
| line_id_b | 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, but it omits key questions: whether the two lines are trimmed to the new arc, what happens when the radius does not fit at the intersection, and what the tool returns. The midpoint-placement note is 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; the core operation is stated immediately. It is efficient, though extremely terse for a 4-parameter geometry operation.
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 4-parameter mutation with no annotations, no output schema, and 0% schema coverage, the description is too thin. It should at minimum clarify units, ID format, and the effect on the source lines.
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 4 parameters, so the description must compensate. It loosely maps to radius and the two lines but says nothing about the unit parameter or the expected format of the line IDs, leaving a required enum and two ID fields undocumented.
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 gives a specific verb+resource ("Create a simple arc fillet between two lines") and adds the placement mechanism ("using their intersection midpoint"). An agent can distinguish this from fillet_3d and chamfer_2d, though the description never names those alternatives.
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 and no routing to alternatives such as chamfer_2d or fillet_3d, despite these being adjacent siblings. The reader is left to infer that this is the 2D/line-based variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fillet_3dC
Create a simplified filleted copy of a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| guides | No | ||
| radius | No | ||
| path_id | No | ||
| distance | No | ||
| edge_ids | No | ||
| face_ids | No | ||
| profiles | No | ||
| solid_id | No | ||
| direction | No | ||
| thickness | No | ||
| open_faces | No | ||
| profile_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry full behavioral burden. It hints at creating a copy (non-destructive), but doesn't disclose what 'simplified' means, whether the original solid is modified, required input combinations, or output format. This is a significant gap for a 13-parameter 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?
The description is a single, front-loaded sentence with no waste, but it is overly terse and misses opportunities to clarify key usage details.
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 13 undocumented parameters, no annotations, and no output schema, the description is completely inadequate for an agent to invoke the tool correctly or understand its behavior.
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%, meaning none of the 13 parameters are documented. The description provides no information about what parameters are needed or how they interact (e.g., which of solid_id, edge_ids, face_ids are required, or how radius/angle/distance apply).
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 ('Create') and resource ('simplified filleted copy of a solid'), which distinguishes it from siblings like create_box or create_sphere. 'Simplified' likely refers to fillet approximation, but the description doesn't explain this nuance or differentiate from chamfer_3d or shell.
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 use this tool versus alternatives like chamfer_3d or shell, nor any preconditions such as needing an existing solid or selecting appropriate edges/faces.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_entities_by_layerC
Return entities assigned to a specific layer name.
| Name | Required | Description | Default |
|---|---|---|---|
| layer_name | 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 states only that entities are returned, without disclosing read-only safety, behavior for a nonexistent layer, empty-result handling, or any return-format details.
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 a single front-loaded sentence with no wasted words. It is appropriately sized for the tool's simple purpose.
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 tool is simple, but no output schema exists and the description does not explain what a returned entity looks like or how layer-name matching works. For an agent calling this tool correctly, the description leaves meaningful behavioral and output interpretation 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% for the single required parameter. The description says 'specific layer name,' which restates the parameter name but adds no detail about matching semantics, case sensitivity, or format, so it does not compensate for the missing schema documentation.
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 clear verb ('Return') and resource ('entities assigned to a specific layer name'), immediately distinguishing the filter dimension from generic listing. However, it does not explicitly differentiate itself from siblings such as find_entities_by_property or find_entities_in_region.
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 offers no context for choosing this tool over list_entities, find_entities_by_property, or find_entities_in_region, and it does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_entities_by_propertyC
Find entities by direct field or property-bag value using exact matching.
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | ||
| property | 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 does disclose one useful trait — matching is exact, not fuzzy or substring — but says nothing about case sensitivity, scope (all entities vs. current document), pagination, or result shape for what is clearly a query 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?
A single tight sentence with the mechanism front-loaded after the core action. No filler, no restatement of the tool name.
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 lookup with no annotations, no output schema, and zero schema description coverage, the description leaves important gaps: which entity types are searched, the search scope, and what is returned. It is usable but under-specified for its 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 coverage is 0%, so the description must compensate. It does add genuine meaning by clarifying that 'property' can be either a direct entity field or a property-bag key, and that 'value' is matched exactly. However, it never explains valid field names, the value's expected type (the schema leaves 'value' untyped), or key syntax.
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?
Clear verb+resource (find entities) with the distinguishing mechanism spelled out: 'direct field or property-bag value using exact matching.' An agent can tell it apart from find_entities_by_layer by the lookup key, though the description never explicitly names the sibling tools it competes with.
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, no prerequisites, and no mention of siblings like find_entities_by_layer, find_entities_in_region, or list_entities. Usage is only implied by the verb, leaving the agent to infer when this lookup is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_entities_in_regionC
Find entities whose bounding boxes intersect the given region.
| 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?
With no annotations, the description carries the full behavioral burden. 'Find' suggests a read-only lookup, but the description does not disclose the return format, whether the search is limited to a coordinate space or model, how bounding boxes are computed, or any performance or scope 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 with no wasted words. It states the action and the selection rule directly.
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 spatial query tool with four undocumented numeric parameters, no annotations, and no output schema, the description is too thin. It omits coordinate semantics, return shape, and scope of the search, which an agent needs 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 explain the four numeric parameters. It alludes to a 'region' but does not specify that x1/y1 and x2/y2 are corner coordinates, their order, whether they are min/max, units, or coordinate system, leaving the parameters largely ambiguous.
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 ('Find') and resource ('entities'), plus the precise selection criterion ('bounding boxes intersect the given region'). It implicitly distinguishes itself from sibling lookups like find_entities_by_layer or find_entities_by_property, though it does not name those alternatives 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?
The description offers no guidance on when to use this spatial query versus other entity-listing tools, no prerequisites, and no exclusions. The only implied context is that the caller already has a region, which is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pdfC
Generate a minimal PDF summary for a drawing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| scale | No | ||
| drawing_id | Yes | ||
| paper_size | Yes |
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. It signals that a PDF file will be generated but omits whether it overwrites an existing file, where the output is written, what permissions are needed, and what the return value is.
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 single sentence is front-loaded and free of fluff, but its extreme brevity reflects under-specification rather than carefully structured conciseness. It is minimally viable as a sentence but lacks useful structure.
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 0% parameter description coverage, the description must be self-sufficient. One vague sentence is not enough for a file-generating tool with four parameters and two required inputs.
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?
There are 4 parameters with 0% schema description coverage, and the description mentions none of them. It does not explain drawing_id, paper_size, path, or scale, so it adds no parameter semantics beyond 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 'Generate' and resource 'PDF summary for a drawing', which is more informative than the tool name alone. However, it does not distinguish itself from sibling tools such as generate_svg or batch_generate_pdf, so it falls 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 description gives no when-to-use guidance, no alternatives, and no prerequisites such as whether the drawing must exist or whether paper_size requires a specific format. It only implies a drawing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_svgC
Generate SVG for selected entities or the full scene.
| Name | Required | Description | Default |
|---|---|---|---|
| viewport | No | ||
| entity_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It never says whether the SVG is returned inline, written to a file path, or how the result is delivered, nor does it mention any permissions or side effects — a key unknown for a generation/export 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 waste. It is efficient, though its brevity is partly achieved by omitting needed detail rather than by tight writing.
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 0% schema description coverage on a 2-parameter tool, the description should carry far more weight. It omits return/delivery format, parameter meaning, and relationship to sibling export tools.
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 neither parameter is described. The phrase 'selected entities' loosely maps to entity_ids, but the viewport parameter is never explained, and the interaction between the two (e.g., whether entity_ids overrides viewport) is left entirely to inference.
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 output ('Generate SVG') plus the scope of what is rendered ('selected entities or the full scene'). It does not explicitly differentiate itself from close siblings like export_svg, render_preview_svg, or batch_generate_svg, so it falls 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?
No when-to-use guidance is given. With siblings such as export_svg, render_preview_svg, batch_generate_svg, and export_pdf in the list, the agent gets no signal about which of these to pick or under what conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geometry_backend_statusA
Report the current 3D geometry backend. Returns one of: { backend: "occt", available: true, version? } when OpenCascade.js is loaded, { backend: "occt-error", available: false, reason } when load failed, or { backend: "mock", available: false, reason } when running with the lightweight fallback. Use this to verify whether STEP/STL/IGES/GLTF tools are running on real OCCT or on stubbed geometry.
| 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 full burden, and it does well: it discloses the three possible states (occt/occt-error/mock), that availability can be false, and that a 'reason' field accompanies failures. It does not explicitly state read-only/no-side-effect, but the diagnostic framing makes it clear.
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 the three enumerated return shapes, then the use case. Dense but every clause maps to distinct behavior; the return-shape list is justified since no output schema exists, though it is a single long sentence.
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, the description fully compensates by enumerating all three return shapes and their fields (backend, available, version, reason), which is exactly what an agent needs to interpret the result. Nothing material 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 tool takes zero parameters, so the baseline is 4. There is nothing for the description to add or clarify beyond an empty 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 (Report) and resource (current 3D geometry backend), and it is clearly distinguishable from the geometry-creation/import siblings. An agent can tell immediately this is a diagnostic probe, not a modeling operation.
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?
Explicitly gives the when: 'Use this to verify whether STEP/STL/IGES/GLTF tools are running on real OCCT or on stubbed geometry.' It names the downstream tools it informs but offers no explicit when-not or alternatives (e.g., dwg_tools_status is a sibling status tool it doesn't distinguish itself from).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bounding_boxC
Compute a bounding box for all entities or a selected subset.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_ids | 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 burden. It does not disclose whether this is read-only, whether it requires a loaded document, what is returned (a point pair, coordinates?), or whether the result is stored anywhere. Significant behavioral gaps remain.
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?
Single efficient sentence with the scope front-loaded. No waste, though it is arguably under-specified rather than concise.
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 0% parameter coverage. For a measurement tool, the description should at least indicate the return form and whether it is a safe read. It leaves too much for the agent to infer.
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 description only obliquely references the entity_ids parameter via 'or a selected subset'. It does not clarify that omitting the parameter computes over all entities or the expected ID format.
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 (Compute) and resource (bounding box) with scope (all entities or a selected subset). It is distinguishable from the many create_* siblings, though it overlaps somewhat with measure_bounding_box, which is not 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 guidance on when to use this versus measure_bounding_box, nor any context about the result. 'All entities or a selected subset' implies the parameter's effect but gives no when/when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_curve_lengthC
Measure length or perimeter for a 2D entity in internal millimetres.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | 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 discloses the unit (internal millimetres), which is valuable, but omits whether this is a read-only query, what happens for non-2D entities, and what the return value looks like.
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 unit constraint is placed at the end efficiently. It is appropriately sized for a trivial one-parameter tool, though extremely terse.
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 measurement tool with no annotations and no output schema, the description is thin: it does not state the return type/format or how it relates to the near-identical measure_perimeter sibling. An agent lacks enough to confidently call it over alternatives.
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 entity_id parameter is undocumented in both schema and description. The phrase 'a 2D entity' only hints at what entity_id must reference, adding marginal meaning without explaining accepted identifiers or format.
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 (measure) and resource (length/perimeter of a 2D entity), clearly conveying the operation. However, it does not differentiate from the sibling measure_perimeter, which sounds nearly identical, leaving ambiguity about which tool to pick.
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 versus measure_perimeter, measure_distance, or measure_area. The only implied scoping is '2D entity', which is minimal and not framed as a when/when-not condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edge_listC
Return simplified edge ids for a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id | 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, yet it discloses almost nothing beyond the name. It doesn't explain what 'simplified' means, whether the ids are stable or session-scoped, or the shape of the returned data, which matters for a query tool in a CAD topology family.
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 or redundancy. It is efficient, though so terse that the brevity edges toward under-specification rather than crisp conciseness.
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 an undocumented parameter, an agent has no information about return format, id semantics, or failure modes. Given the complexity of the surrounding topology/geometry toolset, the definition is too thin to call the tool reliably.
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 is one required parameter, solid_id, with no type details or accepted identifier format (handle, name, GUID?) anywhere. The description only obliquely implies solid_id refers to a solid, adding essentially no meaning over the raw 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 ('Return') and resource ('edge ids') scoped to a solid, so an agent can distinguish it from the neighboring get_face_list and get_vertex_list by entity type. The qualifier 'simplified' is unexplained, which slightly muddies the promise, 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?
No guidance on when to prefer this over get_topology, get_face_list, or get_vertex_list, and no prerequisites (e.g., the solid must exist or be loaded). The agent must infer usage purely from the tool name and the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_propertiesC
Return one entity record by id.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | 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. 'Return' implies a read operation, but it does not state what happens when the id is missing, whether permissions are required, or any other behavioral detail beyond the bare 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 a single, front-loaded sentence with no wasted words. Its brevity is appropriate for a simple getter, even though it leaves other dimensions under-specified.
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 tool has no annotations and no output schema, so the description should provide more context about return records, errors, or id sourcing. It is too sparse to fully prepare an agent to invoke the tool correctly in the broader CAD/project sibling set.
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 only parameter is entity_id. The description adds only 'by id,' which restates the parameter name without giving format, source, or validity constraints. It does not compensate for the missing schema-level documentation.
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 clear verb-resource pair: return one entity record identified by id. It is distinguishable from broad list/search siblings, but it does not explicitly contrast with close alternatives such as list_entities, get_entity_type, or find_entities_by_property.
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 use this tool versus siblings. The agent can infer it is a single-entity lookup, but the description provides no context, prerequisites, or alternative-selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_typeC
Get the entity type string for a specific entity id.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | 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. It does not say whether the entity must exist, what happens for an unknown id, whether the call is read-only, or what form the 'type string' takes. For a lookup tool with zero annotation coverage this is a real gap, though the operation is inherently simple.
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 short sentence, front-loaded with verb and resource and free of padding. Efficient, though it is sparse enough that it borders on under-specification rather than true conciseness.
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?
There is no output schema, and the description does address the return value ('entity type string'), which covers the single most important missing piece. However, error behavior for invalid ids and the expected id format remain undocumented for a tool whose schema and annotations are both bare.
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 is one parameter. The description at least conveys that entity_id identifies a specific entity, which the bare schema does not, but adds no format guidance (id string shape, where ids come from).
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: 'Get the entity type string for a specific entity id.' An agent knows exactly what is returned, though it does not distinguish this from the many other entity-introspection siblings such as get_entity_properties or get_topology.
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 and no mention of alternatives. With ~15 sibling tools operating on entity metadata, the description gives no signal about when this narrow 'type string' lookup is preferred over get_entity_properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_face_listC
Return simplified face ids for a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id | 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 almost nothing: not whether the solid must pre-exist, whether the ids are stable across edits, what 'simplified' means, or the return shape. Read-only nature is only implied by the verb 'return'.
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 short sentence with the key constraint front-loaded and no wasted words, which is good structure. The terseness tips into under-specification for a tool with no other documentation surface to lean on.
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, no annotations, and 0% parameter coverage, the description needed to explain the return value (what a face id actually is) and the solid_id format. It delivers only a bare one-line purpose, leaving the agent unable to predict the response.
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 single required solid_id parameter has no documented semantics anywhere. The description only implies it identifies a solid and says nothing about accepted format (handle, GUID, name) or error behavior for invalid ids.
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 (return) and resource (face ids) scoped to a solid, so an agent knows the output is a face identifier list rather than geometry. However, it does not differentiate itself from siblings like get_face_normal, get_topology, or get_edge_list, and the qualifier 'simplified' is left unexplained.
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 exclusions, and no pointer to an alternative such as get_topology or get_vertex_list. The agent must infer that this is the lighter-weight option for face enumeration from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_face_normalC
Return a simplified face normal for an axis-aligned face id.
| Name | Required | Description | Default |
|---|---|---|---|
| face_id | Yes | ||
| solid_id | 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 implies a read-only operation and hints that the result is snapped/simplified to axis directions, but it never states the return format, whether a normal is returned as a vector or enum, or what happens for non-axis-aligned or curved faces.
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 short sentence with no wasted words, front-loading the action. It is efficient, though the terseness contributes to the under-specification.
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?
There is no output schema, so the description should explain the returned value, but it does not. Combined with 0% parameter coverage and no annotations, an agent lacks enough information to call this tool confidently for anything beyond the most obvious case.
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 both solid_id and face_id, so the description had room to compensate but does not. It only loosely implies face_id refers to an axis-aligned face; the meaning and accepted format of solid_id are entirely undocumented.
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 clear verb (Return) and resource (simplified face normal), but it does not differentiate itself from nearby siblings like get_face_list, get_topology, or get_entity_properties. The qualifiers 'simplified' and 'axis-aligned' hint at a specific behavior without defining it, leaving the agent to guess what 'simplified' means.
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 indication of when to call this tool versus alternatives such as get_face_list or get_topology, and no prerequisites (e.g., whether the face must be planar or axis-aligned) are given. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_layer_listC
Alias for listing all layers.
| 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 full disclosure burden and delivers almost nothing. It implies a read, but does not state read-only safety, scope (current drawing vs. all documents), ordering, or what the return looks like.
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 six-word sentence with no filler, front-loading the fact that it is an alias. It is efficient, though its brevity is partly under-specification rather than disciplined conciseness.
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-annotation, no-output-schema tool whose entire value is being an alias, the description should say what it aliases and when to prefer it. As written, it does not resolve the ambiguity created by the two overlapping layer-listing siblings.
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. Baseline 4 applies for a parameterless tool.
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?
"Listing all layers" gives a clear verb and resource, but the operative word is "Alias" – it never names the sibling it aliases. With both list_layers and autocad_list_layers present, an agent cannot tell which canonical tool this duplicates or how it differs.
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 statement and no alternatives named. The description never explains when an agent should pick this alias over list_layers or autocad_list_layers, leaving the choice purely to guesswork.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mass_propertiesC
Return mass properties based on simplified volume and material density.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the burden. It discloses a meaningful behavioral model: output is based on a simplified volume and material density, implying approximation rather than exact measurement. It doesn't state read-only nature, units, or that the solid must exist/have material assigned.
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?
Single efficient sentence, front-loaded with the verb and result. No filler, though it is short enough that it could carry more without bloat.
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 measurement/computation tool with no annotations, no output schema, and undocumented parameters. The description does not cover return structure, units, material prerequisite, or the simplified-volume caveat's implications, leaving real 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?
One parameter (solid_id) with 0% schema description coverage. The description implies the input is a solid but doesn't document solid_id's format or source. With only 1 param and no enum/nesting, baseline 3 with modest gap is appropriate.
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 clear verb (return) and resource (mass properties) tied to a solid via simplified volume and material density. However, it does not distinguish itself from close siblings like measure_volume, measure_centroid, or measure_moment_of_inertia, which an agent could confuse with this.
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. Given the dense cluster of measurement siblings (measure_volume, measure_moment_of_inertia, measure_centroid), the description should route the agent, but it offers no conditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parameterC
Get a parameter by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full behavioral disclosure. 'Get' implies a read, but the description says nothing about permissions, error behavior, return format, or side effects, leaving significant gaps for a retrieval 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 wasted words. It is efficient, though perhaps excessively terse for a tool whose parameter semantics and return behavior are otherwise undocumented.
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 no parameter descriptions, the description does not explain what a parameter is, what the return value looks like, or how errors are handled. An agent lacks enough context to invoke it confidently beyond guessing.
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 the single 'name' parameter. 'By name' only restates the schema property without clarifying matching rules, case sensitivity, or expected format, adding minimal semantic value.
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 ('Get') and resource ('parameter') and scope ('by name'), making it clear it retrieves a single parameter rather than listing them. However, it does not explicitly differentiate itself from siblings like list_parameters, set_parameter, or update_parameter.
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 guidance on when to use this tool versus alternatives such as list_parameters or get_entity_properties. There are no prerequisites, exclusions, or conditions mentioned, leaving usage entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_crsB
Return current project georeferencing metadata.
| 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 full burden. It implies a read-only getter but says nothing about what is returned, whether a project must be open, or what happens if no CRS is set. For a metadata getter with zero annotation coverage, this is thin.
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 short sentence with the resource front-loaded and no filler. Nothing can be trimmed without losing meaning.
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 should describe the shape of the returned georeferencing metadata and any preconditions. As written, an agent cannot anticipate the keys or units it will receive.
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 no parameter semantics to document; the baseline of 4 applies. The description does not need to explain inputs.
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 (Return) and resource (current project georeferencing metadata), which is enough to distinguish it from write-oriented CRS tools like set_project_crs. However, it does not name or differentiate itself from near siblings such as get_project_info or list_known_crs, leaving overlap to inference.
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 use this versus alternatives such as get_project_info or list_known_crs, nor any stated preconditions (e.g., that a project must be loaded). Usage must be inferred 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.
get_project_infoB
Return current project metadata and scene counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. 'Return' implies a read with no side effects, but it does not state whether a project must be open, whether anything is mutated, or how costly the call is. It discloses only the rough content of the response.
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. For a zero-argument getter, this is appropriately sized and every word 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?
With no output schema, no annotations, and no parameters, the description is the only source of context, and 'project metadata' remains vague about which fields are returned. It is minimally adequate for a simple getter but does not compensate for the absent structured data.
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 are no argument semantics to explain. The description adds nothing beyond the empty schema, but nothing is missing either.
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 (return) and resource (current project metadata plus scene counts), so the agent knows exactly what this tool fetches. It does not distinguish itself from related getters such as get_project_crs or get_mass_properties, so it stops 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?
There is no when-to-use guidance, no stated preconditions (e.g. a project must be loaded), and no mention of alternatives. The agent must infer applicability purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_raster_layerB
Return one raster layer record by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
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. It only implies a read operation via 'Return' but does not describe error behavior, permissions, or what happens if the id is missing; the description adds minimal behavioral context.
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 a single front-loaded sentence with no wasted words. It is appropriately sized for a simple retrieval 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?
For a low-complexity read-by-id tool with no output schema, the description is minimally sufficient to call the tool. However, it omits what fields a raster layer record contains and does not explain the missing-id case, leaving some gaps for an agent.
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 one undocumented parameter. Saying 'by id' clarifies that the id parameter is the lookup key selecting a specific raster layer record, but it does not specify format or constraints beyond the schema's minLength.
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: return a single raster layer record identified by id. It is clear what the tool does, though it does not explicitly differentiate itself from sibling tools like list_raster_layers or render_raster_layer_png.
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 description implies usage when an id is known, but it offers no explicit guidance on when to use this tool versus list_raster_layers or other raster layer operations. There are no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topologyC
Return simplified brep-like topology for a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the full behavioral burden. It implies a read operation and mentions 'simplified' topology, but it does not state permissions, side effects, output characteristics, or error behavior.
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 a single front-loaded sentence with no wasted words. However, it is arguably too terse for a tool whose behavior and output are otherwise undocumented.
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 0% parameter description coverage, the definition should explain much more about what 'simplified brep-like topology' returns and how to use solid_id. The one-sentence description leaves critical 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?
The schema has one required parameter with 0% description coverage, so the description must compensate. It says only 'for a solid,' which does not add format, source, or expected value information beyond the schema's solid_id field 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 states a specific verb and resource: 'Return simplified brep-like topology for a solid.' That is enough to understand the general operation, but it does not distinguish this tool from sibling topology getters such as get_face_list, get_edge_list, or get_vertex_list.
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, prerequisites, or alternatives are provided. The description does not explain when an agent should choose this tool over the many related topology and geometry inspection tools available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vertex_listC
Return solid bbox corner vertices.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id | 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, yet it discloses almost nothing: not the number of vertices returned, their coordinate system, ordering, or what happens if solid_id is invalid.
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 short sentence with no filler, but it is arguably too terse given the ambiguity of 'bbox corner vertices'. Every word earns its place, yet more structure was needed.
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 an undocumented parameter, the definition is incomplete for a data-returning tool. The return format is the most important thing an agent needs here and it is entirely absent.
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 is one required parameter, solid_id. The description implies it identifies a solid but gives no format guidance (name vs. handle vs. UUID), leaving the schema's untyped string ambiguous.
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 verb ('Return') and a resource ('solid bbox corner vertices'), so the basic operation is identifiable. However, the phrasing is compressed jargon and does not distinguish it from siblings like get_edge_list, get_face_list, or measure_bounding_box.
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 indication of when to use this tool versus alternatives such as measure_bounding_box or get_topology, and no prerequisites or exclusions stated. Usage is only weakly implied by the phrase 'solid bbox'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_csv_pointsC
Import CSV rows into point entities for sampling points or monitoring wells while preserving tabular attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| path | No | ||
| unit | No | ||
| layer | No | ||
| content | No | ||
| encoding | No | ||
| x_column | No | ||
| y_column | No | ||
| z_column | No | ||
| id_column | 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. 'Import' implies creation of entities, but it never says whether existing points are merged or duplicated, what permissions are needed, how source vs destination CRS are handled via the unit parameter, or what happens on malformed rows. Only 'preserving tabular attributes' adds any behavioral signal.
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; verb, resource, target domains, and the attribute-preservation property come in order. It is short, though the brevity is partly under-specification rather than discipline.
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 10-parameter mutation tool with zero annotation coverage and no output schema, the description is far too thin. It omits the file/encoding duality, coordinate-column mapping, units, and the layer target, all of which the agent must know to call this 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% across 10 parameters, so the description must compensate and largely does not. It alludes to attribute columns ('preserving tabular attributes') but never explains kind, path vs content vs encoding, unit, layer, or the x/y/z/id column mappings, which are the parameters an agent most likely gets wrong.
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 (import) and resource (CSV rows into point entities) with the domain scope (sampling points or monitoring wells) and a key property (tabular attributes preserved). It is clearly distinguishable from the CAD import siblings (import_step, import_dxf), though it never names create_point or create_sampling_point as the non-CSV alternative.
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 description names the target entity kinds but gives no when-to-use guidance, no prerequisites (must the layer exist? must CRS be set?), and no comparison against siblings like create_sampling_point or import_geojson. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_dwgA
Import DWG by piping through LibreDWG's dwg2dxf. Provide either path (DWG on disk) or base64 content. Falls back with an error if dwg2dxf is not installed (run dwg_tools_status to check).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| content | No | ||
| encoding | No |
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 the conversion mechanism and the failure mode (errors if dwg2dxf is not installed), which are non-obvious behaviors. It does not state what entities are created, whether it mutates/clears the current drawing, or 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?
Three tight sentences, front-loaded with the core action, then input options, then the failure/check note. 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 an import tool with no output schema and no annotations, this covers the inputs, mechanism, and failure mode adequately. It leaves unstated what happens on success (entities created, document state), which is the main remaining 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 coverage is 0%, so the description must compensate. It adds real meaning for two of three parameters ('path' = DWG on disk, 'content' = base64), which the bare schema types do not convey. It omits the 'encoding' enum parameter entirely, so it falls short of fully covering the inputs.
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 (import) and resource (DWG) and even discloses the mechanism (piping through LibreDWG's dwg2dxf), which implicitly differentiates it from import_dxf. It stops short of explicitly naming sibling alternatives like import_dxf or import_step, so it doesn't reach the top bar.
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 practical guidance on input selection ('Provide either path or content') and a prerequisite check ('run dwg_tools_status to check'), which is useful context. However, it never states when to choose this tool over import_dxf/import_step/import_iges, so alternative routing 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.
import_dxfA
Import DXF content (UTF-8 text or base64) into the scene: ensures layers exist and adds LINE, CIRCLE, ARC, POINT, LWPOLYLINE, and 2D POLYLINE entities (mm; arcs as radians internally).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| encoding | 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 does well: it discloses the side effect of ensuring layers exist, the scope of supported entity types, and the unit/representation conventions (mm; arcs stored as radians internally). It stops short of describing overwrite/merge behavior on existing geometry or error handling for unsupported DXF entities.
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 dense sentence front-loads the action and resource, then flows into format, side effects, and unit conventions. It is efficient and free of filler, though the long parenthetical entity list makes the sentence slightly heavy.
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 importer with no output schema and no annotations, the description covers the essential behavior: what gets imported, side effects on layers, supported entity types, and unit conventions. Missing the return description is acceptable without an output schema, but overwrite/merge semantics and unsupported-entity handling remain 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 is expected to compensate. It clarifies that 'content' is DXF text that may be UTF-8 or base64 encoded, which maps directly to the 'content' and 'encoding' parameters and adds real meaning beyond the bare schema. It does not state whether 'encoding' is optional or what the default is, but the coverage is materially improved.
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 (Import) and resource (DXF content) and enumerates exactly which entity types get created (LINE, CIRCLE, ARC, POINT, LWPOLYLINE, 2D POLYLINE), which clearly distinguishes it from sibling importers like import_dwg, import_step, or import_svg.
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 description implies usage (importing DXF text into the scene) and hints at format variants through 'UTF-8 text or base64', but it provides no explicit when-to-use guidance, no prerequisites, and no direction toward alternatives like import_dwg or export_dxf.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_geojsonC
Import GeoJSON FeatureCollection data into point, line, polyline, and polygon entities.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| unit | No | ||
| layer | No | ||
| content | No | ||
| encoding | 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. It discloses the entity types created but says nothing about whether path or content is required, how encoding/units are applied, layer assignment, failure behavior, or whether existing entities are affected.
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 efficient sentence with the verb and target entity types front-loaded and no filler. Its brevity, however, borders on under-specification for a multi-parameter import operation.
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 an import tool with 5 undocumented parameters, no annotations, and no output schema, the description is far too thin. It omits input source handling, encoding/unit behavior, and any safety or overwrite context an agent would need 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?
All 5 parameters have 0% schema description coverage, and the description mentions none of them (path, content, encoding, unit, layer). It adds no meaning beyond the raw schema, leaving the path-vs-content input mode and unit/encoding semantics entirely unexplained.
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 ('Import') and resource ('GeoJSON FeatureCollection data') plus the resulting entity types (point, line, polyline, polygon). The GeoJSON format name implicitly distinguishes it from import_step, import_shapefile, and import_csv_points, though it never names an alternative.
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, no prerequisites, and no routing to alternatives like import_shapefile or import_csv_points. An agent can only infer that it is used to bring GeoJSON in, with nothing about source format selection or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_geotiff_metadataA
Read a GeoTIFF file and return width / height / sample format / bbox / origin / resolution / CRS without attaching it to the session. Use attach_raster_layer to keep it as a session basemap.
| 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 behavioral burden. It discloses the key side-effect profile ('without attaching it to the session') and lists return fields, but it omits error behavior, file access constraints, and permission requirements for an unannotated 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 tightly written sentences. The return fields are front-loaded and the alternative-tool routing sentence follows without any 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 simple read-only metadata tool, the description covers purpose, return contents, and the alternative attach behavior. The missing path semantics and error/edge-case behavior keep it from being fully complete, but the core needs for correct invocation are largely 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 description coverage is 0% and the sole 'path' parameter has no schema description. The description implies a GeoTIFF file path but adds no format, relative/absolute path, or validation detail beyond what the schema minimally names.
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'), resource ('GeoTIFF file'), and enumerates the returned metadata fields. It also distinguishes itself from attach_raster_layer by noting it does not attach the file to the session.
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?
Explicitly names attach_raster_layer as the alternative and states the condition for choosing it: 'to keep it as a session basemap.' The decision rule between importing metadata and attaching a raster layer is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_igesC
Import IGES content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| content | No | ||
| encoding | No |
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, yet it discloses nothing beyond the verb. It does not say whether path or content is required, what happens on duplicate imports, whether the operation is undoable, or how encoding affects the payload.
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 short sentence is front-loaded, but this is under-specification rather than conciseness. Nothing here earns its place because nothing substantive is said.
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 three-parameter ingest tool with no annotations, no output schema, and 0% schema description coverage, this definition is completely inadequate. An agent cannot determine the required invocation shape or the effect of the call.
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 all three parameters, and the description does not compensate: it never mentions path, content, or the utf8/base64 encoding choice. An agent gets no meaning for any parameter from either source.
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?
'Import IGES content' states a verb and resource, so the basic purpose is identifiable. However, it does nothing to distinguish this from the many sibling import tools (import_step, import_stl, import_obj, import_dwg), which is exactly where an agent needs help.
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 use this versus the other import_* siblings, no mention of prerequisites, and no indication of how the result is integrated into the drawing. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_objD
Import OBJ content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| content | No | ||
| encoding | 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 burden of behavioral disclosure, and it discloses nothing. It does not say where the imported geometry lands (current document, new layer, origin placement), whether it overwrites or merges, how path vs content are resolved, or how the encoding enum affects parsing.
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 single sentence is short but that brevity reflects under-specification rather than economy; nothing an agent needs is front-loaded because nothing is provided at all.
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, no parameter documentation, and a description no longer than the tool name, the definition is completely inadequate for an import tool that parses file content into the model.
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?
All three parameters (path, content, encoding enum of utf8/base64) have 0% schema description coverage, and the description adds no meaning whatsoever. In particular it never explains the relationship between path and content or the semantics of the base64 option, leaving a 3-param tool fully undocumented.
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?
"Import OBJ content" is essentially a restatement of the tool name import_obj, giving a verb and a resource but no more. It does not distinguish this importer from the many sibling importers (import_step, import_iges, import_stl, import_svg), nor explain what "content" means here. Borderline tautology rather than a genuine purpose statement.
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 import_step, import_iges, import_stl, or any other import path, and no mention of prerequisites or context. The only implied usage comes from the name itself, which is already visible to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_pdf_as_underlayD
Import PDF_AS_UNDERLAY content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| content | No | ||
| encoding | 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 and supplies none of it: whether the file is read from disk or bytes, whether the received content is placed in modelspace or as a layer, what happens on failure, or whether existing underlays are affected.
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 short clause is not conciseness here but under-specification – it is too brief to earn its place rather than trimmed of waste. There is nothing front-loaded because there is nothing to front-load.
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 three-parameter import tool with no annotations and no output schema, the description is completely inadequate; an agent cannot determine required inputs, expected return, or side effects from 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% across three parameters (path, content, encoding), and the description adds nothing about any of them. The relationship between path and content, the utf8/base64 enum meaning, and which parameters are actually needed are all left unexplained.
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 restates the tool name almost verbatim ("Import PDF_AS_UNDERLAY content"), adding only the filler word "content." It conveys that a PDF is imported as an underlay, but this is entirely derivable from the name and does not distinguish the tool from sibling importers like import_dxf or attach_raster_layer.
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 indication of when to use this versus other import tools, no prerequisites, and no mention of how it relates to attach_raster_layer or the raster-layer family. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_shapefileC
Import ESRI Shapefile geometry and DBF attributes into point, line, polyline, and polygon entities.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| layer | No | ||
| dbf_path | No | ||
| shp_path | 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 discloses almost nothing: it does not say whether entities are created in the current drawing, how CRS/projection is handled, whether existing content is affected, or what happens when dbf_path is omitted. For a data-ingesting mutation tool 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?
A single front-loaded sentence with no filler. It is appropriately sized, though it errs toward under-specification rather than 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?
No output schema and no annotations, with four undocumented parameters, mean the description would need to explain CRS handling, unit conversion, layer targeting, and return behavior. It omits all of these, leaving an agent unable to predict the import's side effects.
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 only loosely hints at shp_path (geometry) and dbf_path (DBF attributes); it says nothing about the unit enum's effect on imported coordinates or what the layer parameter does.
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 (import ESRI Shapefile geometry and DBF attributes) and names the entity types produced (point, line, polyline, polygon). It is clearly distinguishable from create_* tools, but it does not differentiate itself from sibling importers like import_geojson, import_dwg, or import_dxf.
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 choose this over import_geojson, import_dwg, or import_dxf, which all ingest external geometry. There is no mention of prerequisites such as an existing project, a target layer, or coordinate system setup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_stepC
Import STEP content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| content | No | ||
| encoding | 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 delivers almost nothing. 'Import' weakly implies a mutation that loads geometry into the current document, but the description does not state whether it replaces or appends content, whether a file path or inline content is expected, what happens on failure, or what permissions are required. Only the implied mutation keeps this above a 1.
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 single sentence is short and front-loaded, but this is under-specification rather than economy: every sentence that would earn its place is absent. Brevity here costs the agent essential information rather than saving it.
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 three fully undocumented parameters, the description is completely inadequate. An agent cannot reliably call this tool from the given definition.
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?
All three parameters (path, content, encoding) have 0% schema description coverage, and the description contributes nothing to explain them. It does not clarify the interaction between path and content, nor the meaning of the utf8/base64 enum values. The agent is left to guess at every input.
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 (Import) and resource type (STEP content), so the basic operation is identifiable. However, it offers no differentiation from the many sibling importers (import_iges, import_stl, import_obj, import_dwg), so an agent must already know what STEP is to select this over alternatives. This is the minimum viable statement of purpose.
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 import_iges or import_dwg for other formats. The agent gets no signal about when this tool is the right choice versus the other 10+ import/export siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_stlD
Import STL content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| content | No | ||
| encoding | 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, and it discloses nothing. It does not say where imported geometry lands (current document vs new), whether it requires an open project, whether an existing document is modified, or whether the operation can fail on malformed STL data.
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?
It is a single short sentence, so there is no padding, but this is under-specification rather than conciseness. The one clause present does not earn its place because it conveys no information beyond the tool name.
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 three-parameter, zero-annotation, no-output-schema import tool, the description is completely inadequate. An agent cannot determine input mode, encoding expectations, target document, or error behavior from this text.
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 description adds no parameter meaning whatsoever. The critical relationship between 'path', 'content', and 'encoding' (presumably alternative input modes, with base64 for binary STL) is left entirely unexplained, and none of the three parameters is marked required despite being an either/or input.
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 verb and a resource (import + STL), which distinguishes it from format siblings like import_step and import_obj. However, 'content' is vague: it does not clarify whether the tool reads from a file path or ingests raw STL text, which is exactly the ambiguity the three parameters raise.
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 use this tool versus import_step, import_iges, import_obj, or import_dxf, and no prerequisites or context. The agent must infer everything from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_svgD
Import SVG content.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| content | No | ||
| encoding | No |
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. 'Import SVG content' discloses nothing about whether the operation mutates the document, how path and content interact, whether one is required, how conflicts are handled, or what happens on failure.
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 single sentence is front-loaded and free of filler, but it is under-specified rather than genuinely concise. Brevity here reflects missing information rather than efficient communication.
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 three-parameter import tool with an enum field, no output schema, and no annotations, the description is completely inadequate. An agent cannot infer required inputs, encoding behavior, or side effects from this definition.
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 all three parameters (path, content, encoding), and the description adds no meaning. It does not explain the mutual relationship between path and content or what the utf8/base64 enum implies for the input.
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 the verb and resource ('Import SVG content'), so an agent can tell it imports SVG data. However, it adds no scope, format, or behavioral detail beyond the tool name, and does not distinguish itself from sibling importers beyond the obvious file-type difference.
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 use this importer versus alternatives like import_dxf, import_dwg, or batch_generate_svg. The usage is only implicitly inferable from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_blockC
Insert a block definition by cloning its member entities.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| position | Yes | ||
| rotation | No | ||
| block_name | 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 says the operation clones member entities, implying mutation, but does not disclose prerequisites (e.g., whether the block definition must already exist), side effects, error conditions, or the resulting object's state. This is a significant gap 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?
It is a single, front-loaded sentence with no wasted words. However, for a tool with a nested object and four parameters, this brevity borders on under-specification rather than effective conciseness.
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 tool's mutation behavior, nested input schema, lack of annotations, and no output schema, the description is insufficiently detailed. It does not explain what happens after insertion, what is returned, or how the required parameters affect the operation, leaving major gaps for an agent 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 description coverage is 0% with four parameters, including a nested position object. The description mentions only 'block definition' (loosely mapping to block_name) and provides no meaning for position, scale, or rotation. It fails to compensate for the schema's lack of documentation.
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 ('Insert') and resource ('block definition'), and the mechanism 'by cloning its member entities' clarifies the operation. It is distinguishable from 'create_block' and 'explode_block' through the verb, but it does not explicitly name an alternative sibling to reinforce 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?
There is no guidance on when to use this tool versus alternatives like create_block, edit_block, or explode_block. The description only states what it does, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blocksC
List block definitions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it discloses almost nothing. It does not say what scope of blocks is returned, whether the result is paginated, or what identifying fields each entry contains, though as a read-only listing the safety stakes are low.
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 short sentence with no filler and the verb leading the phrase. It is efficient, though the brevity is also the source of the tool's under-specification.
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?
There is no output schema and no annotations, so the description is the only source of information about what the tool returns, and it omits scope, return contents, and relationship to block-management siblings. For a listing tool in a large CAD toolset, this leaves the agent guessing about the response.
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 has 100% schema description coverage, so there is nothing for the description to clarify about inputs. Baseline 4 applies for a parameterless tool.
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 pairs a specific verb ("List") with a resource ("block definitions"), which is clearer than a tautology. However, it gives no scope qualifier (project-wide, document-wide, or current drawing) and does nothing to distinguish it from the many other list_* siblings such as list_layers, list_entities, or list_parameters.
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 at all — no statement of when to call list_blocks versus create_block, insert_block, edit_block, or explode_block, and no prerequisites. The agent must infer the context entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_entitiesC
List entities. Optional filter: { kind or type?, layer?, ids? } — kind/type is an EntityType string or array (point, line, circle, arc, rectangle, polygon, polyline).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | 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, yet it only hints at read-only behavior by using the word "List." It says nothing about default behavior when filter is omitted (all entities?), return format, result ordering, or pagination for a tool that could return an entire drawing's contents.
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 that front-load the purpose and then the filter shape; no filler. The parenthetical enum list is dense but earns its place since the schema documents nothing.
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 1-parameter query tool with no output schema and no annotations, the description covers the filter adequately but omits return behavior, default scope, and any hint of result size. Given the complexity of the nested filter and the zero schema documentation, a bit more is needed for an agent to call this confidently.
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 filter is an opaque object with additionalProperties:{}, so the description must compensate — and it largely does, naming the three filter keys (kind/type, layer, ids) and enumerating valid EntityType values. It loses a point for the unresolved "kind or type?" ambiguity, leaving the agent unsure which key name is accepted.
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?
"List entities" states a clear verb+resource, but gives no scope qualifier (all entities? current document? active layer?) even though siblings like list_entities_by_domain_kind, find_entities_by_layer, and find_entities_in_region make scope the key differentiator. An agent cannot tell from the description alone why it should pick this over those filtered alternatives.
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 description mentions an optional filter but never says when to use this tool versus the several sibling query tools (find_entities_by_layer, find_entities_in_region, find_entities_by_property, list_entities_by_domain_kind). No prerequisites, no exclusions, no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_entities_by_domain_kindB
List entities tagged with a domain kind such as sampling_point, monitoring_well, or profile_line.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full behavioral disclosure burden. It does not state return shape, pagination behavior, whether 'kind' must be an exact match, or any permission/performance characteristics; only the bare listing action is described.
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 wasted words. The filter scope and examples are delivered efficiently.
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 filtered-list tool with no output schema, the description gives enough to attempt a call but leaves gaps around valid kind values and return structure. Without annotations or schema descriptions, it should say more about what the agent can expect.
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 'kind' parameter lacks an enum or description in the schema. The description partially compensates by giving three example kind values (sampling_point, monitoring_well, profile_line), but it does not clarify whether these are the only valid values or how matching works.
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 ('List'), resource ('entities'), and filter scope ('tagged with a domain kind'), with concrete examples like sampling_point and monitoring_well. It distinguishes itself from the generic list_entities sibling by the domain-kind filter, though it does not explicitly name the sibling for contrast.
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 is given about when to use this tool versus list_entities, find_entities_by_property, or find_entities_by_layer. The description implies a filtered listing but provides no exclusions, prerequisites, or alternative tool routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_known_crsA
List CRS codes currently registered with proj4 in this session (pre-registered defaults plus any added via register_crs_definition).
| 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 two useful traits: the result is session-scoped and includes both pre-registered defaults and user-added definitions. However, it says nothing about how results are ordered or what each entry contains, and a listing tool's read-only safety profile is only inferred.
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 with zero filler, front-loaded with the verb and resource, then the scope qualifier. 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 parameterless listing tool with no annotations and no output schema, the description covers what an agent needs to decide to call it. The only gap is the shape of the returned entries, which is minor here.
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 schema has zero parameters, so there is no parameter semantics to document and the baseline of 4 applies. The description correctly implies a no-argument call, adding nothing that is contradicted or missing.
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 ('List CRS codes') and pins the exact scope ('currently registered with proj4 in this session'). It also names the counterpart operation, register_crs_definition, so an agent can distinguish listing from registration 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?
Usage is implied rather than stated: the description makes clear this is the read side of the CRS registry, but it never says when to call it versus siblings like get_project_crs or register_crs_definition. No exclusions or preconditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_layersB
List all layers (name, color, visible, locked).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It usefully enumerates the returned fields (name, color, visible, locked), compensating somewhat for the absent output schema, but says nothing about scope (all drawings? current document?), ordering, pagination, or permissions. Adding the return fields is real value, yet the disclosure stops well short of full behavioral coverage.
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 token (verb, resource, returned fields) 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 zero-parameter read tool with no output schema, the description partially fills the gap by naming the returned fields. It remains incomplete on scope and, more importantly, leaves the agent unable to distinguish this tool from the several near-identical layer-listing siblings.
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. The schema is empty and there is no syntax or filter argument to explain, leaving nothing for the description to clarify 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?
States a specific verb (list) and resource (layers) plus the fields returned (name, color, visible, locked), so the operation is immediately understandable. However, it offers no differentiation from heavily overlapping siblings such as get_layer_list, autocad_list_layers, and list_raster_layers, which an agent would need to choose between.
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 versus get_layer_list, autocad_list_layers, or list_raster_layers, and no stated preconditions or context of use. The agent is left to infer selection 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.
list_parametersC
List all named parameters.
| 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 full burden. It states only 'List all named parameters' with no disclosure of ordering, scope, pagination, or whether the result is model-wide. Nothing behavioral is added beyond the name.
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 short sentence that is front-loaded and contains no filler. It is appropriately sized, though it is too sparse to 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 no-param, no-annotation, no-output-schema tool in a family with get/set/update_parameter siblings, the definition is too thin. It should at least say whether it lists model or user parameters and how it differs from the singular getter, since annotations and output schema provide no compensating context.
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. There is nothing for the description to clarify beyond the absence of inputs, and it does not mislead about parameters.
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 (named parameters). It is distinguishable from siblings like get_parameter, set_parameter, and update_parameter, though it lacks a noun-precision detail about parameter type. Still clear enough for an agent to pick this over the singular accessors.
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 description gives no when-to-use context, no exclusions, and names no alternatives such as get_parameter. The sibling set includes get_parameter, set_parameter, and update_parameter, so explicit differentiation would be valuable but is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_raster_layersB
List all raster (basemap) layers attached to the session.
| 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. 'List' reasonably implies a non-destructive read, and 'attached to the session' scopes it, but nothing is said about ordering, pagination, or what a returned layer entry contains.
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 no filler; the resource and scope are front-loaded. 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?
For a trivial zero-param lister this is close to adequate, but with no output schema the description is the only place return content could be characterized, and it says nothing about the shape of the results.
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 parameters whose meaning the description would need to clarify.
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 (raster/basemap layers) with scope (attached to the session). It is distinguishable from the singular get_raster_layer, though it never explicitly contrasts itself with sibling listers like list_layers.
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 mention of alternatives (get_raster_layer, list_layers), and no prerequisites. The agent must infer that this is the enumeration counterpart to the attach/get/remove raster siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_projectB
Load a project JSON file from disk and replace the current scene (undo/redo cleared).
| 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, and it does disclose the critical destructive trait: it replaces the current scene and clears undo/redo. That is genuinely valuable data-loss context, but it omits other behavior such as auth/permission needs and what happens if the file is missing or malformed.
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 well-formed sentence that front-loads the action and appends the destructive side effect. No filler or redundancy.
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 tool with no output schema, the description covers the core action and the key side effect, which is reasonably complete. It still leaves the relationship to open_project and error-handling behavior unspecified.
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 'path' parameter has no description. The phrase 'from disk' and 'JSON file' hints that path is a filesystem location to a JSON file, adding marginal meaning, but no format, extension, or relative/absolute conventions are 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 states a specific verb (Load) and resource (project JSON file from disk), which is enough to distinguish it from creation tools. However, it does not clarify how it differs from the sibling open_project, which sounds semantically near-identical.
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 and no alternatives are referenced. The presence of both open_project and new_project among siblings makes the choice non-obvious, and the description leaves that ambiguity unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loftC
Create a simplified lofted solid from one or more profiles.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| guides | No | ||
| radius | No | ||
| path_id | No | ||
| distance | No | ||
| edge_ids | No | ||
| face_ids | No | ||
| profiles | No | ||
| solid_id | No | ||
| direction | No | ||
| thickness | No | ||
| open_faces | No | ||
| profile_id | 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 burden of behavioral disclosure for a mutation operation. It does not explain what 'simplified' means, whether profiles are required despite zero required parameters, what permissions or state are needed, or what happens to existing geometry. This is a significant gap for a 13-parameter solid creation 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 a single front-loaded sentence with no wasted words, which is structurally clean. However, it is severely under-specified for a 13-parameter operation, so its brevity reflects a lack of necessary detail rather than optimal conciseness.
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 13 parameters, zero required fields, no annotations, and no output schema, the description is far too sparse to guide correct invocation. It omits parameter roles, required conditions, usage context, and behavioral expectations, leaving critical ambiguity for an agent.
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 all 13 parameters. The description only references 'one or more profiles,' adding no semantic meaning for the other 12 parameters such as angle, guides, radius, path_id, distance, edge_ids, face_ids, solid_id, direction, thickness, open_faces, or profile_id. It fails to compensate for the complete lack of schema documentation.
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: creating a lofted solid from profiles. It is distinguishable from related modeling tools like sweep or create_revolution by the term 'lofted solid.' However, it does not explicitly contrast itself with those sibling tools, leaving some inference to the agent.
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 use this tool versus alternatives such as sweep, create_revolution, or create_prism. Prerequisites, required profile conditions, and any constraints are absent, leaving the agent to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mate_angleC
Create a angle mate between two references.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | ||
| b | No | ||
| angle | No | ||
| axis_a | No | ||
| axis_b | No | ||
| face_a | No | ||
| face_b | No | ||
| assembly_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full disclosure burden. 'Create' implies a mutation, but it says nothing about permissions required, whether the mate is persistent, what happens if references are invalid, or any side effects. This is a significant gap for a state-changing assembly 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 a single short sentence with no wasted words, but it is drastically under-specified for an 8-parameter assembly mate tool. Conciseness here comes at the cost of necessary detail, making it poorly structured for an agent’s 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?
Given the complexity of an angle mate operation, 8 parameters, no annotations, and no output schema, the description is far from complete. It omits required parameter details, behavioral implications, and any distinction from related mate tools, leaving an agent unable 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?
The schema has 8 parameters with 0% description coverage, and the description does not mention a single one. It vaguely refers to 'two references' but never clarifies which parameters (a, b, face_a, face_b, axis_a, axis_b, angle, assembly_id) correspond to the references or how to specify the angle. The description fails entirely to compensate for the undocumented 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 clear verb ('Create') and resource ('angle mate'), which is enough to understand the basic operation. However, it does not differentiate this mate type from siblings like mate_coincident, mate_concentric, mate_distance, or mate_parallel, so an agent cannot easily tell when to prefer this tool over those.
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 use an angle mate versus other mate types, nor any prerequisites or exclusions. The only implied usage is that it creates an angle mate, which is tautological and offers no selection help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mate_coincidentC
Create a coincident mate between two references.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | ||
| b | No | ||
| value | No | ||
| axis_a | No | ||
| axis_b | No | ||
| face_a | No | ||
| face_b | No | ||
| assembly_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full behavioral burden but provides almost no disclosure: it does not explain what a coincident mate does, what constitutes a valid reference, whether the operation is destructive or reversible, or what prerequisites (e.g., an open assembly) are required. It only implies a mutation 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 a single, front-loaded sentence with no wasted words, which is efficient. However, given the tool's 8 parameters and complex domain, it is too brief to be considered appropriately sized, so it earns a middle score.
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 0% parameter description coverage make this description drastically incomplete. An agent lacks the information needed to correctly choose between this and sibling mates or to supply the required reference parameters, so it cannot be called complete.
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 8 parameters, and the description does not clarify the meaning of a, b, face_a, face_b, axis_a, axis_b, value, or assembly_id. The phrase 'two references' vaguely maps to a and b, but leaves the remaining six parameters entirely undocumented, failing to compensate for the coverage 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 ('Create') and resource ('coincident mate between two references'), which clearly distinguishes it from mate_concentric, mate_distance, mate_angle, and mate_parallel. However, it does not differentiate from the similarly named add_constraint_coincident (a sketch-level constraint) or explain the reference types, so it falls 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?
No guidance on when to use this assembly mate versus other mate types (e.g., mate_concentric, mate_distance) or the sketch constraint add_constraint_coincident. The description only states what it does, leaving the agent to infer context and prerequisites entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mate_concentricC
Create a concentric mate between two references.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | ||
| b | No | ||
| value | No | ||
| axis_a | No | ||
| axis_b | No | ||
| face_a | No | ||
| face_b | No | ||
| assembly_id | 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. 'Create a concentric mate' implies a mutation, but the description does not disclose whether this modifies an assembly, what permissions are required, what happens to existing mates, or what the result looks like.
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 a single front-loaded sentence with no wasted words. However, its extreme brevity comes at the cost of under-specification for a complex 8-parameter mutation 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 8 parameters, 0% schema description coverage, no annotations, and no output schema, the description is far too thin. It provides only the core action and omits usage, parameter mapping, and behavioral context needed to invoke the tool 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% for 8 parameters, and the description does not explain any of them. 'Between two references' hints at two inputs, but the schema offers multiple reference-like fields (a, b, axis_a, axis_b, face_a, face_b) plus assembly_id, with no mapping or meaning provided.
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: 'Create a concentric mate between two references.' It distinguishes the operation from generic creation siblings, but does not differentiate from the close sibling 'add_constraint_concentric' or explain what a 'reference' is in this context.
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, prerequisites, or alternatives are provided. The description only states what the tool does, leaving the agent to infer when this mate should be used over 'add_constraint_concentric' or other mate types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mate_distanceC
Create a distance mate between two references.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | ||
| b | No | ||
| axis_a | No | ||
| axis_b | No | ||
| face_a | No | ||
| face_b | No | ||
| distance | No | ||
| assembly_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full disclosure burden. It does not say what a distance mate constrains, whether it requires a loaded assembly, whether the operation is reversible/undoable, or how the 'two references' are supplied among the six reference parameters.
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 padding, but its brevity reflects under-specification rather than efficiency given the tool's complexity.
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 an 8-parameter modeling tool with no annotations, no output schema, and 0% schema coverage, the description leaves the agent without the information needed to populate reference parameters or predict behavior.
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 8 parameters, and the description adds no mapping. It never explains the relationship between a/b, axis_a/axis_b, face_a/face_b, what 'distance' means or its units, or why only assembly_id is required.
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 ('Create a distance mate'), so an agent knows the operation type. However, it offers no differentiation from close siblings such as mate_coincident, mate_concentric, mate_angle, and mate_parallel, so it merely restates the name without routing logic.
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 statement of when to use a distance mate versus the other mate types that appear in the sibling list. No prerequisites (e.g., an existing assembly) or alternative-selection criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mate_parallelC
Create a parallel mate between two references.
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | ||
| b | No | ||
| value | No | ||
| axis_a | No | ||
| axis_b | No | ||
| face_a | No | ||
| face_b | No | ||
| assembly_id | 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. It doesn't indicate whether the operation is destructive, whether it modifies the assembly, what happens if references are invalid, or whether it requires an existing assembly.
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 short sentence with no waste, but it is under-specified rather than concise. It front-loads the verb but provides almost no information to justify its brevity.
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 an 8-parameter mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It fails to explain parameters, behavior, or usage context.
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 description provides no parameter information at all. Eight parameters (a, b, value, axis_a, axis_b, face_a, face_b, assembly_id) are completely undocumented, leaving meanings ambiguous.
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 ('Create a parallel mate between two references'), closely mirroring the name. It distinguishes itself from siblings like mate_coincident, mate_concentric, mate_distance, and mate_angle by naming the mate type, though it doesn't spell out what 'parallel' means beyond the term.
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, no mention of prerequisites (e.g., needing valid references), and no routing to the other mate_* siblings. An agent must infer the appropriate scenario on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_angleC
Measure angle between two lines.
| Name | Required | Description | Default |
|---|---|---|---|
| line_a | Yes | ||
| line_b | 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 doesn't state whether the tool requires valid geometric lines, whether it operates on coordinates or entity references, or what units the angle is returned in. Only the core action is disclosed.
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 a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple two-parameter 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?
For a measurement tool with no annotations, no output schema, and zero parameter documentation, the description is too sparse. An agent needs to know the expected input format and return behavior to use 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%, and the description provides no information about what 'line_a' and 'line_b' should contain (e.g., entity IDs, coordinate pairs, or line references). This leaves both required parameters semantically opaque.
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?
Clear verb ('Measure') and resource ('angle between two lines'), so the purpose is unambiguous. It is distinguishable from the many 'measure_*' siblings by naming 'angle', though the type of lines (geometric entities vs. vector coordinates) is not specified.
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 this tool should be used versus alternatives like add_angular_dimension or measure_distance. The agent is left to infer the context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_areaC
Measure planar area from an entity.
| Name | Required | Description | Default |
|---|---|---|---|
| points | No | ||
| entity_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full behavioral disclosure. It implies a read-only measurement operation, but does not state supported entity types, units, coordinate assumptions, output format, or any permission/behavior details beyond the basic purpose.
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 a single front-loaded sentence with no filler. It is concise, though arguably too terse for a tool with two undocumented input 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?
Given no annotations, no output schema, and 0% schema description coverage, the description is not complete enough. It omits parameter relationships, expected return values, supported entity types, and usage context needed to invoke the tool confidently.
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 two parameters. The description mentions 'from an entity,' which loosely maps to entity_id, but it does not explain the points array, whether the two inputs are alternatives, or what input shapes are required.
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 ('Measure') and resource ('planar area') and names the input source ('from an entity'). It distinguishes the tool from volume, surface-area, perimeter, and angle measurement siblings, though it does not differentiate it from polygon-area or section-area 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?
There is no guidance on when to use this tool versus alternatives such as measure_polygon_area_stats or compute_section_area. The phrase 'from an entity' implies a supported input context, but no explicit when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_bounding_boxC
Measure the combined bounding box of entities.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_ids | 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 does not disclose what 'measure' returns (extents, dimensions, coordinates), what units are used, whether it handles 2D/3D, or whether the operation is read-only; only the bare action is stated.
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 efficient sentence that front-loads the verb and resource with no filler. It is well-structured but too thin to 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?
With no annotations, no output schema, and 0% parameter coverage, the description is too sparse for a measurement tool. It omits the return format, units, dimensionality, and its distinction from get_bounding_box, all of which an agent needs 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% and there is one required parameter (entity_ids). The word 'entities' loosely implies the array of entity IDs, but the description adds no details on valid ID forms, minimum count semantics, or behavior for mixed entity types.
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 (measure) and resource (bounding box) with a scope qualifier (combined, of entities), which is clear. However, it never contrasts with the sibling get_bounding_box, so an agent must guess whether this is the multi-entity variant or something else.
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, no prerequisites, and no mention of the closely related get_bounding_box sibling in the tool list. The agent gets no routing help for choosing between the two bounding-box tools or the measure_* family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_centroidC
Measure solid centroid.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | ||
| solid_id | 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 implies a read-only measurement via the verb 'measure', but does not disclose return format, side effects, permissions, or whether the operation is computationally expensive.
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 a single terse sentence with no wasted words, but it is under-specified for a tool with two parameters. It is front-loaded but too short to provide necessary context, making it more of a stub than a useful definition.
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 absence of annotations, output schema, and schema parameter descriptions, the description is inadequate. It does not explain parameters, return values, or behavioral traits, leaving the agent unable to call the tool correctly without guessing.
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 description adds no parameter information. The required solid_id and optional axis array are completely undocumented; an agent must guess how to specify the solid and what the axis array represents (e.g., direction vector or measurement axis).
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 'measure' and resource 'solid centroid', so the basic operation is clear. However, it does not distinguish this tool from sibling measurement tools (e.g., get_mass_properties, measure_volume) that might also report centroid, leaving ambiguity about when to choose this one.
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 when-to-use guidance, prerequisites, or alternatives. An agent cannot tell from the description whether this requires a selected solid, a loaded document, or specific preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_distanceC
Measure distance between two points.
| Name | Required | Description | Default |
|---|---|---|---|
| point_a | Yes | ||
| point_b | Yes |
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 burden. It states the operation but omits critical behavioral details: units, coordinate system (2D vs 3D, handling of optional z), output format, and whether the distance is Euclidean. It is minimal.
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 waste. However, it is perhaps overly terse for a tool with nuanced behavior, but it is structurally efficient.
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 nested object parameters, no annotations, and no output schema, the description is far from complete. It omits essential details such as what a 'point' entails (coordinates, optional z), how distance is computed, and what the result represents. An agent would need to infer much.
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 should compensate. It merely says 'between two points', which implies two point parameters but does not explain the coordinate structure (x, y, required; z optional) or the format of the points. It adds little beyond the schema's own property names.
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 ('Measure') and resource ('distance') and scopes it to 'two points'. It distinguishes from some siblings by specifying points, but does not differentiate from related tools like measure_minimum_distance. Clear enough for an agent to know what it does.
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 tool versus alternatives such as measure_minimum_distance or other measurement tools. The description provides no context, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_minimum_distanceB
Approximate minimum distance between two solids via bounding boxes.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_a | Yes | ||
| solid_b | 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 that the result is approximate and derived from bounding boxes, warning the agent about precision limits, but it omits read-only status, return units/format, and behavior for overlapping or invalid solids.
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 wasted words; the purpose is stated first and the approximation method follows 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?
With no annotations, no output schema, and 0% parameter description coverage, the description should do more. It covers purpose and method but leaves the parameter format, return value, and units unspecified, so an agent cannot reliably invoke it without guessing.
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 two string parameters solid_a and solid_b have no schema descriptions. The description only implies the inputs are the two solids, adding no expected identifier format, constraints, or meaning beyond that.
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 the specific verb 'measure' and resource 'minimum distance between two solids', and adds the method 'via bounding boxes'. It does not explicitly differentiate itself from the sibling measure_distance or check_clearance, so it falls 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?
No when-to-use, when-not, or alternative is mentioned. The word 'approximate' hints at a trade-off, but the description does not route the agent between this tool and measure_distance or check_clearance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_moment_of_inertiaC
Measure simplified moment of inertia from bbox.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | ||
| solid_id | 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 does disclose one useful trait—that the result is 'simplified' and derived from a bounding box—but says nothing about permissions, units, reversibility, or expected output.
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 a single front-loaded sentence with no wasted words. It is concise, though the term 'simplified' is vague and the overall brevity leaves critical details unstated.
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 0% schema description coverage, the description is too sparse for the tool's context. It omits parameter meaning, output behavior, and the conditions under which the bounding-box approximation is valid.
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 two parameters, and the description does not mention either 'solid_id' or 'axis.' It gives no added meaning about what the solid identifier represents, how the axis vector is used, or what units apply.
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: 'Measure simplified moment of inertia.' It also adds 'from bbox,' which distinguishes it from a more exact mass-properties tool like get_mass_properties. It does not name or contrast with any sibling, so it falls 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?
There is no explicit when-to-use guidance, no conditions for choosing this tool over alternatives such as get_mass_properties, and no exclusions. The phrase 'from bbox' hints at a simplified approximation but does not tell an agent when that approximation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_perimeterC
Measure perimeter or curve length for an entity.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral context. It only implies a read/measure operation and does not mention units, whether it handles open or closed entities, permissions, error behavior, or the 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?
The description is a single efficient sentence with no filler and is front-loaded. Its brevity is appropriate structurally, though the content is under-specified.
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 measurement tool with no annotations and no output schema, the description should clarify units, return values, and distinction from overlapping siblings. It does not, leaving important context 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% for the single required entity_id parameter. The description only says 'for an entity', which adds no meaningful syntax, format, or constraint information beyond the parameter name itself.
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 gives a clear verb and resource: measure perimeter or curve length for an entity. It is specific enough to know what the tool does, but it does not differentiate from siblings such as get_curve_length or measure_profile_length.
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 use this tool versus alternatives, no prerequisites, and no exclusions. The agent is left to infer that this is for entity-based perimeter or curve-length measurement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_polygon_area_statsC
Summarize polygonal area by entity, optionally grouped by a property field for study zones.
| Name | Required | Description | Default |
|---|---|---|---|
| group_by | No | ||
| entity_ids | 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, but it discloses almost nothing beyond the operation itself. It does not state that the tool is read-only, does not describe the return format or aggregation behavior, and does not mention any permissions or constraints.
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 a single, front-loaded sentence with no wasted words. It efficiently conveys the core operation and the optional grouping behavior.
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?
There is no output schema and no annotations, so the description should explain return values and behavioral details. It does not describe what statistics are returned (e.g., sum, count, mean), how grouping affects output, or any error conditions, leaving significant gaps for an agent invoking the tool.
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 maps both parameters: 'by entity' corresponds to entity_ids, and 'optionally grouped by a property field' corresponds to group_by. However, it gives no format details, allowed property values, or clarification that entity_ids must reference polygonal entities.
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 ('Summarize'), resource ('polygonal area'), and scope ('by entity') with an optional grouping mode. It distinguishes itself from simple measurement siblings like measure_area by implying aggregation, but it does not explicitly name or contrast with those alternatives.
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 description offers no when-to-use guidance, no exclusions, and no mention of alternative tools such as measure_area, measure_surface_area, or compute_section_area. 'For study zones' hints at a context but does not help an agent choose between this tool and its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_profile_lengthC
Measure the length of a profile line or transect.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_line_id | 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 of behavioral disclosure. It does not state whether the operation is read-only, whether it requires an existing profile line, what units are returned, or any other behavioral trait beyond the basic measurement purpose.
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 a single front-loaded sentence with no filler or redundant clauses. It is appropriately sized for a simple one-parameter measurement 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?
For a one-parameter measurement tool with no annotations and no output schema, the description is too incomplete. It does not clarify the return value, units, or how the profile_line_id is obtained, leaving important context for the agent to infer.
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?
With one parameter and 0% schema description coverage, the description should compensate by explaining the expected profile_line_id format or source. It only repeats the concept of a profile line/transect and adds no syntax, format, or constraint details beyond what the parameter name already implies.
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 clearly states a specific verb and resource: measuring the length of a profile line or transect. It distinguishes this from generic length or distance measurement by naming profile lines/transects, but it does not explicitly differentiate itself from sibling tools like measure_distance or get_curve_length.
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 description says what the tool does but gives no when-to-use guidance, no conditions for selecting it over alternatives, and no exclusions. An agent must infer that it should be used for profile lines rather than other measurement tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_surface_areaC
Measure solid surface area.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | ||
| solid_id | 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 does not meet it. It does not state that this is a non-destructive read, what units the result is in, whether it requires a pre-existing solid, or how the 'axis' input affects the measurement.
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 short sentence, front-loaded and free of waste, so it is structurally fine. Its brevity is achieved through under-specification rather than efficient communication.
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, no annotations, and zero parameter documentation, the description does not supply enough for an agent to invoke this tool confidently. At minimum it should clarify what solid_id refers to and what the axis argument does.
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 two parameters, and the description explains neither. The required solid_id is only hinted at by the word 'solid', and the optional 'axis' number array is completely unexplained, so the agent cannot know what values to supply.
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?
It states a verb (measure) and a resource (solid surface area), so the general intent is recoverable. But it does not distinguish itself from close siblings like measure_area, measure_polygon_area_stats, or measure_volume, leaving the agent to guess which measurement tool applies to a given entity.
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 routing information at all. With several near-identical measurement siblings in the list, the absence of any selection guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
measure_volumeC
Measure solid volume.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | ||
| solid_id | 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 delivers almost nothing: 'Measure' weakly implies a non-destructive read, but units, precision, behavior on open/non-solid geometry, and failure modes are all undisclosed. For a measurement tool operating on a referenced entity, 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?
A single front-loaded sentence with no filler, which is structurally ideal. It is arguably under-specified rather than wasteful, but conciseness itself is not the problem.
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 measurement tool with no annotations, no output schema, 0% parameter coverage, and unspecified units leaves an agent unable to predict what it gets back or how to interpret 'axis'. The safety profile is benign, but the operational detail 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%, so the description must compensate and does not. It never names solid_id (only inferable from 'solid') and gives no meaning at all for the 'axis' array parameter, which is the least self-explanatory field an agent has to populate.
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 ('Measure') and resource ('solid volume'), so the operation is unambiguous. However it does nothing to separate itself from siblings like compute_cut_fill_volume, compute_grid_surface_volume, measure_surface_area, or get_mass_properties, which an agent must disambiguate by 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 guidance, no prerequisites (e.g. the solid must be closed), and no mention of alternatives such as get_mass_properties, which also returns volumetric information. The agent is left to infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirror_2dC
Create mirrored copies of one or more entities across an axis line.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| axis_end | Yes | ||
| axis_start | Yes | ||
| entity_ids | 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 does not disclose whether original entities are preserved, whether mirrored copies are new entities, how the axis line is interpreted (finite segment vs infinite line), or any unit/permission behavior, leaving key operational traits unstated.
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, directly stating the action. Every word earns its place, making it maximally concise even if incomplete elsewhere.
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, four parameters including a nested object, and 0% schema description coverage, the description is far too sparse. It omits whether source entities remain, 2D coordinate handling, unit behavior, and result shape, leaving the agent without enough context to invoke the tool confidently.
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 explain parameters. It only loosely maps 'one or more entities' to entity_ids and 'axis line' to axis_start/axis_end, while unit, coordinate space, and required formats are left undocumented in both description and 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 ('create mirrored copies') and resource ('entities') across an 'axis line', so the core operation is clear. However, it does not differentiate from sibling tools like offset or array_rectangular that also create transformed copies, and no alternative is named.
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, when-not-to-use, or alternative tools are provided. Usage is only implied by the operation description; an agent gets no guidance on choosing mirror_2d over offset, array, or copy-like tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_projectA
Start a new empty CAD project (default layer 0, no entities). Optional project name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | 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. It discloses the initial state (empty, default layer 0, no entities), which is useful, but omits critical side-effect information: whether it replaces the currently active project, whether unsaved work is discarded, or what happens if a project name already exists.
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 tightly written sentence that front-loads the action and initial state, with the optional parameter noted at the end. 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 simple project-creation tool with no output schema and no annotations, the description covers the basic purpose and initial state. However, it leaves important behavioral questions unanswered (e.g., whether it discards current work, switches the active project, or returns a handle), which an agent would need to invoke it confidently.
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 the single parameter. It does identify the parameter as an 'optional project name,' which is helpful, but provides no further constraints, format expectations, or examples.
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 gives a specific verb and resource ('Start a new empty CAD project') and immediately defines the initial state ('default layer 0, no entities'). It clearly distinguishes this from siblings like open_project or load_project, which deal with existing projects.
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 'Start a new empty CAD project' implies the usage context (beginning from scratch), but it never explicitly states when to use this tool versus open_project, load_project, or save_project. The guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
offsetB
Create an offset copy of a supported 2D entity. Use left/right for open curves and inside/outside or inward/outward for closed curves.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| unit | No | ||
| distance | Yes | ||
| entity_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations at all, so the description carries the full behavioral burden. It says a copy is created but does not disclose whether the source is modified, what layer/type the new entity inherits, whether the operation is undoable, or what the result looks like. For a mutation-style geometry tool with zero annotation coverage this is a significant 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 sentences, no filler, and the core action is front-loaded ahead of the side-value qualifier. Efficient for the information it contains.
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 should describe return behavior, constraints (e.g., that distance must be positive), and unit defaults. It covers only which side tokens apply to which curve shape, leaving the behavioral and parameter surface largely undocumented.
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 explains the semantics of `side` values by curve type, which is genuine added value beyond the bare enum. But `distance` (must be >0) and `unit` (default behavior when omitted) receive no explanation at all.
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 ('Create an offset copy of a supported 2D entity'), which clearly distinguishes it from geometric creation siblings like mirror_2d or the create_* primitives. The 'supported 2D entity' hedge adds slight ambiguity about what is actually supported.
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 second sentence gives conditional guidance mapping side values to curve types (open vs closed). However, it does not name or rule out related alternatives such as mirror_2d, array_rectangular, or create_polyline, so there is no explicit when-not or sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_projectA
Alias for load_project: load a project JSON file from disk and replace the current scene.
| 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, and it does disclose the key behavioural trait that the current scene is replaced (i.e. unsaved work is lost). It says nothing about error behaviour for missing/invalid files, permissions, or whether the operation is undoable, so coverage 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?
A single sentence that front-loads the alias relationship and the primary effect. Every clause earns its place with no 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 tool with no output schema and no annotations, the description covers the essential facts: what it loads, from where, and that it is destructive to the current scene. It could add a note about failure modes or the equivalent load_project, but 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?
One parameter ('path') with 0% schema description coverage, so the description must compensate. It does so partially by clarifying the file is a project JSON file on disk, which implies the expected path format, but it does not state whether an absolute path, relative path, or extension is required.
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 ('load a project JSON file from disk') and identifies itself as an alias of load_project, which lets an agent recognise it as duplicative rather than distinct. It does not, however, differentiate itself from new_project or save_project beyond the implied file-based load.
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 'replace the current scene' implies the context in which this tool applies (loading an existing project rather than creating one), but there is no explicit when-to-use instruction and no mention of the load_project sibling or new_project as the alternative for a blank document.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_undo_checkpointA
Record the current scene state on the undo stack (clears redo). Call before a batch of edits you want to revert in one step.
| 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 the key non-obvious consequence: "clears redo." That is exactly the kind of destructive side effect an agent needs. It stops short of describing what the call returns or whether staging edits inside a transaction differs, which keeps it from being complete.
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, zero filler, with the core action front-loaded and the side effect parenthesized immediately where it is relevant. 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 zero-parameter, no-output, no-annotation tool, the description covers purpose, timing, and the redo-clearing side effect, which is enough to call it correctly. It leaves the relationship to the transaction tools (begin/commit/rollback) unstated, a minor gap given how many similar lifecycle tools sit alongside 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?
The tool takes zero parameters, so there is nothing for the description to document; the baseline of 4 applies. No parameter-level information is missing or needed.
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 ("Record the current scene state on the undo stack") and even names the side effect. It is clearly distinguishable from undo/redo in intent, but it never names or contrasts with the closely related transaction tools (begin_transaction/commit_transaction/rollback_transaction), so differentiation relies on the sibling names rather than the description.
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 before a batch of edits you want to revert in one step" gives a concrete when-to-use condition. It offers no when-not guidance and does not mention the alternative (begin_transaction) that an agent might otherwise pick, so routing is clear but not fully resolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redoB
Re-apply the last undone scene 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 carries the full behavioral burden. It implies a mutation and a dependency on prior undo history, but does not state whether it requires an existing undone state, what happens if the redo stack is empty, or any error/return behavior.
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 wasted words, and the core action is front-loaded. It is appropriately sized for the simplicity of the 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?
For a zero-parameter, simple redo operation, the description identifies the action but leaves out usage context and behavioral details such as undo-stack dependency. It is minimally adequate but has 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?
The tool has zero parameters, so parameter semantics are not applicable. The schema is empty and fully covered; no additional parameter meaning is needed.
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 ('Re-apply') and resource ('last undone scene state'), clearly contrasting with the sibling tool 'undo'. It does not explicitly name the alternative, but the phrase 'last undone' makes the relationship clear enough for selection.
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 guidance on when to use this tool versus alternatives such as undo, push_undo_checkpoint, or transaction rollback. The context is implied by the description, but there are no explicit conditions, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_crs_definitionA
Register an EPSG-style CRS definition with proj4 so future reprojection tools can use it. code should be like 'EPSG:4548' and definition is a proj4 string.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| definition | 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 that the registration makes the CRS available to future reprojection tools, indicating a global side effect, and identifies the required proj4 backing. It omits important behavior such as whether re-registering an existing code overwrites or errors, persistence scope, and failure conditions for invalid proj4 strings.
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 with no wasted words. The purpose is front-loaded, followed immediately by the two parameter clarifications, making the description easy to parse at a glance.
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 registration tool with no output schema, the description covers the essential call semantics. However, it omits duplicate-code behavior and what happens on invalid input, which are relevant for correct invocation and error handling.
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 supply parameter meaning, and it does: 'code' is shown by example as 'EPSG:4548', and 'definition' is identified as a proj4 string. This meaningfully compensates for the bare schema, though it does not enumerate accepted code patterns or proj4 syntax validation details.
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+resource: register an EPSG-style CRS definition with proj4. It also clarifies the intended downstream effect ('so future reprojection tools can use it'), which helps distinguish it from reprojection/transform siblings. It does not explicitly name or differentiate against nearby siblings like set_project_crs or list_known_crs.
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 'so future reprojection tools can use it' implies this tool should be used before reprojection workflows that depend on a custom CRS. However, there is no explicit when-to-use, when-not-to-use, or named alternative guidance for choosing between this and set_project_crs, list_known_crs, or transform/reprojection tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_componentC
Remove a component instance from an assembly.
| Name | Required | Description | Default |
|---|---|---|---|
| assembly_id | Yes | ||
| instance_id | 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 but says almost nothing beyond the operation name. It does not disclose whether removal is reversible via undo, what happens to mates/constraints attached to the component, whether ground/fixed components error out, or whether dependent assembly references break.
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 short sentence with the action front-loaded and zero filler. It is efficient, though its brevity here reflects under-specification rather than disciplined trimming.
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 destructive mutation tool with no annotations, no output schema, and two fully undocumented parameters, the description is too thin. It omits error conditions, side effects on constraints/mates, and any confirmation of what is returned or left behind after removal.
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 two required string parameters, so the description must compensate and does not. It only indirectly hints at the two anchors ('assembly', 'instance'); neither assembly_id nor instance_id is explained, and no format, ID source, or lookup guidance is given.
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 ('Remove') and resource ('a component instance from an assembly'), which is unambiguous and easily distinguished from destructive siblings like delete_entity or remove_raster_layer. It does not, however, explicitly contrast itself with the complementary add_component sibling.
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 statement of preconditions (e.g. whether the instance must exist or the assembly must be loaded), and no mention of alternatives such as deleting its parent assembly or ungrouping it first. The agent is left to infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_raster_layerB
Remove a raster layer by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | 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 of behavioral disclosure. It doesn't say whether removal is permanent, whether it affects the underlying file, whether it can be undone, or what happens to a currently attached/visible layer. For a destructive tool with zero annotation coverage this is a significant 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?
A single, front-loaded sentence that communicates the core action with zero waste.
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 too thin. It omits reversibility, side effects, and whether it's a hard delete, leaving the agent under-informed before invoking a destructive 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?
Only one parameter and schema coverage is 0%, but the description does supply the key semantic that 'id' identifies a raster layer. The schema itself gives the type and minimal length but no meaning. Baseline for a single well-understood parameter, with only marginal added value.
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 (remove) and resource (raster layer) plus the identifying key (by id). It is clear and distinct from siblings like attach_raster_layer or delete_layer, though it doesn't explicitly name those alternatives.
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?
Implied usage: you call this when you want a raster layer gone. But no guidance on when to use it versus set_raster_layer_visible (a hide-only alternative) or delete_entity, and no mention of prerequisites or consequences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_layerB
Rename an existing layer. Any entities on the old layer are updated to the new layer name.
| Name | Required | Description | Default |
|---|---|---|---|
| new_name | Yes | ||
| old_name | 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 that entities on the old layer are reassigned to the new name, but omits permissions, error conditions, undo behavior, and what happens if the old layer is missing or the new name conflicts.
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, front-loaded with the action and followed by the key side effect. 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?
Covers the core action and one important side effect for a simple two-parameter mutation. However, with no annotations and no output schema, it should say more about failure modes, constraints, and layer-name rules to be fully complete.
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, but it only implicitly maps 'old layer' and 'new layer name' to old_name and new_name. It provides no constraints, validation rules, or naming conventions.
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 (rename) and resource (layer) and describes the effect on entities. It does not explicitly distinguish this tool from rename_raster_layer or clarify vector vs. raster layers, so it falls 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?
No explicit when-to-use guidance, no alternatives, and no prerequisites are given. The description only implies the tool's usage by naming the action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_raster_layerC
Rename a raster layer for human reference.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| name | 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. It hints the name is 'for human reference' (a display label rather than a functional identifier), but says nothing about whether anything depends on the name, whether the change is persisted, or what errors occur for an unknown id.
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 short sentence with the verb and resource front-loaded and no wasted words. Efficient, though the brevity comes at the cost of the missing detail noted elsewhere.
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 mutation tool with no annotations, no output schema, and 0% parameter coverage needs the description to explain inputs and effects. It does neither, so an agent lacks what it needs to invoke this correctly beyond guessing.
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 and does not. It never explains that 'id' identifies the target raster layer or that 'name' is the new label to assign, leaving the agent to infer both from the tool name alone.
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 (Rename) and resource (raster layer), which is distinguishable from most siblings. However, it does not differentiate itself from the sibling rename_layer, which an agent could easily confuse with this raster-specific variant.
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 indication of when to use this versus rename_layer, nor any prerequisites such as attaching a raster layer first or having a valid layer id from list_raster_layers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_previewC
Render current scene or selected entities to a base64 image payload.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | ||
| width | No | ||
| height | No | ||
| entity_ids | 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, yet it only discloses the return encoding (base64 image). It says nothing about whether this is a read-only operation, how view/current scene is resolved, performance or image-size implications, or what base64 format (PNG/JPEG) is produced. The output-format note is a small plus against a large 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?
A single front-loaded sentence with no wasted words, stating scope and output form immediately. It is optimally sized for a one-line tool summary.
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 four-parameter render tool with no annotations, no output schema, and 0% schema description coverage, the description is too thin. An agent cannot confidently determine valid view values, sizing behavior, or entity-selection semantics from what is provided.
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 none of the four parameters (view, width, height, entity_ids) are explained. The phrase 'current scene or selected entities' loosely hints that entity_ids selects entities while its absence renders the scene, but view, width, and height carry no meaning from the description or 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 (Render), the input scope (current scene or selected entities), and the output form (base64 image payload). This implicitly distinguishes it from the sibling render_preview_svg, which presumably returns vector SVG rather than a raster image. It is clear but never explicitly names the alternative to sharpen the contrast.
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 description gives no when-to-use or when-not-to-use guidance and never references render_preview_svg or other render/export siblings. An agent must infer from the name alone that this is the raster preview path versus the SVG path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_preview_svgC
Wireframe SVG preview of entities (mm). Optional entity_ids limits which shapes are drawn.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_ids | No |
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 burden. It states the output is a wireframe SVG in millimeters but omits whether the tool returns SVG content, writes a file, or what permissions are needed. For a rendering tool with no structured safety or behavior hints, this is a significant 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 sentences, front-loaded with the core purpose and then the only parameter's effect. Every sentence earns its place with no redundancy 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?
The tool is simple (one optional parameter), but the absence of an output schema and any description of return values, side effects, or file output leaves the agent without essential information to invoke it confidently. The description is too thin for a rendering tool with no structured behavioral metadata.
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 parameter. The description compensates partially by explaining that entity_ids is optional and limits which shapes are drawn, adding meaning beyond the bare array type. However, it does not clarify the expected ID format or the default behavior when omitted.
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 ('render'), output format ('SVG'), visual style ('wireframe'), and subject ('entities') with units ('mm'). It does not distinguish this tool from sibling tools like render_preview or generate_svg, leaving ambiguity about when to choose it over those alternatives.
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 only usage guidance is that entity_ids is optional and limits which shapes are drawn. There is no indication of when to use this tool versus render_preview, generate_svg, or batch_generate_svg, nor any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_raster_layer_pngA
Decode an attached raster layer (or a GeoTIFF on disk) into a PNG preview. Single-band rasters are auto-stretched to grayscale; multi-band rasters use the first three bands. Returns base64 PNG bytes; pass output_path to also write to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| path | No | ||
| max_width | No | ||
| max_height | No | ||
| output_path | No |
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 reasonably well: it discloses band handling (single-band auto-stretched to grayscale, multi-band uses first three), the return type (base64 PNG bytes), and the side effect of output_path writing to disk. It stops short of stating permission requirements or that one of id/path must be supplied.
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?
Three tight sentences with the core purpose front-loaded, band behavior next, and output/return semantics last. No filler or redundancy.
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 five-parameter tool with no annotations and no output schema, the description covers the return format and rendering behavior but leaves the sizing parameters and the id-versus-path input requirement unstated. Adequate but with clear gaps given the 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% for five parameters. The description covers output_path and hints at id/path via 'attached raster layer (or a GeoTIFF on disk)', but max_width and max_height are never explained, and it does not clarify that id and path are mutually exclusive inputs. It compensates only partially for the coverage 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?
States a specific verb and resource (decode a raster layer into a PNG preview) and scopes the accepted inputs (attached layer or on-disk GeoTIFF). This clearly separates it from list_raster_layers, attach_raster_layer, and the generic render_preview_svg/render_preview siblings.
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 (produce a preview image from a raster), but there is no explicit when-to-use or when-not-to-use statement and no mention of alternatives such as get_raster_layer or render_preview_svg. The agent must infer routing from the purpose sentence alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reproject_pointA
Reproject a single point between two CRSes using proj4. from/to accept EPSG codes (e.g. 'EPSG:4326', '4326') or full proj4 strings. Common CN CRSes (EPSG:4326/3857/4490/4513-4533) are pre-registered.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| point | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load, and it usefully discloses the accepted input formats and that common CN CRSes are pre-registered. However, it omits behavior on unknown/unregistered CRSes, whether z is preserved, and error or transformation-failure handling. Solid input context but not full behavioral coverage.
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, front-loaded with the core action, then the input-format specifics. No filler; every clause carries useful 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 3-parameter tool with no output schema and no annotations, the description covers the essential input semantics and supported CRSes well. It stops short of describing the returned coordinates or failure modes, which leaves a small gap for a transformation tool.
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 for from/to by documenting EPSG and proj4 string formats with examples and listing pre-registered codes, but the nested point object (x/y/z) is left entirely unexplained.
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 (reproject), resource (a single point), and mechanism (proj4) between two CRSes. The word 'single' implicitly distinguishes it from the sibling reproject_points, and the CRS/format specifics make the operation 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?
Usage is only implied: 'single point' suggests this is the per-point variant versus batch siblings like reproject_points or transform_coords, but the description never explicitly names an alternative or states when to prefer this tool. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reproject_pointsC
Reproject many points between two CRSes in one call. Same from/to semantics as reproject_point.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| points | 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 says nothing about what happens on invalid CRS, whether points are mutated, output ordering, or error handling for a bulk 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?
Two short sentences, front-loaded with the core action. No wasted words, though the brevity contributes to the semantic gaps.
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 zero annotation coverage, no output schema, and 0% schema description coverage, the description is too thin for a 3-parameter bulk geospatial tool. It should explain CRS format, point shape, and return behavior, none of which is present.
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 three required parameters (from, to, points). The description only says 'Same `from`/`to` semantics as reproject_point,' which defers explanation to a sibling rather than explaining CRS format expectations here. It adds little beyond what the schema field names imply.
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: 'Reproject many points between two CRSes in one call.' This clearly distinguishes it from its sibling reproject_point by scope ('many' vs. single point), though the phrasing is terse.
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 description implies bulk use via 'many points ... in one call,' and references reproject_point's semantics, but it never explicitly states when to choose this tool over reproject_point or transform_coords. Guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_transactionA
Discard changes since the matching begin_transaction and restore scene 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 carries the full disclosure burden. It does communicate the core effect (discard changes, restore scene state) and a precondition (a matching begin_transaction must exist). However, it says nothing about error behavior when no such transaction exists, nesting, reversibility, or 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?
A single sentence with no filler, front-loading the action and scope. 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 zero-parameter, annotation-free transactional tool with no output schema, the description covers what it does and the precondition for using it. It would be stronger with a note on failure modes or how it differs from undo/redo, but it is largely 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?
The tool takes zero parameters, so there is no per-parameter meaning to add. Baseline 4 applies: the schema is empty and fully covered, and no parameter documentation is needed.
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 ('discard') and resource ('changes since the matching begin_transaction') plus the resulting effect ('restore scene state'). The pairing with begin_transaction implicitly separates it from commit_transaction and undo, but no sibling is named explicitly, so it falls short of a full 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 mention of a 'matching begin_transaction' implies the context in which it is valid, but there is no explicit when-to-use guidance, no statement of when-not to use it, and no routing to alternatives like undo or commit_transaction. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_projectB
Save the current scene to a project JSON file on disk (cad-mcp-project v1).
| 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 behavioral burden. It usefully discloses the persistence target and format version ('project JSON file on disk', 'cad-mcp-project v1'), but omits whether an existing file is overwritten, permission/auth requirements, and error behavior for an invalid path.
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 the action, target, and format all present and zero filler. Nothing to trim and nothing buried.
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 persistence tool with no annotations and no output schema, the minimal description is close to sufficient – the format disclosure helps. It still leaves overwrite semantics and the meaning of 'current scene' (active document vs. all documents) unstated.
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 lone 'path' parameter has no description, so the description must compensate. 'To a project JSON file on disk' does clarify that path is a filesystem destination rather than an in-project identifier, but adds no format, extension, or absolute/relative-path guidance.
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 ('Save the current scene') and the concrete artifact produced ('project JSON file on disk'), with a format identifier (cad-mcp-project v1). It is clearly distinguishable from load_project/open_project/new_project by the write-direction verb, though it does not explicitly name those siblings.
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, when-not-to-use, or alternative routing is provided. An agent must infer that this is for persisting the current scene rather than loading or creating one; nothing addresses ordering relative to load_project/new_project or whether unsaved changes matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_groupC
Return entities in a group.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It does not disclose whether the operation is read-only, whether the return is a list, or any side effects. 'Return entities' is thin for a query 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 short sentence that front-loads the core operation. It is minimal but not bloated.
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 query tool with no annotations and no output schema, the description is incomplete: it omits return format, ordering, whether an empty group returns an empty list, and how it relates to group creation or ungrouping.
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% with only 1 required parameter. The description names the resource being selected by group_id, giving a semantic hint (it represents a group identifier) and implying that the return is the entities belonging to that group. Baseline 4 for zero params; here one param is nominally covered.
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 verb (Return) and resource (entities in a group), which is somewhat clearer than a tautology, but does not distinguish it from siblings like list_entities or find_entities_by_layer. The scope is vague about whether it is a query or a selector.
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 guidance on when to use this tool versus alternatives such as list_entities or get_entity_properties. The description leaves usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_component_flexibleC
Mark a component as flexible or rigid.
| Name | Required | Description | Default |
|---|---|---|---|
| flexible | Yes | ||
| assembly_id | Yes | ||
| instance_id | 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 of behavioral disclosure. It does not state whether the change is reversible, what happens if the component is part of a rigid assembly, whether it affects mates or constraints, or what permissions are needed. It only restates the mutation without any side-effect or prerequisite information.
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 a single front-loaded sentence with zero wasted words. It is appropriately concise for a simple setter, though its brevity contributes to gaps elsewhere rather than being verbose.
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 three required parameters with no schema descriptions, no annotations, and no output schema, the description is too sparse to be complete. It omits parameter meaning, usage context, and behavioral effects, leaving the agent to infer almost everything from parameter names.
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 all three parameters. It only vaguely maps the boolean 'flexible' to the flexible/rigid states, while 'assembly_id' and 'instance_id' are never explained in the description or schema. An agent can guess their purpose from names, but the description adds little semantic value.
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 clear verb ('Mark') and resource ('a component') with the specific end state ('flexible or rigid'). It distinguishes the tool from unrelated siblings like create_box or measure_distance, though no sibling performs the same action. The meaning of 'flexible' in an assembly context is not expanded, but the core purpose 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?
The description gives no indication of when to use this tool versus alternatives, nor any prerequisites such as requiring an existing assembly or component. It simply states what the tool does, leaving the agent to infer usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_drawing_scaleC
Set a drawing scale factor between local drawing units and world coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | 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. It says 'set' (a mutation) but does not disclose whether the change is persisted, whether it affects existing entities, whether it requires an open drawing, or whether it is reversible.
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. Efficient, though it is arguably too terse given the missing usage and behavioral detail.
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 tool is simple (one required numeric param), so the description is minimally viable, but with no annotations and no output schema, it should say more about the effect and persistence of the change and the state required 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% for the single 'scale' parameter, so the description must compensate. It does clarify the semantic meaning of the value (a ratio between local drawing units and world coordinates), which is genuinely useful, but gives no units convention, expected value range, or 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+resource ('Set a drawing scale factor') with a clear scope qualifier ('between local drawing units and world coordinates'). An agent can identify the operation, though there is no explicit differentiation from related siblings like add_scale_bar or create_viewport.
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, no prerequisites (e.g. must a drawing/document be active), and no alternatives named. The agent has to infer context of use entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_entity_colorC
Set entity color display metadata on one or more entities.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | ||
| entity_ids | 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. 'Display metadata' usefully implies a non-geometric, presentation-only change, but it says nothing about whether existing color is overwritten, permission/auth requirements, whether it affects plotting vs screen display only, or what the response returns. Significant gap 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 with zero padding. Appropriately sized, though its brevity coincides with the informational gaps noted elsewhere rather than being a fault of structure.
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 mutation tool with no annotations, no output schema, and 0% schema coverage, the description is too thin. An agent lacks color format, multi-entity behavior clarification, and any mutation semantics to invoke it confidently.
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 only implies entity_ids accepts multiple entities ('one or more entities') but gives no color format details (name, hex, palette index) for the required 'color' string, leaving the most important input semantics undocumented.
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 ('Set entity color display metadata on one or more entities'), which is clear enough for an agent to understand the operation. However, it does not distinguish itself from close siblings like set_entity_property, set_entity_linetype, or set_layer_color, so no credit for sibling differentiation.
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 description offers no when-to-use guidance, no conditions, and no mention of alternatives such as set_entity_property or set_layer_color. The agent gets no routing help among the many set_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_entity_layerC
Assign entities to a layer by name.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_ids | Yes | ||
| layer_name | 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. It does not state that this is a mutating operation, whether entities are removed from their previous layer, whether the named layer must pre-exist or is auto-created, or what happens on partial failure.
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 short sentence with the action front-loaded and zero filler. It is appropriately sized, though it borders on under-specification rather than true economy.
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 two-parameter mutation with no annotations and no output schema, the description is minimally viable but leaves the key behavioral question (layer existence and entity reassignment side effects) unanswered.
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. 'Entities' maps to entity_ids and 'layer by name' maps to layer_name, covering both parameters conceptually, but it adds no format, ID-shape, or validation detail beyond that loose mapping.
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 (assign) and resource (entities to a layer), making the effect unambiguous. It does not differentiate itself from siblings like set_entity_property or set_entity_color, which also mutate entity attributes, so an agent must rely on the name alone to route correctly.
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 mention of prerequisites (e.g. whether the target layer must already exist, or that create_layer is the sibling for that), and no alternatives. The agent gets no routing help beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_entity_linetypeC
Set entity linetype display metadata on one or more entities.
| Name | Required | Description | Default |
|---|---|---|---|
| linetype | Yes | ||
| entity_ids | 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. It conveys only that the change is display metadata and operates on one or more entities; it omits whether the linetype name must pre-exist, whether the change is reversible/undoable, and what happens on failure.
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 efficient sentence with the operation and target front-loaded and no filler. It is well-sized for the tool, though it is so terse that brevity edges into under-specification.
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 definition is too thin. An agent knows the intent but lacks the parameter constraints and behavioral caveats needed to call it reliably.
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 not. It never explains the expected format of 'linetype' (e.g., a loaded linetype name) or whether 'entity_ids' accepts multiple entity types, leaving both required parameters semantically opaque.
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 ('Set') and resource ('entity linetype'), telling an agent exactly what operation is performed on what object. It does not, however, distinguish itself from the close sibling setters (set_entity_layer, set_entity_color, set_entity_lineweight), which is the main gap.
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 use this tool versus alternatives, no prerequisites (e.g., the linetype must already be defined/loaded in the drawing), and no mention of related setters. The agent must infer context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_entity_lineweightC
Set entity lineweight display metadata on one or more entities.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_ids | Yes | ||
| lineweight | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Display metadata' usefully signals that geometry is unaffected, but it omits everything else an agent needs: whether the change is persistent, whether it requires an undo checkpoint or transaction, what valid lineweight values or units are accepted (e.g. ByLayer/ByBlock sentinels), and what happens on invalid input.
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, which is appropriately sized. It is terse to the point of under-specification, but that is a completeness issue rather than a verbosity problem.
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-required-parameter mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is too thin. An agent cannot determine accepted value ranges, identifier format, persistence/undo behavior, or error handling from either the description or the schema.
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 and does not. It never explains that 'entity_ids' are handles/identifiers of existing entities or that 'lineweight' is a numeric value with an expected range and special-value semantics; the phrase 'one or more' is the only added meaning.
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 ('Set') and resource ('entity lineweight display metadata'), which lets an agent distinguish it from sibling setters like set_entity_color, set_entity_linetype, and set_entity_property. However, it does not name those siblings or explain how this differs from the generic set_entity_property alternative.
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 set_entity_property or set_entity_layer. The only usage hint is 'one or more entities,' which implies batch application but is 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.
set_entity_propertyB
Set a mutable entity field (layer, coords, closed, properties) or a custom property-bag value. Reserved fields id and type cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | ||
| property | Yes | ||
| entity_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral load. It discloses mutability limits and reserved-field restrictions, which is useful, but omits permissions, reversibility, side effects on existing values, and error behavior.
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 tightly written sentences, front-loaded with the action and constraints, with no 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 mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is materially incomplete. Value type, return/error behavior, and interaction with sibling setters are absent.
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%. The description enumerates allowed property values (layer, coords, closed, properties) and mentions custom property-bag values, partially compensating for the missing property enum. However, entity_id and value semantics remain unspecified, and value has no type.
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 the verb 'Set' and the resource 'entity property', listing mutable fields and reserved fields. It does not explicitly differentiate from sibling set_entity_layer, which overlaps on the 'layer' field, so it misses a clear 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?
No explicit when-to-use guidance or alternatives are given. The mutable/reserved distinction implies scope, but an agent must infer when to choose this over set_entity_layer, set_entity_color, or set_parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_layer_colorA
Set or clear a layer display color. Pass an empty string to clear the stored color.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | 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. It does add useful behavioral context by disclosing the empty-string clear sentinel, which is not derivable from the schema. However, it omits whether the layer must already exist, error behavior, or permission requirements for this 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?
Two tight sentences with zero waste. The core action is front-loaded and the clearing hint follows 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?
For a mutation tool with no annotations, no output schema, and 0% parameter description coverage, the description covers the key sentinel but leaves the name parameter and error/permission behavior unexplained. 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 coverage is 0%, so the description should compensate. It usefully explains the empty-string semantics of the color parameter, which the schema does not. But the name parameter (which layer this applies to, and whether it must exist) is left entirely undocumented.
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: sets or clears a layer's display color. This is clearly distinct from siblings like rename_layer, delete_layer, and set_entity_color. No explicit sibling routing, but the resource 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?
The description tells how to clear (empty string) but gives no guidance on when to use this versus set_entity_color or other layer-setting siblings. Usage is implied by the name rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_layer_lockedC
Set whether a layer is locked against editing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| locked | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and reveals the mutation is a toggle of the 'locked' attribute. However it omits what locking prevents (editing vs selection vs deletion), whether it's reversible, whether it requires the layer to be empty, and permission requirements. Adequate but thin 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 with no waste. Efficient, though possibly under-specified rather than genuinely concise.
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, 0% schema coverage on both params, and a mutation operation. The description should clarify the locked semantics and prerequisites but does not, leaving significant gaps for an agent 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 schema documents neither parameter (name, locked). The description mentions 'layer' and 'locked' implicitly, partially decoding params, but gives no format for name or semantics of the boolean. Falls short of compensating for the coverage 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?
States a specific verb ('set') and resource ('layer locked'). Clear what modifies what, though not aggressively differentiated from siblings like set_layer_visible or set_entity_layer beyond the 'locked' attribute. Adequate but not exceptionally sharp.
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 vs set_layer_visible or set_entity_layer, no prerequisites stated, no mention of alternatives. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_layer_visibleC
Set whether a layer is visible in previews and listings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| visible | 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 behavioral burden and does not meet it. It never says this mutates persistent layer state, whether the change is undoable, what happens if the layer name does not exist, or whether hidden layers are merely excluded from previews or from all rendering.
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 well-formed sentence with no filler, and the action is front-loaded. It is arguably over-terse rather than wasteful, but nothing in it is 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?
A mutation tool with no annotations, no output schema, and 0% parameter documentation needs the description to do far more work. As written, an agent lacks enough context to call it correctly against its near-identical sibling set_raster_layer_visible.
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, and it largely does not. It implies 'visible' is a boolean toggle but never clarifies that 'name' is the layer name (versus a handle or ID), nor does it note that both parameters are required or that names are case-sensitive.
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') and resource ('layer') plus the target property ('visible'), which is clearly distinct from set_layer_locked or set_layer_color. However, it fails to distinguish itself from the very close sibling set_raster_layer_visible, and the phrase 'in previews and listings' is an unusual scope that may understate or misstate where visibility actually applies.
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, no prerequisites, and no mention of the obvious alternative set_raster_layer_visible or set_layer_locked. An agent must infer that this tool applies to vector layers rather than raster layers 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.
set_map_extentC
Set the current map extent used for paper layout, grids, and exports.
| Name | Required | Description | Default |
|---|---|---|---|
| maxX | Yes | ||
| maxY | Yes | ||
| minX | Yes | ||
| minY | 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 does not disclose coordinate-system expectations, units, whether the extent affects existing entities or only layout output, whether the change is reversible, or whether CRS/project settings must first be configured.
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 single sentence is front-loaded and contains no filler, which is structurally sound. However, for a tool with four required numeric parameters and no schema documentation, this is under-specified rather than appropriately sized.
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 0% parameter description coverage, the definition omits information an agent needs to invoke the tool correctly, especially coordinate space, units, and prerequisite CRS/project state. Mentioning paper layout, grids, and exports adds some domain context but is far from complete.
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 four required numeric parameters (minX, minY, maxX, maxY). The description says nothing about their coordinate space, units, expected ordering, or relationship to the current project CRS, so it fails to compensate for the schema 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 ('Set') and resource ('the current map extent'), so an agent can understand the core action. It does not distinguish this tool from related siblings such as set_drawing_scale, set_project_crs, or create_map_layout, and it does not clarify coordinate-space 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?
It gives no when-to-use guidance, no prerequisites, and no alternatives or exclusions relative to sibling tools. The phrase 'used for paper layout, grids, and exports' hints at downstream effects but does not tell the agent when this tool should be selected over related extent or scale tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_materialC
Attach material metadata to a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| solid_id | Yes | ||
| material_name | 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 of behavioral disclosure. It does not state whether attaching material overwrites a prior material, whether the solid must already exist, what permissions are needed, or what the operation returns 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 efficient sentence with the verb front-loaded. It is well sized, though its brevity is partly under-specification rather than compression of real 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 annotations, no output schema, and two undocumented parameters at 0% coverage, the definition is too thin for a mutation tool. An agent cannot confirm target format, overwrite behavior, or return value from the available information.
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 two required parameters, so the schema gives no meaning for solid_id or material_name. The description does not clarify the identifier format for solid_id or whether material_name must match an existing library entry, leaving both parameters underspecified.
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 (attach) and resource (material metadata to a solid), which is clear on its own. However, it offers no differentiation from siblings like set_entity_property or define_attribute, so the agent must infer context, keeping it below 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?
There is no guidance on when to use this tool versus alternatives such as set_entity_property or the various set_* tools in the sibling list. No prerequisites, no exclusions, and no context for the standard workflow are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_parameterC
Create or replace a named parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| unit | No | ||
| value | 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 of behavioral disclosure but only states 'create or replace.' It does not disclose side effects, permissions required, behavior when the parameter already exists, error handling, or whether the optional unit is preserved or reset.
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 a single front-loaded sentence with no wasted words. Its brevity is appropriate in form, though the missing detail is a completeness issue rather than a conciseness 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?
For a mutation tool with no annotations, no output schema, and three undocumented parameters, the definition is substantially incomplete. It lacks sibling routing (update_parameter), parameter explanations for value and unit, and any behavioral context about replacing existing parameters.
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 three parameters, so the description must compensate. It only hints at the 'name' parameter via 'named' and says nothing about the required 'value' parameter or the optional 'unit' parameter, leaving their meaning entirely undocumented.
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+resource ('Create or replace a named parameter') and implies upsert semantics, which distinguishes it from a pure create or pure update. However, it does not explicitly name or differentiate from siblings like update_parameter, get_parameter, or list_parameters, so sibling differentiation is left to inference.
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 mention of alternatives, and no prerequisites. The description simply states what the tool does, leaving the agent to infer when set_parameter should be chosen over update_parameter or other parameter tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_project_crsC
Set project CRS and optional origin metadata for resource/environment mapping workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| wkt | No | ||
| code | No | ||
| name | No | ||
| units | No | ||
| origin | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It doesn't state what happens to existing CRS data (overwrite?), whether the operation is reversible, any required permissions, or constraints. For a mutation tool with zero annotation coverage, this is a notable 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?
The description is a single, well-formed sentence that front-loads the core action and includes secondary context without fluff. It is appropriately sized for the information provided.
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 absence of annotations, output schema, and parameter descriptions, the description is insufficient. It omits critical details about parameter formats, mutation effects, and how this tool fits with siblings like get_project_crs or register_crs_definition.
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 description does not explain any of the five parameters. The nested 'origin' object and fields like wkt, code, units are left completely undocumented. An agent would have to guess what values are expected.
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 action (set) and resource (project CRS) with the addition of origin metadata. However, it does not differentiate from the sibling get_project_crs, which is the read counterpart. The purpose is understandable but sibling relationship is unaddressed.
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 tool versus alternatives like reproject_point, transform_coords, or register_crs_definition. The phrase 'for resource/environment mapping workflows' hints at context but doesn't specify when to choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_raster_layer_visibleC
Toggle a raster layer's visibility flag.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| visible | 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. It implies a reversible, non-destructive display-state change, but does not say whether the flag persists to the project, whether it is undoable, whether it affects exports/rendering, or what happens if the id is unknown.
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 short, front-loaded sentence with zero filler. It is efficient, though the extreme terseness is under-specification rather than true conciseness for a tool with an ambiguous verb.
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, 0% parameter coverage, and a bare description leave the agent without the information needed to call this confidently. At minimum it should clarify the set-vs-toggle semantics and the mutation's persistence.
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 two required parameters, so the description is the only source of meaning, and it fails to distinguish them. Worse, 'Toggle' suggests flipping the current state, while the required 'visible' boolean actually sets an explicit value — a genuine ambiguity that could cause a wrong call.
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 ('Toggle'/'set') and resource ('raster layer's visibility flag'), and the word 'raster' distinguishes it from the many vector-layer and entity tools in the sibling list. It is clear what operation is performed, though it never explicitly contrasts itself with the closely named sibling set_layer_visible.
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 description gives no when-to-use context, no prerequisites (e.g. the layer must already be attached via attach_raster_layer), and no alternatives. An 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.
set_table_cellC
Set a table cell value.
| Name | Required | Description | Default |
|---|---|---|---|
| col | Yes | ||
| row | Yes | ||
| content | Yes | ||
| table_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. 'Set' implies a mutation/overwrite, but it says nothing about persistence, error handling, indexing base, permissions, or effects on existing cell content.
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 single sentence is concise but insufficiently sized for a four-parameter mutation tool. It is front-loaded but under-specified, so the brevity reflects missing information rather than efficient structure.
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 four required parameters, zero annotation coverage, no output schema, and 0% schema description coverage, the description is not complete enough to invoke the tool correctly. It omits indexing, table existence, content format, and overwrite semantics.
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 all four required parameters are undocumented in the schema. The description does not explain table_id, row, col, or content semantics such as zero-based indexing or overwrite behavior, so it adds no parameter meaning.
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 ('Set') and resource ('table cell value'), so the core operation is clear and distinct from most siblings like create_table. It stops short of differentiating from any other table-cell operation or clarifying scope, so not 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?
No when-to-use guidance is provided. It does not say a table must already exist, when to call this versus create_table, or how row/col are interpreted. Only the action itself is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_view_standardC
Store active drawing standard in parameter state.
| Name | Required | Description | Default |
|---|---|---|---|
| view_name | 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 states only that something is 'stored.' It does not say whether this mutates an existing view, whether it persists across sessions, whether it can be undone, or whether view_name must reference an existing view.
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 short sentence with no waste, but its brevity stems from under-specification rather than efficiency; there is no front-loaded rationale for the tool's role.
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 state-mutating tool with no annotations, no output schema, and an undocumented required parameter, the description should explain the affected object and persistence behavior. It leaves all of that to inference.
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, and the description never explains what view_name accepts (an existing view name? a new one?) or what a 'standard' value is. The only hint is the word 'view' echoed in the tool name, which is insufficient compensation.
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 verb 'Store' and the resource 'active drawing standard' are identifiable, but the phrase 'in parameter state' is jargon that never explains what a view standard is or how it relates to the view_name input. It is not distinguishable from siblings like set_parameter or set_drawing_scale without guessing.
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 indication of when to call this versus set_parameter/update_parameter/set_drawing_scale, no prerequisites, and no mention of when the stored standard takes effect. The agent gets no routing guidance at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_visual_styleC
Store active visual style in parameter state.
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavior. It says 'Store ... in parameter state', implying a mutation, but does not explain side effects, persistence, required context, or what the active visual style affects.
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?
Very short single sentence with no wasted words, but it is under-specified for a state-changing tool. The structure is front-loaded, yet 'parameter state' is unclear.
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 should carry more weight. For a setter that changes visual style, it omits what visual styles are valid and what state is affected.
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 sole parameter 'style' is an undocumented string. The description implies it holds the active visual style, but gives no valid values, format, or examples.
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 the verb 'Store' and resource 'active visual style', so the basic action is identifiable. However 'parameter state' is vague, and the description does not distinguish it from sibling setters like set_parameter or set_entity_property.
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, no alternatives, and no prerequisites. Sibling tools include set_parameter and many other set_* operations, but the description gives no routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shellC
Create a simplified shelled copy of a solid.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| guides | No | ||
| radius | No | ||
| path_id | No | ||
| distance | No | ||
| edge_ids | No | ||
| face_ids | No | ||
| profiles | No | ||
| solid_id | No | ||
| direction | No | ||
| thickness | No | ||
| open_faces | No | ||
| profile_id | 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. It discloses that a copy is created (not the original being modified) and that the result is 'simplified,' but it says nothing about parameter effects, required inputs, error conditions, or how the shell operation behaves with open faces, thickness, or direction.
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 single sentence is front-loaded and free of filler, but it is not appropriately sized for a tool with 13 parameters and no schema descriptions. The extreme brevity here reflects under-specification rather than purposeful conciseness.
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 far too thin for the tool's complexity. With no annotations, no output schema, 0% schema description coverage, and 13 parameters, an agent cannot determine required inputs or invocation behavior from the description alone.
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 13 parameters, and the description adds no parameter meaning. Terms like angle, radius, path_id, edge_ids, face_ids, thickness, and open_faces are not explained at all, leaving every parameter undocumented.
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 ('Create') and a specific CAD resource ('a simplified shelled copy of a solid'), making the operation identifiable. It does not explicitly differentiate from related siblings like offset, boolean, or loft, but the shelling operation is distinct enough for an agent to recognize it.
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 use this tool versus alternatives, no prerequisites, and no exclusion conditions. The purpose implies a basic use case, but the description offers no routing help for an agent choosing among many CAD creation and modification tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sweepC
Create a simplified swept solid from a profile and path.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | No | ||
| guides | No | ||
| radius | No | ||
| path_id | No | ||
| distance | No | ||
| edge_ids | No | ||
| face_ids | No | ||
| profiles | No | ||
| solid_id | No | ||
| direction | No | ||
| thickness | No | ||
| open_faces | No | ||
| profile_id | No |
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 states that it creates a solid but discloses nothing about permissions, whether it is additive/subtractive, how it interacts with existing geometry, or what happens on failure. For a 13-parameter geometry mutation, 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?
A single efficient sentence with zero waste and the core action front-loaded. However, given the tool's complexity, its extreme brevity is under-specification rather than optimal conciseness.
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 13 parameters, 0% schema coverage, no annotations, and no output schema, the description should carry a heavy explanatory load. It does not; an agent cannot call this tool correctly based on the definition alone.
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 13 parameters. The description only vaguely alludes to 'profile' and 'path', leaving angle, radius, distance, guides, edge_ids, face_ids, solid_id, direction, thickness, and open_faces completely undocumented in both schema and description.
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 (swept solid) and distinguishes the operation from siblings like loft and create_revolution by naming inputs 'profile and path'. The word 'simplified' is vague about how the result differs from a full sweep, but the core purpose 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 when-to-use, when-not-to-use, prerequisites, or alternative tools are mentioned. An agent has no guidance on choosing sweep over loft, create_revolution, or boolean operations, nor on required inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_coordsB
Transform coordinates between local drawing space and world space using project origin and drawing scale.
| Name | Required | Description | Default |
|---|---|---|---|
| point | Yes | ||
| direction | 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. It usefully discloses the transformation basis (project origin and drawing scale) and that this is a pure coordinate conversion, but it never states that the call is side-effect-free, nor what shape the transformed value comes back in.
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 operation and the two spaces. Nothing is wasted, though it is arguably under-specified rather than deliberately minimal.
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 should at minimum indicate what is returned (a transformed point, presumably in the same x/y/z shape), which it omits. The 0% parameter coverage and nested input object also go uncompensated, so a caller still has open questions.
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 two parameters, one of them a nested object with x/y/z, and the description adds no parameter-level meaning beyond the vague term 'coordinates' and 'local/world space'. It does not say how the optional z is treated, whether the direction enum is required, or what units apply.
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 (transform) and resource (coordinates) plus the two spaces involved (local drawing space, world space), so the operation is unambiguous. It does not, however, differentiate itself from nearby siblings like reproject_point or reproject_points, which an agent could easily confuse with a coordinate transformation.
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 mention of prerequisites (e.g. that a project origin and drawing scale must already be set), and no routing to or away from alternatives such as reproject_point. The reader must infer all usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trimC
Trim a line-like entity by shortening it toward its midpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ||
| cutting_entities | No |
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. It states that the entity is shortened, but does not explain mutation semantics, whether the original entity is modified, what happens with cutting_entities, or how to reverse the 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 a single front-loaded sentence with no wasted wording. It is concise, though its brevity contributes to the missing operational detail assessed in other dimensions.
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 CAD trim operation with no annotations, no output schema, and 0% schema description coverage, the description is far too sparse. It does not explain the cutting_entities parameter or the resulting state of the trimmed entity.
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 document parameter meaning. It vaguely references a 'line-like entity' but never explains entity_id, and it completely omits the optional cutting_entities parameter that likely controls the trim operation.
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 gives a specific verb ('Trim') and a broad resource ('line-like entity'), but 'line-like entity' is vague and the phrase 'toward its midpoint' may not match the schema's cutting_entities parameter. It does not distinguish this tool from the sibling 'extend' tool.
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 description implies trimming applies to line-like entities, but it gives no explicit when-to-use guidance, no prerequisites, and no comparison with alternatives such as 'extend' or 'fillet_2d'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoB
Restore the scene to the previous undo checkpoint.
| 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 full burden. It says the scene is restored, but not whether the checkpoint is consumed, whether the action is itself undoable via 'redo', what happens when no checkpoint exists, or how it interacts with open transactions — all material for a state-mutating 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 the action and target state up front and no wasted words. It is perhaps slightly too terse given the unstated safety/ordering semantics, but structurally it is clean.
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, no-output-schema tool the description is minimally sufficient to call correctly, but it leaves out the checkpoint/redo/transaction interactions that determine whether calling it is the right move at a given moment.
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 compensate for; baseline 4 applies. No parameter meaning is needed or missing.
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 ('Restore') and resource ('the scene') plus the target state ('previous undo checkpoint'), so the core action is unambiguous. It does not, however, distinguish itself from the sibling 'redo' or clarify its relationship to 'push_undo_checkpoint'/'rollback_transaction', so an agent must infer the boundaries.
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 statement of when to call this versus the obvious alternatives ('redo' to move forward again, 'rollback_transaction' for transaction-scoped reverts, 'push_undo_checkpoint' to create the checkpoint it consumes). Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ungroupC
Remove a group by id.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet it is ambiguous whether 'remove' deletes the group's member objects or merely dissolves the grouping (the name 'ungroup' suggests the latter while the text suggests the former). It says nothing about reversibility, permissions, or side effects on contained entities.
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, which is efficient, though arguably too terse given the semantic ambiguity of the operation.
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 destructive-sounding grouping operation with no annotations, no output schema, and an undocumented required parameter, the description leaves the key question (are member entities deleted or preserved?) unanswered, so an agent cannot call it safely.
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 only parameter is group_id at 0% schema description coverage, and the phrase 'by id' only weakly clarifies that the value identifies the target group. Beyond that, no format, source, or acquisition guidance for the id is added over 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 ('remove') and resource ('group') qualified by 'by id', so the agent can tell it targets a group rather than an entity. It does not differentiate from siblings like create_group/select_group or clarify how it relates to delete_entity, but the resource noun makes the intent reasonably 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?
There is no indication of when to use this versus create_group, select_group, or remove_component, nor any prerequisite such as the group needing to exist. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_drawing_viewsC
Return current drawing state after a logical refresh.
| Name | Required | Description | Default |
|---|---|---|---|
| drawing_id | 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 states that it returns current drawing state after a refresh, but does not disclose whether the refresh mutates anything, what permissions are required, whether it is idempotent, or what the returned state includes.
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 a single, front-loaded sentence with no filler. However, the phrase 'logical refresh' is unexplained and the sentence is under-specified rather than optimally concise.
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?
There is no output schema and no annotations, so the description should carry the context. It does not explain what 'drawing state' means, how the refresh affects views, or how to use the drawing_id, making it inadequate 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 required parameter drawing_id is not mentioned in the description at all. The description does not compensate for the missing schema documentation, leaving an agent without guidance on the parameter's meaning or format.
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 an action ('Return current drawing state') and a condition ('after a logical refresh'), but 'logical refresh' is vague and it does not clarify what drawing views are being updated despite the tool name. It also gives no sibling differentiation from the many other drawing/CAD 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?
No guidance is provided about when to use this tool versus alternatives such as create_drawing, add_view, or render_preview. The description gives no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_parameterC
Update an existing parameter value.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| unit | No | ||
| new_value | 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 implies a mutation but says nothing about permissions, reversibility, side effects, or required preconditions, leaving significant behavioral gaps for an update 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 single sentence is front-loaded and free of clutter, which is good. However, it is too thin for a three-parameter mutation tool with no annotations or schema descriptions, so conciseness here borders on under-specification.
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 tool with three parameters, no annotations, no output schema, and 0% schema description coverage, the description is far too sparse. It provides only the bare purpose and omits behavioral, usage, and parameter details an agent would need.
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 explain name, new_value, and unit. It only loosely corresponds to updating a parameter value and gives no meaning for the name identifier, the optional unit, or accepted value types.
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 gives a clear verb+resource: update an existing parameter value. It distinguishes updating from getting or listing parameters, but does not differentiate this tool from the sibling set_parameter, leaving ambiguity about which mutation tool to choose.
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 use this tool, when not to use it, or which sibling is appropriate in given contexts. The description does not mention prerequisites or how this differs from set_parameter.
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.
225 tool updates
v0.1.0- First observed
add_aligned_dimension - First observed
add_angular_dimension - First observed
add_auxiliary_view - First observed
add_baseline_dimension - First observed
add_center_line - First observed
add_center_mark - First observed
add_component - First observed
add_constraint_coincident - First observed
add_constraint_concentric - First observed
add_constraint_equal - First observed
add_constraint_fixed - First observed
add_constraint_horizontal - First observed
add_constraint_midpoint - First observed
add_constraint_parallel - First observed
add_constraint_perpendicular - First observed
add_constraint_symmetric - First observed
add_constraint_tangent - First observed
add_constraint_vertical - First observed
add_continued_dimension - First observed
add_coordinate_grid - First observed
add_detail_view - First observed
add_diameter_dimension - First observed
add_dimension_angular - First observed
add_dimension_diameter - First observed
add_dimension_linear - First observed
add_dimension_radial - First observed
add_explode_step - First observed
add_gdt_frame - First observed
add_leader - First observed
add_legend - First observed
add_linear_dimension - First observed
add_mtext - First observed
add_multileader - First observed
add_north_arrow - First observed
add_ordinate_dimension - First observed
add_radius_dimension - First observed
add_scale_bar - First observed
add_section_view - First observed
add_surface_finish_symbol - First observed
add_text - First observed
add_view - First observed
add_weld_symbol - First observed
animate_explode - First observed
apply_thesis_template - First observed
array_polar - First observed
array_rectangular - First observed
attach_raster_layer - First observed
autocad_activate_document - First observed
autocad_attach - First observed
autocad_detach - First observed
autocad_get_variables - First observed
autocad_list_documents - First observed
autocad_list_layers - First observed
autocad_list_modelspace_entities - First observed
autocad_send_command - First observed
autocad_status - First observed
batch_generate_pdf - First observed
batch_generate_svg - First observed
begin_transaction - First observed
boolean_intersect - First observed
boolean_subtract - First observed
boolean_union - First observed
chamfer_2d - First observed
chamfer_3d - First observed
check_clearance - First observed
check_interference - First observed
commit_transaction - First observed
compute_cut_fill_volume - First observed
compute_grid_surface_volume - First observed
compute_section_area - First observed
create_arc - First observed
create_assembly - First observed
create_block - First observed
create_boundary_polygon - First observed
create_box - First observed
create_circle - First observed
create_cone - First observed
create_cylinder - First observed
create_drawing - First observed
create_ellipse - First observed
create_exploded_view - First observed
create_group - First observed
create_layer - First observed
create_line - First observed
create_map_layout - First observed
create_monitoring_well - First observed
create_point - First observed
create_polygon - First observed
create_polyline - First observed
create_prism - First observed
create_profile_line - First observed
create_rectangle - First observed
create_revolution - First observed
create_sampling_point - First observed
create_sphere - First observed
create_spline - First observed
create_table - First observed
create_torus - First observed
create_viewport - First observed
define_attribute - First observed
delete_entity - First observed
delete_layer - First observed
draft_angle - First observed
dwg_tools_status - First observed
edit_block - First observed
explode_block - First observed
export_3mf - First observed
export_dwg - First observed
export_dxf - First observed
export_geojson - First observed
export_gltf - First observed
export_iges - First observed
export_obj - First observed
export_shapefile - First observed
export_step - First observed
export_stl - First observed
export_svg - First observed
extend - First observed
fillet_2d - First observed
fillet_3d - First observed
find_entities_by_layer - First observed
find_entities_by_property - First observed
find_entities_in_region - First observed
generate_pdf - First observed
generate_svg - First observed
geometry_backend_status - First observed
get_bounding_box - First observed
get_curve_length - First observed
get_edge_list - First observed
get_entity_properties - First observed
get_entity_type - First observed
get_face_list - First observed
get_face_normal - First observed
get_layer_list - First observed
get_mass_properties - First observed
get_parameter - First observed
get_project_crs - First observed
get_project_info - First observed
get_raster_layer - First observed
get_topology - First observed
get_vertex_list - First observed
import_csv_points - First observed
import_dwg - First observed
import_dxf - First observed
import_geojson - First observed
import_geotiff_metadata - First observed
import_iges - First observed
import_obj - First observed
import_pdf_as_underlay - First observed
import_shapefile - First observed
import_step - First observed
import_stl - First observed
import_svg - First observed
insert_block - First observed
list_blocks - First observed
list_entities - First observed
list_entities_by_domain_kind - First observed
list_known_crs - First observed
list_layers - First observed
list_parameters - First observed
list_raster_layers - First observed
load_project - First observed
loft - First observed
mate_angle - First observed
mate_coincident - First observed
mate_concentric - First observed
mate_distance - First observed
mate_parallel - First observed
measure_angle - First observed
measure_area - First observed
measure_bounding_box - First observed
measure_centroid - First observed
measure_distance - First observed
measure_minimum_distance - First observed
measure_moment_of_inertia - First observed
measure_perimeter - First observed
measure_polygon_area_stats - First observed
measure_profile_length - First observed
measure_surface_area - First observed
measure_volume - First observed
mirror_2d - First observed
new_project - First observed
offset - First observed
open_project - First observed
push_undo_checkpoint - First observed
redo - First observed
register_crs_definition - First observed
remove_component - First observed
remove_raster_layer - First observed
rename_layer - First observed
rename_raster_layer - First observed
render_preview - First observed
render_preview_svg - First observed
render_raster_layer_png - First observed
reproject_point - First observed
reproject_points - First observed
rollback_transaction - First observed
save_project - First observed
select_group - First observed
set_component_flexible - First observed
set_drawing_scale - First observed
set_entity_color - First observed
set_entity_layer - First observed
set_entity_linetype - First observed
set_entity_lineweight - First observed
set_entity_property - First observed
set_layer_color - First observed
set_layer_locked - First observed
set_layer_visible - First observed
set_map_extent - First observed
set_material - First observed
set_parameter - First observed
set_project_crs - First observed
set_raster_layer_visible - First observed
set_table_cell - First observed
set_view_standard - First observed
set_visual_style - First observed
shell - First observed
sweep - First observed
transform_coords - First observed
trim - First observed
undo - First observed
ungroup - First observed
update_drawing_views - First observed
update_parameter
TDQS
Scored across 225 tools
Many tools overlap heavily: dimension annotations vs dimension constraints (add_dimension_linear vs add_linear_dimension, add_dimension_angular vs add_angular_dimension), multiple measurement/bounding-box tools, aliases like open_project and get_layer_list, and parallel internal-CAD vs AutoCAD COM operations. With 225 tools, an agent faces frequent ambiguity and near-duplicate selection risks.
Names are overwhelmingly snake_case, but verb conventions are inconsistent (create/add/set/get/list/measure/compute/import/export/generate/render/apply), with direct aliases and a few single-word or noun-first tools (offset, shell, loft, draft_angle). Still generally readable, but not a predictable verb_noun pattern throughout.
225 tools is an extreme mismatch for an MCP server, far beyond the 3-15 well-scoped range. The set is massively overgrown and likely overwhelming for agents to navigate.
The surface is broad across 2D/3D creation, annotation, dimensions, layers, blocks, constraints, assemblies, measurement, import/export, and geospatial workflows. However, core CAD editing gaps remain (e.g., no obvious move/rotate/scale for existing 2D entities), and many tools are explicitly simplified or stub-like.
Maintenance
Related MCP Connectors
MCP CAD services; bundles with SmartScale (measure to CAD).
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
AutoRender's MCP server for media assets, transformations, delivery, and workflow automation.
Document processing over MCP: merge, split and compress PDFs, run OCR, extract document text.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables programmatic control of AutoCAD through COM automation, allowing natural language commands to create structures, manage layers, and manipulate entities via MCP clients like Claude.62Apache 2.0
- AlicenseAqualityAmaintenanceMCP 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.1215MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables natural-language control of AutoCAD via file IPC or headless DXF generation, with tools for drawing, entities, layers, blocks, annotations, P&ID, views, and system operations.MIT
- AlicenseNot gradedqualityAmaintenanceEnables 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.MIT