Skip to main content
Glama

CAD2GIS · CAD → GIS for AI agents

CI License Apache-2.0 Python 3.11–3.12

把 DWG/DXF 转成可复核的 GIS,并让 AI Agent 检查、编辑 CAD 副本和交付 QGIS 项目。

官方网站 · 九图效果展示 · 安装指南 · 发行版本 · English · 双语 Wiki

CAD2GIS 将源实体、语义映射、几何、拓扑、长度与坐标证据串成可重放流程。 CLI、Python API、审查工作台和 cad2gis-agent MCP 插件使用同一条转换流水线。 适合 CAD/GIS 工程师,以及使用 Codex、Claude Code、Cursor、VS Code 的 Agent 工作流。

0.8.0 能做什么

能力

入口与条件

DWG/DXF 来源检查

DWG 使用托管 LibreDWG;DXF 在 CLI/API/MCP 中原生读取,保留实体 handle、块、属性和源哈希

CAD → GeoPackage

先复核语义、单位和 CRS,再转换;输出几何、拓扑、长度及位置验收证据

CAD 副本编辑

可选独立开源 CAD 运行时;4 个 MCP 入口受控调用 15 个已实测 CAD 工具

OSM 与 GCP 配准

OSM 相对匹配、冻结快照、人工控制点与二次匹配;绝对精度需要可靠控制与检查点

QGIS 交付

GeoPackage、QGZ/QML、SVG 对照及校验清单;独立渲染验证需要 QGIS runtime

多 Agent 接入

Codex/Claude Code 仓库 marketplace,以及 Cursor/VS Code 标准 MCP 配置

旁路固定使用 U-C4N/Autocad-MCP 的 MIT 许可 无界面 DXF 引擎,独立安装。它只编辑副本,结果重新进入 CAD2GIS 验收。 详见 CAD 能力与安装。

Related MCP server: lambdacad-mcp

先看效果

QGIS 首次打开效果

查看九张图的效果、图层与过程。 展示复用既有 Pages 内容;九图仍为 CONDITIONAL,没有验证测量级绝对定位精度。 图纸声明 CRS 或视觉重合,均不能单独证明位置准确。

三步接入 Agent

先安装 uv,使用 Python 3.12:

uv tool install --python 3.12 --force "cad2gis[agent] @ https://github.com/Mola-maker/CAD2GIS/archive/refs/heads/main.zip"
cad2gis-agent-mcp --help
cad2gis doctor --deep --profile full --json

DWG 转换另运行 cad2gis runtime install。DXF 检查不需要 LibreDWG;GIS 转换仍需要 GIS runtime。

Codex:

codex plugin marketplace add Mola-maker/CAD2GIS --ref main
codex plugin add cad2gis-agent@cad2gis

Claude Code:

claude plugin marketplace add Mola-maker/CAD2GIS
claude plugin install cad2gis-agent@cad2gis-tools

其他客户端使用 MCP 配置模板。 让 Agent 从 get_capabilities、get_runtime_status、inspect_source 开始。 可选 CAD 编辑另调用 get_cad_bundle_status,按 旁路参考 安装。

下载与版本

0.8.0 是本次 Python/Agent 源码发行;桌面安装包按其实际版本提供。

平台

已有可下载版本

Windows x64

0.7.8 安装程序

Linux x86_64

0.7.0-3 .deb · 便携包

macOS Apple Silicon / Intel

0.7.0 安装包

Linux 安装要求见 安装说明。预发布请使用明确版本链接。 旧安装包保持其原始许可与验证范围;Apache-2.0 适用于本次新版原创代码。

文档与参与

插件指南 · 贡献指南 · 问题反馈 · 发现与分发渠道 · OSM 匹配 · SVG 与 QGZ · 多分区复核 · Docker

原创代码采用 Apache-2.0,允许商用、修改和分发。 第三方组件与客户图纸保留各自权利,见 NOTICE。 欢迎用合成或可公开分享的图纸提交复现与新工作流;不要在公开 issue 上传客户原图。


术语

  • APD = As Plan Drawing:建筑工程领域的“按计划图纸”,记录的是 as-planned 设计,不是 as-built 竣工实测;也不是“接入点设备”。

  • SF = Subfeeder:光缆/电缆网络中的副馈线 / 分支配电线;文件名中的 - SF 表示该图是网络的 subfeeder 部分。

  • 外部语料中 4 张 DWG 是建立算法流程的开发/基线集,后加入的 6 张是 验证集,必须按新图各自 source-bound 处理,不得复用基线规则或数量门禁。

完整定义与两份清单见 docs/GLOSSARY.md。

快速开始

容器部署与本地镜像构建见 Docker 运行说明。

  1. 按下方“安装”创建固定运行环境并执行 cad2gis doctor;

  2. 安装 plugins/cad2gis-agent,或把对应 clients 模板加入现有智能体;

  3. 在 DWG 项目目录中启动智能体,让它先调用 get_capabilities、 get_runtime_status 和 inspect_source;

  4. 默认转换执行 OSM 相对匹配和 SVG 图例候选提取;用 cad2gis review 打开结果, 检查图层、标签、长度、拓扑和位置,并复核 SVG 与原图实体的对应关系;

  5. 位置需要修正时,添加 CAD → 地图控制点查看人工校正预览,再点击 “二次匹配并生成新结果”。完成后工作台自动加载新 GIS,保留控制点供继续迭代。

已有通过验证的项目配置时,可直接运行以下命令。尖括号中的内容是需要替换的 本地路径;每次转换使用新的输出目录。

cad2gis convert "<SOURCE.dwg>" --project "<PROJECT_DIR>" --run-dir "<NEW_RUN_DIR>" --json
cad2gis review "<NEW_RUN_DIR>" --workspace "<REVIEW_DIR>" --port 8765

打开 本地工作台。最终 delivery.gpkg 使用当前匹配坐标, 并记录 relative_osm 来源;人工选点保存时只改变预览,确认二次匹配才生成新 GIS。 OSM 匹配包含单位、投影转换和平移,不自动旋转、拉伸或把缆线改画成道路。 离线道路快照使用 --osm-data "<OVERPASS.json>";需要显式地点提示时使用 --osm-place "<PLACE_NAME>"。完整参数、分区行为和复现方法见 OSM 标准匹配说明。

convert、auto-convert、MCP 和批量转换默认使用 svg_mode=candidate,在 <NEW_RUN_DIR>/svg-candidates/ 保存 symbols.sqlite3、correspondence.json 和 correspondence.html。SVG 与 GIS 完整生成后一起发布;提取失败时不发布新 run, 已有结果保留。候选只供复核,不会自动替换交付样式。原图需要指定字体时可重复使用 --svg-font-dir "<FONT_DIR>";显式 --svg-mode off 关闭提取。候选来源、哈希及 人工绑定方式见 SVG 提取说明。

插件是 canonical Python 流水线的薄接入层。没有安装 GIS runtime、DWG reader 或没有授权项目根目录时,插件会失败关闭,而不会输出伪成功 GeoPackage。

下面的命令不需要先克隆仓库。先按操作系统安装同一个可移植 cad2gis-agent-mcp 控制面运行时,再按智能体客户端注册插件。安装命令使用 main.zip 而不是完整 Git 历史,并用 --force 主动替换旧版本;因此它也能修复 指向已删除 worktree 的 editable 安装。

Windows 更新或修复前,先退出正在使用 CAD2GIS 的 MCP 客户端并停止 cad2gis review。运行中的 Python 进程会锁住 uv 工具目录,使 --force 以 os error 32 失败;安装完成后再重启客户端。

1. 安装本地运行时

Windows PowerShell:

winget install --id=astral-sh.uv -e
uv tool install --python 3.12 --force "cad2gis[agent] @ https://github.com/Mola-maker/CAD2GIS/archive/refs/heads/main.zip"
cad2gis runtime install
Get-Command cad2gis-agent-mcp
cad2gis-agent-mcp --help
cad2gis doctor --deep --profile full --json

macOS:

brew install uv
uv tool install --python 3.12 --force "cad2gis[agent] @ https://github.com/Mola-maker/CAD2GIS/archive/refs/heads/main.zip"
cad2gis runtime install
command -v cad2gis-agent-mcp
cad2gis-agent-mcp --help
cad2gis doctor --deep --profile full --json

Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
uv tool install --python 3.12 --force "cad2gis[agent] @ https://github.com/Mola-maker/CAD2GIS/archive/refs/heads/main.zip"
cad2gis runtime install  # 无 Homebrew 时从校验过的官方源码构建到用户缓存
command -v cad2gis-agent-mcp
cad2gis-agent-mcp --help
cad2gis doctor --deep --profile full --json

WSL 使用上面的 Linux 命令,但不把 WSL → Windows GUI 作为受支持的 AutoCAD/QGIS 会话控制通道。需要操控 Windows AutoCAD 或 Windows QGIS 桌面会话时,请在 Windows 原生 Codex/CLI 环境中安装运行时。

cad2gis-agent-mcp --help 验证插件实际调用的 console script 可以导入并启动。 cad2gis doctor --deep --profile full --json 会同时检查 MCP 入口、WebUI、 bundled GDAL/OGR、ezdxf 和 LibreDWG。 [agent] extra 的平台 wheel 提供 GDAL/OGR;cad2gis runtime install 把官方 LibreDWG CLI 安装到用户缓存(Windows),在 macOS/Linux 上优先复用 Homebrew, 否则从固定版本、固定 SHA-256 的官方源码进行无 root 构建。源码回退需要系统已有 C 编译器和 make;AutoCAD 与 Conda 都不是默认转换链路的前置条件。

2. 安装智能体客户端插件

Codex(Windows/macOS/Linux 命令相同):

codex plugin marketplace add Mola-maker/CAD2GIS --ref main
codex plugin add cad2gis-agent@cad2gis
codex plugin list

Claude Code(Windows/macOS/Linux 命令相同):

claude plugin marketplace add Mola-maker/CAD2GIS
claude plugin install cad2gis-agent@cad2gis-tools
claude plugin list

Cursor:

# Windows PowerShell
New-Item -ItemType Directory -Force .cursor | Out-Null
Invoke-WebRequest "https://raw.githubusercontent.com/Mola-maker/CAD2GIS/main/plugins/cad2gis-agent/clients/cursor.mcp.json" -OutFile ".cursor/mcp.json"
# macOS / Linux
mkdir -p .cursor
curl -fsSL "https://raw.githubusercontent.com/Mola-maker/CAD2GIS/main/plugins/cad2gis-agent/clients/cursor.mcp.json" -o .cursor/mcp.json

VS Code / GitHub Copilot agent mode:

# Windows PowerShell
New-Item -ItemType Directory -Force .vscode | Out-Null
Invoke-WebRequest "https://raw.githubusercontent.com/Mola-maker/CAD2GIS/main/plugins/cad2gis-agent/clients/vscode.mcp.json" -OutFile ".vscode/mcp.json"
# macOS / Linux
mkdir -p .vscode
curl -fsSL "https://raw.githubusercontent.com/Mola-maker/CAD2GIS/main/plugins/cad2gis-agent/clients/vscode.mcp.json" -o .vscode/mcp.json

Cursor/VS Code 模板通过 ${workspaceFolder} 自动使用当前工作区,无需填写机器 相关的绝对路径;下载后重启客户端。完整模板见 plugins/cad2gis-agent/clients。

3. 验证安装

先验证本地运行时,再验证正在使用的客户端。只使用 Codex 或 Claude Code 其中 一个时,不需要执行另一个客户端的列表命令。

cad2gis-agent-mcp --help
cad2gis doctor --deep --profile full --json
codex plugin list
claude plugin list

重启客户端并新建任务后,再让智能体调用 get_capabilities,确认 MCP 能力和 当前工作区授权目录已加载。完整 GIS 环境还应执行 cad2gis doctor --deep --strict --profile full --json 并确认 selected_profile_ready: true;这同时覆盖转换、MCP 与 Review WebUI。

4. 更新

Windows 上先停止 CAD2GIS MCP/WebUI 进程,再替换运行时。

# 运行时:同一条命令同时负责首次安装、更新和修复悬空 editable 安装
uv tool install --python 3.12 --force "cad2gis[agent] @ https://github.com/Mola-maker/CAD2GIS/archive/refs/heads/main.zip"
cad2gis runtime install

# Codex
codex plugin marketplace upgrade cad2gis
codex plugin add cad2gis-agent@cad2gis

# Claude Code
claude plugin marketplace update cad2gis-tools
claude plugin update cad2gis-agent@cad2gis-tools

若客户端显示 CONNECTION_CLOSED,且 cad2gis 或 cad2gis-agent-mcp 报 ModuleNotFoundError: No module named 'cad2gis',不要手工修改 uv 的 .pth 或 插件缓存。直接重新执行上面的 uv tool install ... --force,再确认 cad2gis-agent-mcp --help 成功,最后重启客户端并新建任务。

Cursor 与 VS Code / Copilot 使用者请重新下载上面的动态工作区 MCP 模板。

5. 卸载

# Codex
codex plugin remove cad2gis-agent@cad2gis

# Claude Code
claude plugin uninstall cad2gis-agent@cad2gis-tools

# 本地运行时
uv tool uninstall cad2gis

安装、验证、更新、卸载或修改 MCP 配置后,请重启客户端并新建任务,使 skills 和 tools 从新会话边界加载。

架构

DWG reader (AutoCAD / LibreDWG / source-bound records)
  -> 不可变实体清单与样式、标签、曲线事实
  -> plan-domain 与 geometry-first 场景分区
  -> source-bound AI onboarding(只选择源中已观察到的标识)
  -> 确定性语义编译与精确 census gates
  -> 曲线、几何、拓扑、长度四类独立验证
  -> 单位与基础坐标操作 + 默认 OSM 相对平移匹配
  -> 人工控制点预览 -> 确认后二次匹配,生成新的 GIS 版本
     (显式 GCP 配准与 nominal 兼容路径仍可选)
  -> source.gpkg + evidence.gpkg + delivery.gpkg
  -> QML + evidence graph + run_manifest.json + run_status

AI 是控制平面的规划器,不是坐标或几何生成器。它可以完成实体清点、语义候选、 证据解释和 typed Decision Pack 提议;坐标、曲线、长度、变换参数、残差和交付 均由确定性代码计算和验证。

详细设计:

开发者安装

uv sync --extra agent --extra test
uv run cad2gis runtime install
uv run cad2gis doctor --deep --strict --profile full --json

需要复现传统原生 GIS 开发栈时,env/environment.yml 仍作为可选环境保留:

conda env create -f env/environment.yml
conda activate cad2gis
pip install -e ".[agent,test]"
cad2gis doctor --deep --strict --profile full --json

支持 Python 3.11–3.12。MCP、证据协议和 GeoPackage 交付结构跨 Windows、Linux、 macOS 一致;LibreDWG CLI 是默认 reader,AutoCAD/Core Console 仅是 Windows 上 显式选择的可选回退。安装后可直接使用 cad2gis-agent-mcp 启动 MCP 服务。

Windows 使用 AutoCAD reader:

$env:CAD2GIS_READER_BACKEND = "autocad"

新图纸的推荐流程

每个新 DWG 都必须建立自己的 source-bound profile 和 mapping registry:

cad2gis inspect "<SOURCE.dwg>" --json
cad2gis bootstrap "<SOURCE.dwg>" --project "<PROJECT_DIR>" --json

检查并完成生成的源配置与语义映射后,再验证和转换:

cad2gis validate --project "<PROJECT_DIR>" --json
cad2gis convert "<SOURCE.dwg>" `
  --project "<PROJECT_DIR>" `
  --run-dir "<NEW_RUN_DIR>" `
  --json

convert 和 auto-convert 默认使用 --matching osm。需要沿用标称坐标兼容流程时, 显式选择 --matching nominal;需要应用测量 GCP 配置时,显式传入 --gcp-profile "<GCP_PROFILE.json>"。标准 OSM 模式不会自动启用项目目录中发现的 GCP 文件。有效坐标域、地点提示或离线 OSM 快照提供匹配搜索参考;没有任何地理 参考的本地 CAD 仍需补充定位输入。自动匹配不确定但地域已知时,会保留待人工检查的粗定位。

使用 DeepSeek 自动完成受约束的 onboarding:

$env:DEEPSEEK_API_KEY = "<secret>"
cad2gis auto-convert "<SOURCE.dwg>" `
  --project "<PROJECT_DIR>" `
  --run-dir "<NEW_RUN_DIR>" `
  --provider deepseek `
  --force-bootstrap `
  --json

密钥不会写入项目、日志或 manifest。New API 聚合网关可通过 --provider new-api 及对应环境变量接入。

项目目录与期望产物结构

每张 DWG 对应 baselines/<项目>/ 下的一套 source-bound 产物,本工作区十个基线 即采用该结构:

baselines/<project>/
├── config/                        # 源绑定与语义映射,人工评审后冻结
│   ├── source_profile.json        # 源配置:CRS/CGEOCS、GEODATA 配准、单位与图层门槛
│   ├── mapping_registry.json      # 图层/实体 → 要素类映射与元素计数门禁
│   ├── spatial_regions.json       # 独立分区契约(如 Manado 的 EMR 面板);无分区时缺省
│   ├── osm_anchor.json            # 可选:地点锚点,供缺少地理坐标的图纸定位
│   ├── matching-manual-gcp.json   # 可选:冻结的人工匹配 revision 记录
│   └── .osm-cache/                # 可选:Overpass 路网快照缓存(内容寻址命名)
├── run/                           # 标准转换 run;不存放任何 QGZ
│   ├── source.gpkg                # 原生 CAD 事实快照
│   ├── evidence.gpkg              # 证据层
│   ├── delivery.gpkg              # 交付几何与属性(权威字节,打包后字节不变)
│   ├── osm_matching.json          # OSM 匹配记录:status/revision/translation/search_bbox
│   ├── run_manifest.json          # 运行状态与全部产物的 SHA-256
│   ├── qgis/styles/*.qml          # 每图层 QML 与 style_manifest.json
│   ├── svg-candidates/            # 源 SVG 候选:correspondence.{json,html}、selection.json、
│   │                              # manifest.json、index.html、symbols/、symbols.sqlite3
│   ├── reasoning/                 # cad_scene_graph.json、evidence_graph.json.gz、
│   │                              # evidence_index.sqlite3、visual/(分块渲染与命中索引)
│   └── <PARTITION>/               # 独立分区 run:delivery.gpkg、partition_manifest.json、qgis/
├── run.review/                    # 使用 Web 工作台后才出现
│   ├── review.sqlite3             # 人工控制点 revision store
│   ├── matching-active.json       # 当前生效匹配版本的指针
│   └── matching/r<N>-<uuid>/      # 每轮二次匹配:match-profile.json、controls.json、run/
└── delivery/                      # 便携交付包,QGZ 与其 GeoPackage 成组存放
    ├── <6 个文件>                 # 标准 run 的交付
    ├── r<N>/<6 个文件>            # 人工复核 revision 的交付(cad2gis publish-match)
    └── <PARTITION>/<6 个文件>     # 分区交付,与主体同构

交付包固定为六个文件:delivery.gpkg、delivery.qgz、delivery.review.json、 osm-basemap.gpkg、view-with-source-SVG.qgz、view-with-source-SVG.review.json。 delivery.gpkg 与对应 run 的字节完全一致,QML/SVG 只是呈现层,不改写数据库值与几何精度。 原始 DWG 不进入项目目录,保存在仓库 raw/ 下;run/ 与 run.review/ 永不存放 QGZ 交付文件。

长度语义

CABLE_SEGMENT 同时保留三种不同含义的长度:

  • source_native_length_m:DWG 源曲线长度;

  • measurement_native_m:匹配到的独立 DWG DIMENSION 数值;当 DWG 标注文本存在时使用渲染后的标注值(例如黄色整数 50 m),而不是 act_measurement 的未舍入小数;

  • source_cad_length_m:CABLE_SEGMENT 的名义源长度——有 DIMENSION 时等于标注值,无 DIMENSION 时回退为不可变 CAD 曲线长度;

  • delivery_grid_length_m / geodesic_length_m:坐标转换后的网格与椭球长度。

没有 DIMENSION 时,线段仍然具有可靠的 CAD 曲线长度,measurement_state=cad_geometry_only, 但 QGIS 中不显示任何长度标签:原图没有标注的跨度不会被补上系统发明的文字。 尺寸匹配采用:

  1. 精确线段端点;

  2. 尺寸端点与缆线端点落在同一对唯一支撑设施上。

第二种规则解决真实 CAD 中尺寸延伸线与缆线端点存在偏移的问题,并保留完整 rule/provenance。

Web 配准、坐标传送与审查

cad2gis review "<RUN_DIR>" --workspace "<REVIEW_DIR>" --port 8765

打开 http://127.0.0.1:8765/:

  1. 右图先显示当前已应用的 GIS 匹配结果,与 OSM 底图对照;

  2. 左图点击 CAD 实体,系统吸附到真实几何;右图点击同一位置,或输入 EPSG:4326 经度/纬度;

  3. 保存至少两个位置不同的训练点后查看人工平移校正预览。独立检查点只评估残差, 不参与拟合;足够且分布合理的检查点有助于识别局部偏差;

  4. 确认预览后点击“二次匹配并生成新结果”,由正式转换管线创建新的 GIS;

  5. 完成后自动加载新结果,保留控制点;可继续修改、预览和再次匹配;

  6. 复核版交付用 cad2gis publish-match "<新RUN_DIR>" 发布,见 QGIS 交付。

工作台会显示本次保存的匹配配置和可复制转换命令。每轮从原始 CAD 坐标及同一 基础坐标操作重新计算总平移,避免反复叠加前一轮偏移。独立图框分别匹配; 从某个分区发起的人工校正只生成该分区的新交付。失败时继续保留当前结果和控制点。

界面还提供 ?demo=1 合成交互模式,用于公开展示图层开关、CAD 几何吸附和 坐标传送,不读取或上传真实 DWG,也不会伪装成已执行转换。例如: http://127.0.0.1:8765/?demo=1。真实产物仍必须由本地 CLI/MCP 流水线生成。

公开的合成演示由 GitHub Pages 发布: ULTRA CAD2GIS Web Demo。该页面只含 demo-fixture.js 中的合成对象;真实 CAD/GIS 处理仍在本地运行。

左侧 ToC 将源事实、语义映射、空间配准、独立校验和 GIS 交付分开显示;右侧 “证据 / 控制台 / AI 协作”标签只记录有效审查动作,并提供目标坐标、转换命令和 受约束 AI 提示词的复制功能。

人工选点只写独立 revision store 并更新预览;确认二次匹配会创建新的 run, 原始 CAD 与之前的 delivery GeoPackage 保持不变。OSM 控制点的精度类别固定为 RELATIVE_OSM_REFERENCE_ONLY;若要证明绝对精度,必须替换为测量或权威控制点。 复制或归档 run 后,服务只接受 SHA-256 与 manifest 完全一致的同目录产物;若 原 DWG 或绑定配置不可用,则允许查看已有结果,二次转换需先恢复对应输入。

MCP 与主流智能体

MCP 服务支持标准 stdio 和 Streamable HTTP:

# stdio(通常由智能体自动启动)
cad2gis-agent-mcp --transport stdio

# 本机 Streamable HTTP
python -m cad2gis.agent_mcp `
  --transport streamable-http `
  --host 127.0.0.1 `
  --port 8768

HTTP endpoint 为 http://127.0.0.1:8768/mcp。默认只允许本机 loopback; 网络部署必须增加认证反向代理。

Claude Code、Cursor、VS Code/GitHub Copilot、Codex 和通用 HTTP 客户端模板位于 plugins/cad2gis-agent/clients。服务暴露 get_capabilities,智能体可先读取转换边界、transport 和精度声明,再调用 inspection、onboarding、conversion、evidence、repair 与 review 工具。 转换完成后调用 audit_run,可校验每个产物的 SHA-256、实际 GeoPackage 图层 计数与 manifest census 是否一致,并单独报告源 DWG 是否仍可重放。

MCP 只能访问客户端工作区或显式授权根目录中的文件。通常无需配置;只有需要授权 工作区外的数据目录时才设置:

$env:CAD2GIS_PROJECT_ROOTS = "D:\survey-data;D:\shared-cad"

QGIS 交付

需要排查底图偏移时,可使用独立的 QGIS / OSM 复核入口, 为工程加入离线参考底图并生成真实 QGIS 快照。原图坐标标注约束的可选校正只应用于复核工程显示,不改写原始数据库或长度,也不代替测量控制点验收。

复核版交付(delivery/r<N>/)

Web 工作台二次匹配产生的新 run 不是标准 run,其便携交付按版本发布在项目 delivery/ 下,标准 run 的交付仍在 delivery/ 根,两者互不覆盖:

# RUN_DIR 位于 <PROJECT_DIR>/run.review/matching/r<N>-<uuid>/run 时自动推导交付目录
cad2gis publish-match "<RUN_DIR>"

# 其他位置需显式指定
cad2gis publish-match "<RUN_DIR>" --delivery-root "<PROJECT_DIR>/delivery"
  • 版本目录名取自该 run 的 osm_matching.revision(r2、r3……);已存在的版本目录会被拒绝,不覆盖旧版本。

  • 每个版本目录与标准交付同构:delivery.gpkg(与 run 字节一致)、delivery.qgz、 delivery.review.json、osm-basemap.gpkg、view-with-source-SVG.qgz、 view-with-source-SVG.review.json;分区图纸的面板交付位于 delivery/r<N>/<分区>/。

  • SVG 符号绑定取自 run 的 svg-candidates;OSM 底图按各 scope 的要素范围获取, 也可用 --osm-data "[SCOPE=]PATH" 复用已复核的 Overpass JSON 快照(离线环境或分区各一份)。

  • 该步骤需要能 import qgis.core 的解释器,依次尝试 --qgis-python、环境变量 CAD2GIS_QGIS_PYTHON、当前解释器、/usr/bin/python3。

  • 转换 run 与 review 工作区都不存放 QGZ 交付文件:发布过程在系统临时目录完成组装, 成功后原子改名入库,失败即清理,不留半成品。

成功 run 包含:

  • source.gpkg

  • evidence.gpkg

  • delivery.gpkg

  • QML 与 style manifest

  • evidence graph 与视觉索引

  • run_manifest.json

在 QGIS 中可直接拖入 delivery.gpkg,或通过“数据源管理器 → GeoPackage”连接。 加载随包生成的 QML 后可恢复 CAD 图层颜色、线型、点符号和标签。

精度边界

系统分别报告:

  • reader/source record fidelity;

  • geometry/curve fidelity;

  • topology 与 cable segment conservation;

  • CAD 曲线长度与独立 DIMENSION 覆盖;

  • nominal CRS transformation;

  • OSM 相对匹配状态、版本、来源与人工校正残差;

  • GCP train residual 与独立 check-point 精度。

$INSUNITS 是块插入缩放提示,不自动等同于 WCS 坐标单位。当 DWG 的 CGEOCS 明确绑定投影 CRS 时,其线性轴单位控制 WCS→米的尺度,避免把 UTM 坐标错误缩小 1000 倍。

外部 E:\branch_CAD2GIS\APD_test 仅是兼容性压力输入,不是训练集、规则模板或 准确率真值。同理,外部语料中新增的 6 张 APD(As Plan Drawing)验证图也必须 各自建立 source-bound profile,不得沿用四张开发基线图的规则或数量门禁。 没有 authoritative GCP 的结果必须保持 CONDITIONAL 或 not independently verified。

验证

python -m pip install -e ".[agent,test]"
python -m pytest -q

$env:CAD2GIS_FULL_DWG_TESTS = "1"
python -m pytest tests/test_apd_test_compatibility.py -q

仓库 CI 在 Ubuntu/Python 3.11、Ubuntu/Python 3.12、Windows/Python 3.12 和 macOS/Python 3.12 上安装 agent 依赖与锁版 LibreDWG runtime, 再分别执行安装、锁版 Ruff、Python 编译、WebDemo JavaScript 语法、MCP/插件 契约和完整 pytest 回归。Pages CD 会重新验证浏览器契约,使用 scripts/build_pages.py 构建 _site。合成演示与用户授权的派生九图演示分开校验。 九图、QGZ 和 SVG 复验包来自 docs/derived-release.json 指定的 Release,下载后检查 大小、SHA256、目录边界和完整文件清单;原始 DWG/DXF 不进入公开站点。

仓库目录:

  • src/cad2gis/:唯一生产实现、CLI、reader、MCP、review server

  • tests/:自动化契约与回归测试

  • baselines/:source-bound 基线配置;大型 GeoPackage/清单证据可作为外部语料挂载

  • 原始 DWG 与生成输出放在仓库外,通过显式路径或批量输入契约挂载

  • experiment/config/:APD reviewed 兼容配置,不含原始图纸

  • plugins/cad2gis-agent/:智能体插件和 MCP 客户端模板

  • docs/:架构、鲁棒性、可移植性、术语与对账说明

  • env/:固定 GIS 运行环境

本地重建包含九图的 Pages:先运行 python scripts/fetch_derived_release.py,再运行 python scripts/build_pages.py --output _site。pages-delivery/ 是忽略的下载缓存, 只提交核心源码、必要测试配置、文档和小型发布清单。

Available Tools

63 tools
apply_ai_onboardingC

Compile a source-bound proposal; conversion must use the same geometry_repairs mode.

NameRequiredDescriptionDefault
sourceYes
proposalYes
proposerNo
project_dirYes
geometry_repairsNolegacy

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden but discloses almost nothing: no mutation semantics, side effects, permissions, idempotency, or failure behavior. The single useful detail is the requirement that geometry_repairs mode match the later conversion, but that is insufficient for a tool whose name implies applying onboarding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, but its two clauses are cryptic rather than informative. It avoids verbosity, yet the main clause does not clearly orient the reader before introducing the geometry_repairs constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with a nested proposal object, no annotations, and 0% schema description coverage, the description is drastically incomplete. Even though an output schema exists, the input behavior and required setup are almost entirely undisclosed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 five undocumented parameters. It hints that source and proposal are related via "source-bound proposal" and mentions geometry_repairs mode, but project_dir, proposer, the proposal object structure, and source format are left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says "Compile a source-bound proposal" but does not explain what applying AI onboarding means or how this differs from sibling tools such as prepare_ai_onboarding, auto_onboard_and_convert, or run_conversion. The verb "compile" is specific, but the resource and effect on the project remain vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is the constraint that conversion must use the same geometry_repairs mode. There is no statement of when to use this tool instead of prepare_ai_onboarding or auto_onboard_and_convert, no prerequisites, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_runC

Verify one immutable run's artifacts and delivered layer census.

NameRequiredDescriptionDefault
run_dirYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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 state whether the operation is read-only, whether it has side effects, what permissions are needed, or what the verification checks concretely cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single front-loaded sentence with no filler. Its brevity is appropriate, though the phrase 'delivered layer census' is jargon that reduces immediate clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is structurally simple and has an output schema, so return values need not be explained. However, with no annotations and no parameter explanation, the description leaves important operational context missing, including what artifacts and census checks are actually verified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the single required parameter, run_dir, is undocumented in structured fields. The description only implies that it identifies 'one immutable run' and does not explain the expected path or format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description has a clear verb, 'Verify,' and a specific resource, 'one immutable run's artifacts and delivered layer census.' It distinguishes the action from likely siblings like inspect_run, though it does not explicitly name or contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the word 'Verify'; there is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as inspect_run or audit_visual_conversion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

audit_visual_conversionC

Audit source-bound geometry, fields and labels with the canonical visual audit.

NameRequiredDescriptionDefault
run_dirYes
partitionNo
output_dirYes
source_runYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

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 audit is read-only or mutating, what permissions are needed, whether files are created or modified, or what side effects occur. The only clue is the word 'audit', which loosely implies read-only, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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 and to the point, though its terseness contributes to other gaps rather than being a problem in itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, with 3 required parameters and 0% schema coverage, the description should provide some semantic context for those parameters. It also omits behavioral details and usage alternatives. Given the tool's complexity (4 parameters, no annotations), the description is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 4 parameters with 0% description coverage, and the description does not mention any parameter names or meaning. Without schema explanations, the agent must guess the purpose of 'source_run', 'run_dir', 'output_dir', and 'partition'. The description 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb 'audit' and a resource 'source-bound geometry, fields and labels', but the phrase 'canonical visual audit' is vague and does not distinguish this tool from the sibling 'audit_run' or explain what a 'visual audit' entails. An agent can infer it audits visual aspects but cannot confidently differentiate it from other audit tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'audit_run', 'inspect_run', or 'validate_project'. It also lacks any prerequisites or conditions. There is no explicit or implied usage context beyond the general term 'audit'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auto_onboard_and_convertC

Run provider-backed onboarding, deterministic admission, and conversion.

NameRequiredDescriptionDefault
sourceYes
run_dirYes
matchingNoosm
osm_dataNo
providerNodeepseek
svg_modeNocandidate
osm_placeNo
project_dirYes
match_profileNo
svg_font_dirsNo
force_bootstrapNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior2/5

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 never says that this writes into project_dir and run_dir, whether the operation is idempotent or resumable, what 'provider-backed' implies (network calls, credentials, cost, latency), or what happens on partial failure mid-pipeline. 'Deterministic admission' hints at a check step but not at pass/fail consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single clause with no filler, so nothing is wasted, but that brevity comes from omission rather than precision; the three abstract nouns are packed without front-loading what the agent actually needs (required inputs, side effects).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter orchestration tool with side effects on two directories, no annotations, and no parameter documentation, one sentence is far too thin. The output schema covers return values, but nothing tells an agent how to fill required fields, what the defaults mean, or what the pipeline mutates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Eleven parameters with 0% schema description coverage means the schema provides titles only, and the description contributes nothing: source, run_dir, matching, osm_data, match_profile, svg_mode, svg_font_dirs, force_bootstrap are all undefined. This is exactly the case where the description must compensate and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names three phases (onboarding, admission, conversion) and implies an orchestrated pipeline, which is more than a tautology. But 'deterministic admission' is unexplained jargon, and it never distinguishes itself from siblings like run_conversion, bootstrap_project, or prepare_ai_onboarding/apply_ai_onboarding, which together appear to cover the same ground.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 bundled pipeline instead of the individual onboarding/convert tools, and no prerequisites or exclusions. The only implied guidance is the conjunction 'and', which weakly suggests it does multiple steps at once.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bootstrap_projectB

Create a source-bound draft project pack for one previously inspected DWG.

NameRequiredDescriptionDefault
forceNo
sourceYes
project_dirYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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 that output is a 'draft' bound to a source, but says nothing about what happens if project_dir already exists, what the force flag overwrites/destroys, or what permissions or side effects are involved in a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb and the deliverable, with zero filler. Nothing could be trimmed without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema covers return values, but for a three-parameter write tool with no annotations and 0% schema coverage, the description leaves the force semantics, directory-collision behavior, and prerequisite workflow undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description only loosely gestures at 'source' and the project pack. The 'force' parameter, which is the riskiest to use incorrectly, is not explained anywhere, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Create') plus a specific resource ('source-bound draft project pack') with a scoping constraint ('one previously inspected DWG'). It does not name or differentiate from plausible siblings like prepare_cad_bundle_workspace or inspect_source, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'previously inspected DWG' implies a prerequisite (run inspect_source first) but never states it explicitly, and there is no guidance on when to use this versus prepare_cad_bundle_workspace or how it fits the wider workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_qgis_reviewB

Build a new offline QGIS review; preserve matched or uncorrected identity.

Uses the canonical QGIS subprocess. An absent registration stays explicit; it is never interpreted as successful matching. Existing SVG bindings are preserved, while new semantic symbol assignments are not invented.

NameRequiredDescriptionDefault
osm_dataYes
standaloneNo
output_pathYes
project_pathYes
matching_context_pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden, and it does disclose non-obvious behavior: it uses the canonical QGIS subprocess, treats absent registrations as explicit non-matches rather than successes, preserves existing SVG bindings, and refuses to invent new semantic symbol assignments. It still omits overwrite/destructive behavior on output_path and any permission or failure-mode details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action, with no filler. The phrasing is terse and somewhat gnomic ("An absent registration stays explicit"), but each sentence carries a distinct behavioral point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need no explanation, and the preservation semantics are covered. But for a five-parameter build/conversion tool with no annotations, the description leaves input roles (project vs. OSM data vs. output path) and workspace preconditions unstated, which an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 five undocumented parameters, and it does not. It never mentions project_path, osm_data, output_path, standalone, or matching_context_path, leaving their meaning and required-ness entirely to the bare titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Build a new offline QGIS review") and adds scope ("preserve matched or uncorrected identity"). The "build/create" framing implicitly distinguishes it from verify_qgis_review and start_review_server, though it stops short of naming those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives named. The agent can infer this is the creation step preceding verify_qgis_review, but nothing in the text states the ordering or selection conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_source_svg_deliveryB

Apply hash-bound source-instance SVGs to a new canonical review package.

This preserves CAD database bytes and produces candidate review projects; it does not accept a semantic interpretation or an OSM matching revision.

NameRequiredDescriptionDefault
assets_dirYes
output_dirYes
baseline_dirYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It adds useful behavioral context by stating that CAD database bytes are preserved and that the output consists of candidate review projects, but it does not cover write behavior, output directory handling, permissions, or whether existing outputs are overwritten.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tightly written sentences with the main action front-loaded. The second sentence adds meaningful scope and exclusion details without wasteful repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, the tool requires three directory parameters with zero schema descriptions and has no annotations, and the description does not explain how those directories relate to the build process.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 undocumented parameters. It references SVGs and a review package, which hints at the roles of assets and output, but it does not explain baseline_dir, assets_dir, or output_dir directly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: apply hash-bound source-instance SVGs to a new canonical review package. It also clarifies that the tool does not accept semantic interpretations or OSM matching revisions, which helps separate it from some sibling tools. However, it does not explicitly distinguish itself from other review/package builders in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a negative usage condition by saying what the tool does not accept, implying it should be used when working from hash-bound source-instance SVGs. It does not provide explicit when-to-use guidance or name the alternative sibling tools for review/package creation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

call_cad_bundle_toolC

Call an allowed CAD tool on a workspace copy, preserving source and old revisions.

NameRequiredDescriptionDefault
argumentsYes
tool_nameYes
workspace_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses that execution happens on a workspace copy and preserves the source and old revisions, which signals a non-destructive-to-source operation. However, it does not explain what 'allowed' means, permission requirements, failure behavior, or the lifecycle of the workspace copy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words. It is concise, though for a tool of this complexity the brevity contributes to under-specification; still, from a conciseness standpoint it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex: it invokes arbitrary CAD tools with a nested arguments object, has no annotations, and has many siblings. The one-sentence description omits prerequisite workflow, parameter details, and behavioral edge cases, so it is incomplete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 all three required parameters. It indirectly maps 'workspace copy' to workspace_id and 'allowed CAD tool' to tool_name, but says nothing about the nested 'arguments' object, leaving its structure and constraints undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Call') and resource ('allowed CAD tool on a workspace copy') and adds a scoping detail ('preserving source and old revisions'). It does not explicitly differentiate from siblings such as list_cad_bundle_tools or prepare_cad_bundle_workspace, so it earns 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., preparing a workspace), and no mention of related tools like list_cad_bundle_tools to discover allowed tools. The description only implies usage through its verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_compile_jobB

Durably cancel a compile job and fence its worker from publishing a result.

NameRequiredDescriptionDefault
job_idYes
semantic_storeYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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 meaningful traits: the cancellation is durable (persisted, not best-effort) and it fences the worker so no result is published. It does not say whether the call is idempotent, what happens if the job already completed, or what authorization is required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the core action leads and the fencing consequence follows. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values need not be explained, and the fencing/durability semantics are a real addition. But with zero annotation coverage and zero schema description coverage, the definition leaves parameter meaning and error/idempotency behavior undocumented for a state-mutating tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for both required parameters, and the description never mentions job_id or semantic_store. Their names are largely self-explanatory, but nothing clarifies format, scope, or whether semantic_store must match the job's originating store.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('cancel a compile job') plus the collateral effect on the worker. It is clearly distinguishable from compile_semantic_revision and reconcile_compile_jobs by verb alone, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no preconditions (e.g. job must be pending/running), and no mention of alternatives such as reconcile_compile_jobs for cleaning up already-finished jobs. The only usage signal is the implicit 'cancel things you want cancelled'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

commit_semantic_patchB

Atomically commit a validated semantic patch with revision CAS and idempotency.

NameRequiredDescriptionDefault
patchYes
source_runYes
preview_hashYes
semantic_storeYes
idempotency_keyYes
prepare_manifestYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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 disclose important behavior beyond the name: atomicity, revision CAS, and idempotency. Still, it does not explain what happens when CAS fails, how idempotency keys are scoped, or what permissions are required, leaving meaningful operational gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single front-loaded sentence with no filler. Every term (atomically, validated, CAS, idempotency) is substantive, and the key mutation behavior is stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex mutation with six required parameters, nested object input, and no annotations. The description gives useful high-level traits but omits prerequisites, parameter meanings, and failure behavior. An output schema exists, so return values need not be explained, but the calling contract remains under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for six required parameters, so the description must carry the burden. It only vaguely gestures at 'patch' and 'idempotency' and implies a revision through 'CAS,' but it never explains source_run, prepare_manifest, semantic_store, or preview_hash. The parameter semantics are insufficient for a correctly formed call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'commit a validated semantic patch.' It adds meaningful qualifiers ('atomically,' 'revision CAS,' 'idempotency'), so an agent can tell it apart from read-only or preparation siblings. However, it does not explicitly name preview_semantic_patch or compile_semantic_revision as alternatives, so it falls short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 preview_semantic_patch or other semantic-store operations. The word 'validated' implies a prerequisite but does not state what validation must occur first, nor does it describe when not to use the tool. Usage is only inferable from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compile_semantic_revisionC

Compile an immutable source-coordinate semantic candidate, without auto promotion.

NameRequiredDescriptionDefault
revisionYes
output_dirYes
source_runYes
retry_failedNo
semantic_storeYes
idempotency_keyYes
prepare_manifestYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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 immutability and the absence of auto promotion, but says nothing about side effects, whether output_dir is written, permissions, failure/retry semantics, or why an idempotency_key is mandatory for a 7-parameter operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the scoping qualifier 'without auto promotion' is well placed. The terseness is a completeness problem rather than a conciseness one.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values, so that need not be described. But for a complex 7-parameter, 6-required mutation with no annotations, zero schema descriptions, and an idempotency requirement, one sentence of jargon-heavy prose is far from sufficient context to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 and it does not: revision, source_run, prepare_manifest, semantic_store, output_dir, idempotency_key, and retry_failed are never explained. Only the parameter names themselves carry any meaning, leaving key semantics such as idempotency behavior and retry_failed scope undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'compile' and object 'semantic candidate' give a recognizable action, and 'without auto promotion' hints at how it differs from commit_semantic_patch. However, 'immutable source-coordinate semantic candidate' is undefined jargon, so an agent cannot confidently tell what artifact is produced without consulting sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternative among the many semantic siblings (prepare_semantic_batches, preview_semantic_patch, commit_semantic_patch, initialize_semantic_store). 'Without auto promotion' weakly implies the candidate must be promoted later, but the agent must infer that workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_decision_packC

Create a typed pack from ID-only proposals and validate it locally.

NameRequiredDescriptionDefault
proposerYes
policy_idYes
graph_pathYes
operationsYes
output_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

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 local validation, which is useful, but does not disclose side effects such as writing to output_path, overwrite behavior, required permissions, or what happens on validation failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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, though its brevity leaves important gaps that are better scored under completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has five required parameters, nested objects, no annotations, and no schema descriptions. While an output schema exists to explain returns, the description does not provide enough input semantics or behavioral context for an agent to invoke this complex mutation correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five required parameters have 0% schema description coverage, and two are nested objects. The description does not explain graph_path, policy_id, proposer, operations structure, or output_path, leaving the agent with essentially no semantic guidance beyond the parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Create) and resource (typed pack) and says it validates locally. However, 'typed pack' and 'ID-only proposals' are vague, and it does not clearly distinguish the tool from the sibling validate_decision_pack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 instead of validate_decision_pack or other siblings. The only implied usage is that it creates a pack and validates it locally, with no prerequisites or exclusions stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_scene_interpretation_planC

Bind host-AI scene-role rankings to immutable graph and visual hashes.

NameRequiredDescriptionDefault
producerNo
graph_pathYes
assignmentsYes
output_pathNo
visual_manifest_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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 write/create operation and hints at immutability via 'immutable graph and visual hashes', but it does not state that a plan file is produced, where output_path writes, whether existing files are overwritten, what inputs must pre-exist, or any failure/side-effect behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and free of filler, but it is too terse for a 5-parameter creation tool with no annotations. Conciseness is not the problem; under-specification is.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations, a 0% schema description coverage, and a create-style operation, the description is not complete enough. It omits prerequisites, plan artifact semantics, validation relationship, output behavior, and most parameter meanings, even though an output schema covers the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters. The description loosely gestures at graph_path and visual_manifest_path ('graph and visual hashes') and assignments ('scene-role rankings'), but it does not explain the format, required contents, producer semantics, or the output_path default. Two parameters are entirely unaddressed and the mapped ones remain ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation ('Bind ... rankings to ... hashes'), but it is heavily jargon-laden and never says that it creates a scene interpretation plan artifact or how it differs from the sibling validate_scene_interpretation_plan. An agent can infer the broad intent, but the core resource ('plan') is only available from the tool name, not the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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., needing an existing graph, visual manifest, or prior scene-role ranking step), and no mention of the sibling validation tool or any alternative. The agent is left to infer the entire workflow context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

debug_mcpC

Inspect identity/runtime, or artifacts/query for an EXISTING run; project config directories are not run_dir.

NameRequiredDescriptionDefault
scopeNoidentity
run_dirNo
graph_pathNo
expected_identityNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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 only discloses the existing-run constraint and a run_dir caveat. It does not explicitly confirm read-only behavior, permissions, side effects, or what inspection entails beyond the scope labels.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is a single compact sentence with no filler, and the most important constraint (EXISTING run) is front-loaded. Its brevity borders on cryptic, but it does not waste space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but the tool still has four parameters at 0% schema coverage and no annotations. The description leaves graph_path, expected_identity, and core safety expectations unexplained, making it incomplete for an agent to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 all four parameters. It maps the scope values loosely to the enum and cautions that config directories are not run_dir, but it says nothing about graph_path or expected_identity, leaving half the parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Inspect') and names the resources/scopes (identity, runtime, artifacts, query) tied to an existing run. It is clear what the tool does, but it does not differentiate itself from nearby siblings such as inspect_run, audit_run, or get_runtime_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is for an EXISTING run and warns that project config directories are not run_dir, which gives some usage context. However, it never states when to choose this tool over siblings or when not to use it beyond that single path caveat.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decide_iteration_candidateC

Accept/reject/revise a gated candidate; accept needs user confirmation.

NameRequiredDescriptionDefault
verdictYes
rationaleYes
candidate_idYes
session_pathYes
user_confirmedNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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 at a gated workflow and a confirmation prerequisite, but says nothing about side effects, whether a decision is reversible, what state changes on accept vs reject, or whether a prior evaluation must exist. For a state-mutating decision 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the action front-loaded and the prerequisite second; nothing is wasted. It is efficient, though the terseness contributes to the gaps flagged in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required. But with 5 undocumented parameters, no annotations, and a vague notion of 'gated candidate', the agent lacks enough to call this correctly or know the workflow preconditions around the decision.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters. The description implicitly explains the verdict values (accept/reject/revise) and ties accept to user_confirmed, but session_path, candidate_id, and rationale are entirely undefined in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'decide' plus the three verdict actions (accept/reject/revise) make the operation legible, but the object is only described as a 'gated candidate', which is undefined. Nothing distinguishes it from the sibling evaluate_iteration_candidate, which an agent could easily mistake for the decision step itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'accept needs user confirmation' is a genuine usage precondition that tells the agent not to accept unilaterally. However, there is no guidance on when to pick this over evaluate_iteration_candidate, record_iteration_feedback, or prepare_iteration_context, and no when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_iteration_candidateC

Gate a new run against the active run without promoting it.

NameRequiredDescriptionDefault
session_pathYes
change_summaryYes
candidate_run_dirYes
changed_artifactsNo
addressed_feedback_idsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior2/5

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 add one useful trait — the operation does not promote the candidate — but it never says whether evaluation is persisted, whether it mutates session state, what happens to prior feedback, or what prerequisites (e.g. an active run must exist) 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with the key constraint ("without promoting it") front-loaded and no wasted words. Its brevity is achieved through under-specification rather than disciplined compression, so it is efficient but not adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The presence of an output schema relieves the description of explaining return values, but for a 4-required-parameter workflow tool with zero annotation and zero schema-description coverage, the description is far too thin. It omits the meaning of gating, the workflow position relative to decide_iteration_candidate, and any prerequisite or side-effect information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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 provides no meaning for session_path, candidate_run_dir, addressed_feedback_ids, change_summary, or changed_artifacts. An agent must guess the expected format of paths, whether run dirs are relative, and how feedback IDs are sourced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Gate a new run against the active run without promoting it" names the verb (gate/evaluate) and the resource (a candidate run vs. the active run), which is more specific than the tool name alone. However, "gate" is domain jargon and the description never explains what gating produces (a verdict? a score? recorded evidence?), and it does not explicitly distinguish itself from sibling decide_iteration_candidate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 decide_iteration_candidate, record_iteration_feedback, prepare_iteration_context, or inspect_iteration, all of which sit in the same iteration workflow. The only implied guidance is the parenthetical "without promoting it," which hints at a pre-decision step but leaves the ordering of the workflow to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_iteration_learningC

Export accepted lessons as source-bound onboarding suggestions.

NameRequiredDescriptionDefault
output_pathYes
session_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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. 'Export' implies writing to output_path, but the description does not state whether existing files are overwritten, what permissions are required, what format the exported suggestions take, or what side effects occur. For a file-producing export 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded with the action and contains no filler. It is appropriately sized for a description, though its brevity leaves important behavioral and parameter gaps that are not addressed elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value details need not be explained. However, the description does not clarify where accepted lessons come from, what 'source-bound onboarding suggestions' actually are, how the output file is written, or how this tool fits into the iteration and onboarding workflow. For a two-path export tool with no annotations and no documented parameters, it is not complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both required parameters, session_path and output_path, have 0% schema description coverage, and the description never mentions them. It does not explain the difference between the session source and the output destination, nor what a valid session path represents. The phrase 'source-bound' gives only a marginal hint and does not compensate for the missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and transformation: 'Export accepted lessons as source-bound onboarding suggestions.' This is clearer than a tautology and distinguishes the tool's output from siblings like record_iteration_feedback or prepare_ai_onboarding. However, it does not explicitly name alternatives or clarify what 'source-bound' means, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 related siblings such as record_iteration_feedback, evaluate_iteration_candidate, or prepare_ai_onboarding. The usage is only implied by the name and description; no prerequisites, exclusions, or alternative conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_sourceC

Create a new immutable CAD snapshot; omit CRS unless authoritative evidence exists.

NameRequiredDescriptionDefault
sourceYes
run_dirYes
source_crsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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 an immutable snapshot and includes a CRS-evidence caution, but it does not explain permissions, overwrite behavior, run_dir effects, or other mutation semantics beyond immutability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted wording. Its brevity is efficient, though it also leaves important gaps that are better captured under contextual completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool creates a persistent artifact and requires source and run_dir, but the description does not explain those required inputs or when the operation is appropriate. Output schema presence reduces the need to describe return values, but the mutation and parameter semantics remain substantially incomplete for a no-annotation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 3 parameters, so the description must compensate. It adds valuable nuance for source_crs but leaves the required source and run_dir parameters completely unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: "Create a new immutable CAD snapshot." That is clear enough to understand the operation, but it does not distinguish this tool from related siblings such as inspect_source, run_conversion, or package_qgis_delivery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is a parameter-level caution: "omit CRS unless authoritative evidence exists." It does not state when to use export_source versus inspect_source, run_conversion, or other sibling tools, nor does it give prerequisites or exclusions for invoking it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cad_bundle_statusA

Inspect the optional pinned CAD sidecar without downloading or starting it.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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 a meaningful non-side-effect trait: inspection occurs without downloading or starting the sidecar. It does not mention permissions, caching, or other operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 states the core action and the key non-side-effect constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters and an output schema, so return values need not be described in detail. The description is nearly complete for a simple inspection tool, though it could better distinguish itself from closely related sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to explain. The baseline for a zero-parameter tool is 4, and nothing in the description undermines that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ("Inspect") and resource ("optional pinned CAD sidecar") and clarifies it does not download or start the sidecar. This distinguishes it from preparation or execution siblings, though it does not explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "without downloading or starting it" implies a read-only status check, which gives useful contextual guidance. However, it does not explicitly state when to choose this over siblings like get_runtime_status or prepare_cad_bundle_workspace.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cad_scene_nodeC

Read one exact pre-semantic node with its source-bound facts.

NameRequiredDescriptionDefault
node_idYes
graph_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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. 'Read' implies a non-mutating operation and 'source-bound facts' hints at provenance, but it omits error behavior, permission requirements, and what 'pre-semantic' means.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler, so it is structurally efficient. However, brevity comes at a cost: 'pre-semantic' and 'source-bound' are unexplained jargon, leaving the sentence cryptic rather than fully earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists to cover return values, the lack of annotations, 0% parameter coverage, and two required parameters leave too much unspecified for reliable invocation. The description does not explain how to construct a valid call or what a 'pre-semantic node' represents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and neither required parameter, graph_path nor node_id, is mentioned in the description. The phrase 'one exact ... node' weakly implies a node identifier, but no semantics are given for either parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read') and singular resource ('one exact pre-semantic node'), adding a hint about return content ('source-bound facts'). It is clear enough to identify the operation, but it does not explicitly distinguish itself from siblings like list_cad_scene_nodes or get_evidence_node.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 list_cad_scene_nodes, nor any stated prerequisites or exclusions. The singular 'one exact' node implies lookup by an identifier, but that 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.

get_capabilitiesC

Describe the stable CAD2GIS protocol and accuracy boundaries.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. "Describe" implies a read-only, informational call, but the description never confirms there are no side effects, doesn't note whether the returned protocol definition is versioned or environment-dependent, and says nothing about auth or caching. With an output schema present it needn't enumerate return values, but the behavioral profile is largely unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler, and the core noun phrase is front-loaded. It is arguably too terse rather than padded, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and there are no parameters, which lowers the burden, but the description still leaves an agent unsure what class of information "capabilities" covers and how it differs from the adjacent status tools in this large sibling set. 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.

Parameters4/5

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 explain; the baseline of 4 applies. Nothing in the description misdescribes inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a verb ("Describe") and an object ("stable CAD2GIS protocol and accuracy boundaries"), but "stable CAD2GIS protocol" is unexplained jargon and the tool's real role—reporting runtime/protocol capabilities—is only implicit. It does not distinguish itself from nearby capability/status siblings such as get_runtime_status or get_cad_bundle_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when an agent should call this versus get_runtime_status, get_cad_bundle_status, or inspect_runtime. It states content but not the triggering condition or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_entity_context_batchC

Read bounded source or instance facts for observed IDs without changing them.

NameRequiredDescriptionDefault
viewNosource
cursorNo
fieldsNo
run_dirYes
max_bytesNo
timeout_msNo
entity_keysYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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 'without changing them', which usefully signals non-mutation, and 'bounded' hints at resource limits, but it omits pagination behavior, error handling, permissions, and the meaning of timeout/max_bytes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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 efficient, though it contributes to the under-specification captured in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a seven-parameter batch-read tool with no annotations and 0% schema description coverage, the description is too thin. Even though an output schema exists, an agent lacks enough context to understand required inputs, optional controls, or when to choose this tool over siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for seven parameters. The description only loosely gestures at entity_keys via 'observed IDs', view via 'source or instance', and max_bytes/timeout_ms via 'bounded', leaving run_dir, cursor, fields, and the rest undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a read operation over 'source or instance facts' for 'observed IDs', but the resource type is abstract and it does not distinguish this tool from siblings like query_source_entities or get_evidence_node. The verb is clear, but the scope remains vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides no explicit when-to-use guidance, no exclusions, and no named alternatives. The only contextual clue is 'for observed IDs', which is not enough to route an agent among the many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_evidence_nodeC

Read one exact evidence node, including immutable reader facts.

NameRequiredDescriptionDefault
node_idYes
graph_pathYes
allow_standaloneNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Immutable reader facts' hints that the read is side-effect-free and the data fixed, but it says nothing about behavior when the node is missing, permission or graph-state requirements, or what allow_standalone changes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short, front-loaded sentence with no filler. It is efficient, but the brevity is closer to under-specification than to disciplined economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, but with zero annotation coverage and 0% parameter coverage the description should compensate and does not. The agent is left without the graph scoping and standalone-flag semantics needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across three parameters (graph_path, node_id, allow_standalone), and the description explains none of them. Only a loose mapping between 'evidence node' and node_id can be inferred; the meaning and effect of allow_standalone is completely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Read') and resource ('one exact evidence node'), and the word 'exact' signals single-node retrieval as opposed to the sibling list_evidence_nodes, which it never names. An agent can infer the purpose without opening the schema, though the sibling contrast is only implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no mention of the obvious alternative, list_evidence_nodes. The singular 'one exact' hints at the distinction but leaves the agent to infer when to fetch a single node versus enumerate them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_review_server_statusC

Verify a service owned by this MCP process; never discover or adopt another listener.

NameRequiredDescriptionDefault
session_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior3/5

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 an important ownership/security boundary: only verify a service owned by this MCP process and never adopt another listener. However, it omits whether the operation is read-only, what happens when the session is unknown, and other basic behavioral traits for a status-check tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, but it is not front-loaded with a clear statement of what the tool does. The most informative part is the trailing constraint rather than the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists and reduces the need to explain return values, the description still leaves the core action and the required session_id undocumented. For a tool with no annotations and 0% parameter coverage, this is not complete enough for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one required parameter, session_id, with 0% schema description coverage, and the description does not mention it at all. With the schema providing no semantic detail, the description fails to compensate for the parameter documentation gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says to 'Verify a service owned by this MCP process,' but it never states that this is the review server status tool or what 'verify' actually returns. The resource is referred to only as 'a service,' so the purpose remains vague despite 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a negative constraint ('never discover or adopt another listener') but gives no guidance on when to call this versus siblings like start_review_server, stop_review_server, or get_runtime_status. The description does not state prerequisites or appropriate contexts for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_runtime_statusC

Report portable reader and GIS runtime readiness.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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. 'Report' implies a read-only operation, but the description does not state side effects, whether any runtime probing or installation occurs, what 'readiness' means operationally, or what evidence it uses. The output schema helps with return values but not with behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is efficient, though its brevity contributes directly to the under-specification noted elsewhere rather than being a model of compact clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values, and a zero-parameter read-only status tool has limited surface area. Still, the description does not explain what 'portable reader' and 'GIS runtime readiness' mean or how this differs from install_runtime/get_capabilities, leaving the agent with an incomplete mental model for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is the baseline-4 case. There is nothing for the description to add semantically, and the empty schema is consistent with a parameterless status report.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Report' and the object 'readiness' are identifiable, but 'portable reader and GIS runtime' is opaque jargon that doesn't map cleanly to any sibling tool's domain. It does not distinguish itself from nearby status tools like get_capabilities, get_cad_bundle_status, or inspect_run, so an agent cannot confidently pick it 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.

Usage Guidelines2/5

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 named alternative. The agent is left to infer that this is a health/readiness check versus get_capabilities or install_runtime 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_scene_visual_region_contextC

Read one visual region's CAD facts without sending all drawing nodes.

NameRequiredDescriptionDefault
limitNo
cursorNo
region_idYes
manifest_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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. 'Read' implies a safe read, but there is no mention of permissions, whether results are paginated despite limit/cursor params, or what 'CAD facts' actually includes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words, but the brevity is achieved by omitting information the agent needs, making it under-specified rather than truly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return shape needn't be explained, but with four undocumented parameters, no annotations, and no guidance on pagination or region identity, the description leaves significant gaps for a tool that requires two identifiers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters (manifest_path, region_id, limit, cursor) have 0% schema description coverage and the description adds no meaning for any of them — no format for manifest_path, no notion of what region_id refers to, no explanation of pagination semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: read one visual region's CAD facts. The word 'one' implicitly distinguishes it from the listing siblings (list_visual_regions, list_scene_visual_regions), though no sibling is named directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without sending all drawing nodes' hints at the efficiency rationale for using this over a bulk scene fetch, but it never says when to prefer it over list_scene_visual_regions or get_cad_scene_node, nor what prerequisites exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

initialize_semantic_storeC

Initialize a durable revision ledger bound to a verified source and candidate set.

NameRequiredDescriptionDefault
source_runYes
semantic_storeYes
prepare_manifestYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden. It discloses that the ledger is 'durable' and bound to a verified source and candidate set, but it does not explain mutation effects, whether it overwrites an existing store, required permissions, or what happens if the semantic store 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It is efficiently structured, though given the tool's complexity and undocumented parameters it may be too terse to be fully useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, for an initialization tool with three required but undocumented parameters and no annotations, the description is missing critical context about prerequisites, side effects, and parameter meanings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three required parameters (source_run, prepare_manifest, semantic_store) have 0% schema description coverage and are not explained in the description. The phrase 'bound to a verified source and candidate set' offers only vague hints for source_run and prepare_manifest, leaving their formats and roles unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Initialize') and resource ('durable revision ledger'), and implies binding to a verified source and candidate set. It is clear enough to distinguish from siblings like inspect_semantic_store or commit_semantic_patch, though it does not 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.

Usage Guidelines2/5

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 initialization tool versus alternatives such as prepare_semantic_batches or inspect_semantic_store. The phrase 'bound to a verified source' hints at a prerequisite, but it does not state when-not to use it or how it fits into a workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_iterationB

Inspect iteration state, budget, pending decisions, and the next action.

NameRequiredDescriptionDefault
session_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral load. 'Inspect' implies a read-only, non-mutating call, and the output schema covers the return shape, but the text says nothing about permissions, whether inspecting consumes or advances iteration budget, or whether any state is written.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that lists the four things returned with zero filler. It is well-sized, though it spends its whole budget on payload contents rather than routing context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose. However, for a tool whose sole parameter is undocumented in both schema and description, and with no annotations to convey safety, the definition leaves real gaps an agent must guess at.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one required parameter, session_path, with 0% schema description coverage, and the description never mentions it. The agent gets no hint about whether it is a filesystem path, a session identifier, or what form is expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('inspect') applied to a specific resource ('iteration'), and enumerates what is surfaced: state, budget, pending decisions, next action. It is clearly distinguishable from mutation siblings like record_iteration_feedback and decide_iteration_candidate, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'the next action' hints that this is a pre-decision orientation call, but there is no explicit when-to-use statement, no prerequisites, and no named alternative (e.g., inspect_run, get_runtime_status) that an agent should pick instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_runB

Return the immutable manifest summary for one conversion run.

NameRequiredDescriptionDefault
run_dirYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the whole behavioral burden. 'Immutable' and 'summary' do usefully signal a read-only, non-mutating operation that returns a condensed view rather than raw manifest data, but nothing is said about failure behavior for a bad run_dir, permissions, or size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with no filler; the operation and its scope are stated immediately. Brevity is achieved without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required. However, for a tool whose only input is opaque, the missing run_dir semantics and absent sibling routing leave real gaps an agent would hit when calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single parameter run_dir is undocumented in both schema and description. The description never says whether run_dir is a filesystem path, an ID, or a relative directory, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Return') and resource ('immutable manifest summary for one conversion run'), which is clearly distinct from siblings like audit_run or inspect_iteration. It stops short of naming which sibling to prefer, leaving the boundary with audit_run implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 audit_run, inspect_iteration, or inspect_source, and no prerequisites stated. The agent must infer usage from the name and one-line purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_semantic_storeC

Read the authoritative semantic revision and optional durable compile job state.

NameRequiredDescriptionDefault
job_idNo
semantic_storeYes
idempotency_keyNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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. 'Read' signals a non-mutating operation, but the description does not state permissions, side effects, error behavior, or what 'authoritative' implies in practice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. Its density is concise but borders on under-specification for a tool with three parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, with no annotations, 0% schema description coverage, and many closely related semantic-store tools, the description is not complete enough to tell an agent how to invoke it correctly or distinguish it from alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 three undocumented parameters. It only vaguely hints at optional compile job state and does not explain semantic_store, job_id, or idempotency_key.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Read', and names the resource as the authoritative semantic revision plus optional durable compile job state. This distinguishes it from mutation/compile siblings in the semantic-store group, though it does not explicitly name an alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 inspect_source, initialize_semantic_store, compile_semantic_revision, cancel_compile_job, reconcile_compile_jobs, or other semantic-store siblings. Preconditions and exclusions are unstated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_sourceB

Read and summarize a new DWG without reusing another source's mapping.

NameRequiredDescriptionDefault
sourceYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral details itself. It says "Read and summarize" and hints at mapping isolation, but it does not explain whether it creates or stores a mapping, what permissions are required, or whether the operation has 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. The key action and the mapping-isolation constraint are stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, with one required parameter and an output schema, and the description gives its core purpose plus a mapping constraint. Still, with no annotations and no parameter documentation, it leaves meaningful gaps about how to invoke it and how it differs from related source-inspection tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required "source" parameter. The description implies the source is a new DWG, but it does not state whether the argument is a path, file name, identifier, or another form, so it only minimally compensates for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Read and summarize a new DWG." This distinguishes it from mutation or delivery tools, but it does not explicitly name the sibling alternative such as export_source or query_source_entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrases "new DWG" and "without reusing another source's mapping" imply this is for fresh sources with isolated mapping, giving some usage context. However, it does not state when not to use it or name the alternative tool for existing or mapped sources.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

install_runtimeB

Install the checksum-pinned portable LibreDWG runtime.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. "Checksum-pinned" and "portable" add useful integrity/portability context, but it does not disclose whether installation downloads files, needs network/admin permissions, is idempotent, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. Every phrase contributes to identifying the installed artifact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values need not be explained, and the empty parameter set makes invocation simple. However, for an install/mutation tool with no annotations, the description should say more about prerequisites, side effects, or when to use it relative to get_runtime_status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there are no parameter semantics to document. The empty schema is self-evident, and the description does not need to add parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: "Install" plus "portable LibreDWG runtime." It is clearly distinguishable from get_runtime_status by action, but it does not explicitly name or differentiate the sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides no guidance on when to install versus checking runtime status first, no prerequisites, and no alternatives. The only usage signal is the implied action of installing a runtime.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_cad_bundle_toolsC

Discover only tested CAD tools and their path-free argument schemas.

NameRequiredDescriptionDefault
workspace_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

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: only 'tested' tools are returned and schemas are path-free. It says nothing about read-only safety, permission requirements, or that results are scoped to workspace_id — gaps that matter for a 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with no filler, and the filtering constraint ('only tested') is front-loaded. It is slightly too terse for the information load, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, but the description omits the required workspace_id scoping and any usage context. For a discovery tool that gates the whole CAD bundle workflow, this leaves the agent under-equipped to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one required parameter (workspace_id) at 0% schema description coverage, and the description never mentions it or explains what a workspace ID selects. The only semantic added, 'path-free argument schemas', describes the output rather than the input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb ('Discover') and resource ('tested CAD tools and their path-free argument schemas'), which goes beyond a bare name restatement. However 'path-free' is unexplained jargon, and the description never says this is a workspace-scoped listing that precedes call_cad_bundle_tool, so the boundary with that sibling is only weakly implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'Discover' hints at pre-call exploration, but there is no explicit when-to-use statement, no mention of call_cad_bundle_tool as the follow-up, and no exclusions. An agent must infer the workflow from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_cad_scene_nodesC

Page through immutable pre-semantic CAD scene nodes.

NameRequiredDescriptionDefault
kindNo
limitNo
cursorNo
graph_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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. It discloses only that nodes are immutable and results are paged; it says nothing about ordering, whether graph snapshots must be freshly built, error behavior for bad cursors, or the significance of the kind filter. Two traits are hinted at, but key operational behavior is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and wastes no words, but it is a fragment that is terse to the point of under-specification rather than genuinely concise. Structure is fine; content density is too low for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, a four-parameter, unannotated listing tool with a required graph path and a kind filter needs more prose than this one phrase to be callable safely and correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 largely does not. 'Page through' hints at cursor/limit, but graph_path (the sole required parameter), kind, and the integer cursor format are never explained in prose beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'page through' and resource 'CAD scene nodes' give a clear core action, but 'immutable pre-semantic' is internal jargon an agent may not interpret, and there is no explicit differentiation from the sibling get_cad_scene_node. The purpose is inferable but not crisp.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 listing tool versus get_cad_scene_node or list_scene_visual_regions, nor any prerequisites such as when graph_path must come from a prior export step. It implies listing but not the conditions that select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_endpoint_join_candidatesC

List source-derived endpoint pair IDs selectable by a decision pack.

NameRequiredDescriptionDefault
graph_pathYes
left_feature_node_idYes
right_feature_node_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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 only implies a read operation via 'List' and says nothing about permissions, pagination, ordering, or what happens if the node IDs are invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It is compact, though its terseness comes at the cost of clarity for unfamiliar terms.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description does not compensate for the absence of annotations and the 0% parameter documentation. For a tool requiring three specific path/node identifiers, an agent needs more context to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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 three required parameters (graph_path, left_feature_node_id, right_feature_node_id). Even the left/right pairing is only vaguely implied by 'endpoint pair IDs', leaving the agent without guidance on what each parameter means.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It uses a specific verb (List) and names the resource (source-derived endpoint pair IDs) plus a condition (selectable by a decision pack). This is clear enough to distinguish from siblings like list_network_repair_candidates or list_label_candidates, though the jargon 'source-derived' and 'decision pack' could be clearer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, no prerequisites, and no exclusions. The phrase 'selectable by a decision pack' hints at context but does not tell an agent when this list should be called.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_evidence_nodesC

Page through source-bound evidence nodes without changing any facts.

NameRequiredDescriptionDefault
kindNo
limitNo
cursorNo
graph_pathYes
allow_standaloneNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and 'without changing any facts' does usefully disclose that this is a non-mutating read. But it says nothing about pagination semantics, the meaning of cursor/limit beyond the words themselves, or any permission requirements, leaving significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the read-only constraint is stated efficiently. It is short to the point of sparseness, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with zero schema documentation and no annotations, one sentence is insufficient. The output schema covers return values, but the description leaves parameter meaning, pagination behavior, and usage context largely unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across five parameters (kind, limit, cursor, graph_path, allow_standalone), and the description explains none of them. 'Page through' faintly gestures at limit/cursor but gives no format, default, or semantics for the required graph_path or the filtering role of kind/allow_standalone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs the verb 'Page through' with the specific resource 'source-bound evidence nodes', making the list semantics clear and implicitly distinguishing it from the singular get_evidence_node sibling. However, it never names or contrasts the sibling explicitly, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 get_evidence_node or the other list_* siblings, nor any preconditions or exclusions. The only hint is 'Page through,' which weakly implies bulk retrieval of multiple nodes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_label_candidatesC

List advisory, distance-ranked labels without changing source facts.

NameRequiredDescriptionDefault
graph_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the burden. It does assert a key behavioral trait — advisory output and no mutation of source facts — which tells the agent this is a safe read. However it says nothing about how distance is computed, cost/size of the result, or whether any prerequisites (an initialized semantic store) 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with no filler; the read-only guarantee comes last where it is easy to scan. Brevity here flirts with under-specification rather than padding, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values are covered, but the description leaves the required graph_path unexplained and gives no selection guidance among a large set of similarly named candidate-listing siblings. For a tool with zero annotation coverage, that leaves too much to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter graph_path has 0% schema description coverage and is not mentioned at all in the description. With coverage this low the description must compensate, and it does not say what a graph path refers to or how to obtain one.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('List ... labels') with two distinguishing qualifiers: 'advisory' and 'distance-ranked'. It does separate itself from directionally similar siblings such as list_legend_catalog_candidates by the ranking claim, but it never explains what a 'label candidate' is versus those other candidate lists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to call this instead of query_source_entities, list_legend_catalog_candidates, or the other list_*_candidates siblings. The agent must infer the trigger condition entirely from the phrase 'advisory, distance-ranked'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_legend_catalog_candidatesC

List advisory legend/symbol-sample groups from source-bound facts.

NameRequiredDescriptionDefault
graph_pathYes
route_regexNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'List' weakly implies a read, but nothing states whether this is read-only, requires a valid graph path, or has side effects; 'advisory' hints at non-authoritative results but is not explained. With an output schema present, return values need not be described, but safety and prerequisite behavior remain undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no waste, which is structurally fine. But brevity here comes at the cost of clarity: the one sentence is dense with unexplained domain terms rather than earning its place through useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two undocumented parameters, no annotations, and no usage context, the description is insufficient for an agent to call this correctly beyond guessing. The output schema helps with return interpretation, but input and behavioral context are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 mention either graph_path or route_regex. The phrase 'source-bound facts' faintly gestures at a source graph but gives no format, expected values, or regex semantics. An agent must guess what route_regex filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (List) and resource (legend/symbol-sample groups), so the general intent is inferable. However, 'advisory' and 'source-bound facts' are undefined jargon that obscure what these candidates actually are and how they differ from sibling tools like list_label_candidates. It is minimally adequate rather than clearly differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this tool, when not to, or which sibling tools it replaces or complements. With many similarly named list_* candidate tools in the sibling set, the absence of routing 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.

list_network_repair_candidatesC

List graph-bound crossing and collinear candidates for derived repairs.

NameRequiredDescriptionDefault
graph_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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 that the operation is read-only, whether it requires permissions, how results are paginated, or what the candidate records contain, which is a significant gap for a 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence with no wasted words and the key action is front-loaded. Its shortfall is under-specification rather than verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, the description omits the parameter's path semantics, usage context, and any behavioral traits, leaving the tool inadequately documented for an agent encountering it among many similarly named candidate-listing siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter graph_path has 0% schema description coverage, and the description does not mention the parameter, its expected path format, or whether it must reference a specific graph artifact. The parameter name is somewhat self-explanatory, but the description adds no compensating detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a verb ('List') and a resource ('graph-bound crossing and collinear candidates'), but 'derived repairs' is undefined jargon, so an agent cannot confidently distinguish this from sibling candidate-listing tools such as list_endpoint_join_candidates or list_legend_catalog_candidates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 tools are alternatives. The description merely states what is listed, leaving the agent to infer the context in which this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_registered_operationsB

Describe the only repair operations a model may propose.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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 one meaningful behavioral fact — that the returned set is exhaustive and policy-bounded ('the only ... a model may propose') — but it says nothing about whether the set is static, read-only, or how it should be consumed downstream.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no wasted words, and the key constraint is front-loaded. It loses a point only because the brevity shades into vagueness rather than precision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-argument, read-only listing tool with an output schema, the description is minimally sufficient — the return shape is covered elsewhere. What is absent is any anchoring of 'repair operations' to the surrounding CAD/review workflow or guidance on acting on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 disambiguate. No param-level detail is required or missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says it enumerates the repair operations a model may propose, which is a specific resource, but the verb 'Describe' is soft and the scope ('repair operations') is never grounded in a system or artifact. It does not distinguish itself from nearby catalogue-style siblings such as list_cad_bundle_tools or list_network_repair_candidates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the word 'only' tells an agent this is the authoritative allowlist to consult before proposing a repair, but there is no explicit when-to-call, no exclusion, and no named alternative among the many list_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_scene_visual_regionsC

Page through layout-aware visual regions bound to a CAD Scene Graph.

NameRequiredDescriptionDefault
limitNo
cursorNo
layoutNo
manifest_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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 pagination ('page through') but says nothing about read-only nature, what a page contains, ordering, or behavior at end of results. An output schema exists, which relieves some return-value burden, but the behavioral profile of the call is essentially undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no filler, which is structurally fine. But the brevity comes at the cost of under-specification rather than efficiency – there is room to add routing and parameter context without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with zero schema coverage and no annotations, one sentence is not enough. The output schema covers return shape, but an agent still lacks the manifest_path contract, paging semantics, and a reason to prefer this over list_visual_regions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 and largely does not. 'Layout-aware' weakly hints at the layout parameter, but manifest_path (the sole required field), limit, and cursor are given no meaning beyond their names and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb ('page through') and resource ('visual regions') qualified by 'layout-aware' and 'bound to a CAD Scene Graph', which distinguishes it somewhat from the sibling list_visual_regions. However, it never explicitly distinguishes itself from list_visual_regions or get_scene_visual_region_context, so the agent must infer which of the near-identical listing tools applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use condition, no prerequisites, and no mention of the obvious alternatives (list_visual_regions, get_scene_visual_region_context). The only implied guidance is that it is a paging operation, which the schema already conveys via limit/cursor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_visual_regionsC

List multi-scale render and hit-map artifacts bound to the graph.

NameRequiredDescriptionDefault
graph_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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. 'List' implies a read operation, but nothing states whether it is safe, whether graph_path must be an existing on-disk graph, what errors occur, or what the artifacts look like; the single sentence leaves the behavioral profile essentially unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler. It is efficiently stated, though the terseness contributes to the missing context noted elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, but with zero annotations and a completely undocumented parameter, the description should clarify what the artifacts are and what qualifies a graph. As written, an agent knows only the tool's name-level intent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single parameter graph_path, so the description must compensate. 'Bound to the graph' only loosely hints that graph_path identifies the owning graph; there is no detail on format (file path vs. ID), whether it must already exist, or whether other graphs are scanned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb ('List') and a specific resource ('multi-scale render and hit-map artifacts bound to the graph'), so an agent can tell it enumerates artifacts rather than returning them. It does not distinguish itself from close siblings like list_scene_visual_regions or resolve_visual_hit, and the domain jargon ('hit-map artifacts') is unexplained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus list_scene_visual_regions, get_scene_visual_region_context, or resolve_visual_hit. The agent must infer selection from the name alone, with no exclusions or preconditions stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

package_qgis_deliveryA

Create verified QGZ projects and a complete portable ZIP from an existing run.

Call this when the user requests QGZ or a QGIS package; run_conversion and
prepare_review_workspace do not generate QGZ. Both paths must be inside the
authorized workspace. output_dir and its sibling .zip must be new and outside
the immutable run. Download and extract the complete ZIP: its QGZ projects
require the companion GeoPackages/styles. Verification covers file hashes,
ZIP contents and QGZ references/counts, not an actual QGIS render or surveyed
accuracy. SVG candidates remain candidates and are not automatically applied.
NameRequiredDescriptionDefault
run_dirYes
output_dirYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it discloses workspace authorization constraints, that output_dir and its sibling .zip must be new and outside the immutable run, that the consumer must download and extract the complete ZIP because the QGZ needs companion GeoPackages/styles, and the precise verification boundaries (hashes, ZIP contents, QGZ references/counts — not real QGIS rendering or surveyed accuracy). It also flags that SVG candidates are not auto-applied, which prevents a false expectation of finished output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then usage, then constraints and limits; every sentence conveys a distinct constraint. Slightly dense but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description covers preconditions, side effects, and verification limits well. The main residual gap is per-parameter meaning for a 0%-coverage schema, which would help an agent populate the two required paths correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 establishes that both parameters are paths and that output_dir is the destination whose sibling .zip must be new and outside the run, but it never names run_dir or states it is the existing completed run directory being packaged — that link is only implied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and dual resource (verified QGZ projects plus a portable ZIP) scoped to 'an existing run', and explicitly contrasts with run_conversion and prepare_review_workspace, which do not generate QGZ. An agent can identify this tool 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when the user requests QGZ or a QGIS package') and names two siblings that will not satisfy that request, routing the agent correctly. Nothing about when to select it 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.

prepare_ai_onboardingC

Return source-bound evidence and a strict proposal schema to the host AI.

NameRequiredDescriptionDefault
project_dirYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the output artifacts but does not say whether the operation is read-only, whether it creates or mutates project state, what permissions or project state are required, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It states the action and outputs immediately, and every phrase contributes to the little context it provides.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values do not need full explanation, but the description omits the onboarding workflow context, the relationship to apply_ai_onboarding, and the meaning of project_dir. With no annotations and no parameter descriptions, those omissions leave the agent under-equipped to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter, project_dir, has 0% schema description coverage and is not mentioned in the description. The parameter name is somewhat self-explanatory, but the description adds no meaning about whether it expects a project root, an absolute path, or an existing validated project.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, 'Return', and two concrete outputs: source-bound evidence and a strict proposal schema. It is clearer than a tautology, but it never mentions onboarding or distinguishes this preparation step from siblings like apply_ai_onboarding or auto_onboard_and_convert.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this tool, when not to call it, or which sibling should be used instead. The phrase 'to the host AI' hints at workflow context but does not specify the triggering conditions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_cad_bundle_workspaceC

Create a hash-bound DXF editing copy inside the authorized project roots.

NameRequiredDescriptionDefault
sourceYes
workspaceYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that the copy is hash-bound and restricted to authorized roots, but it does not say whether existing workspaces are overwritten, what permission checks occur, or what failure modes exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It communicates the core action and constraint efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the lack of parameter documentation, usage guidance, and behavioral detail leaves significant gaps for a tool that creates a workspace. An agent cannot confidently determine what inputs to provide or how the tool behaves on conflicts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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 what 'source' or 'workspace' mean, their expected formats, or whether they are paths, identifiers, or root selections. The two required parameters are effectively undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 ('hash-bound DXF editing copy') with a scope constraint ('inside the authorized project roots'). It is clear enough to distinguish from most siblings, but it does not explicitly differentiate this from related workspace tools such as prepare_review_workspace.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when this tool should be used instead of alternatives, nor are prerequisites or sequencing requirements mentioned. An agent must infer usage from the name and the phrase 'authorized project roots' alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_iteration_contextC

Create the constrained evidence/routing pack for the next retry.

NameRequiredDescriptionDefault
session_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Create' implies persistent state or file output, but the description never says what is written, where, whether it overwrites existing artifacts, or whether it requires a prior validated iteration — all critical for a preparation step.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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 comes at the cost of under-specification rather than being genuinely concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values are covered, but with zero annotations, an undocumented required parameter, and no workflow context in a crowded sibling set, the definition leaves the agent without enough information to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter session_path has 0% schema description coverage, and the description does not mention it at all. The agent gets no indication of expected format (filesystem path? session identifier?) or what a valid session_path points to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Create' is clear, but the resource is opaque domain jargon ('constrained evidence/routing pack') that an agent cannot decode without prior knowledge of the workflow. It makes no attempt to distinguish itself from closely related siblings such as inspect_iteration, evaluate_iteration_candidate, or record_iteration_feedback.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for the next retry' hints at timing, but there is no explicit statement of when to call this versus siblings like start_feedback_iteration or inspect_iteration, and no prerequisites or exclusions are given. Usage must be inferred entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_review_workspaceC

Create the separate edit store and return a local review launch command.

NameRequiredDescriptionDefault
portNo
run_dirYes
workspace_dirNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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 largely fails. It implies a write side effect ('create the separate edit store') but does not say where files are written, whether existing stores are overwritten, whether it requires an initialized run, or what the returned launch command is for. Only the barest hint of mutability 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, which is structurally clean. But the sentence is so terse that it omits key qualifying information rather than packing it efficiently, verging on under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers the return value, so that need not be described. Still, for a three-parameter mutation-adjacent setup tool with no annotations and zero schema coverage, the description is far too thin to call correctly — it never explains the required run_dir or the effect of workspace_dir.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, yet it explains none of run_dir, workspace_dir, or port. At best, 'separate edit store' faintly gestures at workspace_dir and 'launch command' at port, but no format, default behavior, or relationship is stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Create' and object 'separate edit store' identify the action, and 'return a local review launch command' hints at output. However, 'edit store' and 'review launch command' are internal jargon with no explanation, and the boundary versus siblings like start_review_server or prepare_cad_bundle_workspace is not made explicit. An agent can guess it is a setup step preceding the review server, but only by inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, prerequisites, or when-not guidance is given. With siblings such as start_review_server, build_qgis_review, and prepare_cad_bundle_workspace present, the description never clarifies which of these should be called first or instead. 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.

prepare_semantic_batchesC

Materialize source-bound semantic candidates in a separate new directory.

NameRequiredDescriptionDefault
output_dirYes
source_runYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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 output goes to a separate new directory (implying the source is untouched), but says nothing about whether the directory must be absent/empty, whether existing files are overwritten, side effects on the semantic store, or permissions/rate considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler, and the key information (what is produced, where it goes) is front-loaded. It is efficiently written; its problem is omission, not verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, but for a mutation-style tool with zero annotation coverage, 0% parameter documentation, and a crowded sibling set of semantic-store tools, this one sentence leaves 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.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so both required parameters (source_run, output_dir) are undocumented in structured data. The description only loosely gestures at them ('source-bound' for source_run, 'separate new directory' for output_dir) without stating expected formats, identifiers, or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb ('materialize') and a resource ('semantic candidates') with a scope modifier ('source-bound') and an output location. However, 'materialize' and 'source-bound' are pipeline jargon, and the description gives no hint of how this differs from close siblings like initialize_semantic_store, inspect_semantic_store, or preview_semantic_patch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 prerequisite state, no mention of what must precede it (e.g. an inspected run or initialized semantic store), and no alternative named. An agent must infer its place in the workflow 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.

preview_semantic_patchB

Validate an ID-only semantic patch against frozen facts and its base revision.

NameRequiredDescriptionDefault
patchYes
source_runYes
semantic_storeYes
prepare_manifestYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral load. 'Validate' and 'preview' correctly signal a non-mutating check and it discloses the comparison basis (frozen facts, base revision), but it says nothing about permissions, whether validation mutates state, or what a failure 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the core action and comparison basis lead. It is efficient, though near the edge of under-specification for a four-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but a tool with four required params at 0% coverage and a nested open patch object needs far more than one sentence. The description does not let an agent assemble a valid call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% with four required parameters including a nested free-form 'patch' object. The description only hints at the patch ('ID-only'); source_run, semantic_store, and prepare_manifest — which look like pointers to run artifacts and stores — are left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Validate an ID-only semantic patch') plus meaningful qualifiers ('against frozen facts and its base revision'), and the 'preview' prefix strongly implies a dry run vs commit_semantic_patch. It never names that sibling explicitly, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Validation against frozen facts and the base revision implies this is a pre-commit check, but the description never states when to call it versus commit_semantic_patch or compile_semantic_revision, nor what to do on failure. 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.

publish_matched_deliveryB

Publish matched scopes as six-file SVG/OSM deliveries using frozen snapshots.

Every populated scope must be matched and have its own snapshot. This does
not accept the candidate or establish survey accuracy. QGIS is discovered
locally or configured with CAD2GIS_QGIS_PYTHON; no shell command is accepted.
NameRequiredDescriptionDefault
run_dirYes
delivery_rootYes
osm_snapshotsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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 prerequisites (matched scopes with snapshots), an environment dependency (QGIS discovery or CAD2GIS_QGIS_PYTHON, no shell command), and explicit non-goals. It says nothing about the write side: whether files under delivery_root are overwritten, whether the call is idempotent, or how partial failures surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, artifact and mechanism front-loaded, zero filler. Dense jargon ('six-file', 'populated scope') slightly raises reading cost but nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose. However, for a publish operation with no annotations and 0% parameter descriptions, the definition leaves the caller guessing about the meaning of its arguments and the overwrite behavior at delivery_root.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across three parameters, so the description must compensate and largely does not. 'Frozen snapshots' and 'its own snapshot' gesture at osm_snapshots but never explain that it maps scope identifiers to snapshot paths, and run_dir vs. delivery_root are never distinguished.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and artifact: 'Publish matched scopes as six-file SVG/OSM deliveries using frozen snapshots.' This distinguishes it from siblings like build_source_svg_delivery and package_qgis_delivery, though the 'six-file' artifact is never unpacked and 'matched scopes' is assumed domain jargon.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Every populated scope must be matched and have its own snapshot' gives a concrete precondition, and 'This does not accept the candidate or establish survey accuracy' rules out a nearby workflow. It never names the alternative tool an agent should call to perform that acceptance step, so routing is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_relationship_candidatesC

Read only observed class, label or dimension candidates with registered policy IDs.

NameRequiredDescriptionDefault
limitNo
cursorNo
max_bytesNo
policy_idNo
entity_idsNo
relation_kindNolabel
prepare_manifestYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It does convey a read-only nature and references registered policy IDs, which is some signal. But it omits permission requirements, pagination behavior (cursor/limit exist), and what 'observed' vs registered means operationally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no filler, which is good. But the sentence is cryptic and awkwardly worded, so brevity comes at the cost of comprehension rather than being tight-but-complete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no annotations and only a one-line description, this is under-specified. An output schema exists so return values needn't be explained, but the required prepare_manifest and the filtering/pagination params are left entirely unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Seven parameters at 0% schema description coverage, so the description must compensate and largely fails. It tangentially maps to relation_kind (class/label/dimension) and policy_id, but says nothing about prepare_manifest (required), entity_ids, limit, cursor, or max_bytes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a read operation over 'relationship candidates' and hints at the domain (class, label or dimension candidates with policy IDs). However, the phrasing is grammatically awkward ('Read only observed class...') and doesn't clearly distinguish it from siblings like list_label_candidates or list_endpoint_join_candidates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus the several candidate-listing siblings (list_label_candidates, list_legend_catalog_candidates, list_endpoint_join_candidates). No prerequisites or conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_source_entitiesC

Query a snapshot using bounded SQL filters, stable keyset cursors and exact facts.

NameRequiredDescriptionDefault
bboxNo
viewNosource
layerNo
limitNo
cursorNo
layoutNo
run_dirYes
dwg_typeNo
max_bytesNo
projectionNo
text_queryNo
timeout_msNo
terminal_stateNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses boundedness and cursor stability, but says nothing about read-only safety, what filters are actually supported, what happens on empty results, timeout/byte-cap behavior despite max_bytes and timeout_ms defaults, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, which is structurally clean. However, its terseness is achieved through under-specification rather than information density — the terms used ('exact facts') are evocative but opaque.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be described, but for a 13-parameter query tool with no annotations and zero schema documentation, the description leaves far too much unexplained — filter semantics, view/layer selection, and the pagination contract are all missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 13 parameters, so the description must compensate and it barely does — only 'bounded SQL filters' and 'keyset cursors' loosely gesture at filters and cursor params. Spatial (bbox), structural (view, layer, layout, dwg_type), text_query, projection, terminal_state, and the caps (limit, max_bytes, timeout_ms) are entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb is specific ('Query') but the resource is described only as a 'snapshot', never stating that these are CAD source entities or what distinguishes this from siblings like inspect_source or get_entity_context_batch. The mention of 'bounded SQL filters' and 'keyset cursors' hints at a paginated entity listing, but an agent cannot confidently tell the scope apart from neighboring query tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 tool, when not to, or which sibling handles a related need (e.g., get_entity_context_batch for grouped context). The only implicit usage signal is 'stable keyset cursors', which suggests resuming paginated iteration, but nothing explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reconcile_compile_jobsB

Recover interrupted compile jobs; call only when their workers are known stopped.

NameRequiredDescriptionDefault
source_runYes
semantic_storeYes
prepare_manifestYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose one genuinely important behavioral trait — a hard precondition that workers must be stopped, implying this mutates job state and is unsafe to run concurrently — but says nothing about idempotency, what happens to recovered jobs, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with two load-bearing clauses, purpose front-loaded before the guard condition. Nothing is padded or repeated from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, but three mandatory, undocumented parameters and a state-mutating recovery operation are covered by a single sentence. An agent has no basis for supplying correct values for source_run, semantic_store, or prepare_manifest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%: source_run, semantic_store, and prepare_manifest appear as bare string titles with no explanation. The description supplies no parameter meaning whatsoever, leaving an agent unable to tell whether these are identifiers, paths, or store names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Recover interrupted compile jobs' — which is clearly distinct from siblings like compile_semantic_revision and cancel_compile_job. It stops short of explicitly naming which sibling to prefer when jobs are not interrupted, so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'call only when their workers are known stopped' gives an explicit precondition for invocation, which is more than most tools offer. It does not name an alternative tool for the case where workers are still running (e.g. cancel_compile_job), so it lacks true either/or routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_iteration_feedbackC

Bind user language and visual evidence to the active source/run hashes.

NameRequiredDescriptionDefault
session_pathYes
feedback_itemsYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden, but it only hints that feedback is tied to active hashes. It does not state whether this mutates state, what permissions or active-run prerequisites are required, whether feedback is validated, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single sentence with no wasted clauses, so it is concise. However, the sentence is too abstract for the tool's complexity and lacks front-loaded operational clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema helps with return values, but the description remains incomplete for a tool with two required, undocumented parameters and no annotations. It does not give enough context for an agent to confidently invoke it in the iteration workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description gives no direct explanation of session_path or the feedback_items structure. "User language and visual evidence" loosely suggests feedback content, but session_path is entirely unexplained and feedback_items remains an unconstrained array of objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the abstract verb "Bind" and mentions user language, visual evidence, and active source/run hashes, but it never plainly states that it records iteration feedback. It is relevant to the tool name but does not distinguish it from nearby iteration tools like evaluate_iteration_candidate or start_feedback_iteration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 tools handle related iteration workflows. The description implies a binding/recording action but leaves the triggering conditions entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_visual_hitC

Resolve one six-digit RGB hit-map value to its source entity node.

NameRequiredDescriptionDefault
rgb_hexYes
hit_index_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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 state whether the operation is read-only, what happens if the RGB value is not in the hit map, or whether the hit index must come from a prior visual conversion step.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the core operation, and no wasted words. It is appropriately sized for a narrow resolution tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, with no annotations and no parameter descriptions in the schema, the definition is missing key invocation context: hit_index_path origin/format, error behavior, and any preconditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 for the two required parameters. It partially explains rgb_hex as a six-digit RGB hit-map value, but says nothing about hit_index_path, leaving half the parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: resolving a six-digit RGB hit-map value to its source entity node. This is clearer than a generic name restatement, though it does not explicitly distinguish itself from visual-region or scene-node siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as where the hit_index_path comes from. The agent must infer that this is a follow-up to visual hit-map generation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_conversionD

Run the canonical pipeline; no conversion logic is duplicated here.

NameRequiredDescriptionDefault
llmNooff
sourceYes
run_dirYes
matchingNoosm
osm_dataNo
svg_modeNocandidate
osm_placeNo
source_runNo
gcp_profileNo
project_dirYes
semantic_jobNo
decision_packNo
match_profileNo
svg_font_dirsNo
semantic_storeNo
geometry_repairsNolegacy

Output Schema

NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior2/5

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 that this is a mutating, likely long-running job that writes artifacts into run_dir, not what permissions or runtime state are required, and not what happens on partial failure. The only behavioral hint is that this is the canonical (single) implementation path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence is technically waste-free, but for a 16-parameter pipeline entry point this is under-specification rather than conciseness. Nothing useful is front-loaded because there is essentially nothing to front-load.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but that is the only gap covered. With 16 undocumented parameters, no annotations, and heavy downstream effects, the description is far too thin for the agent to invoke this correctly or safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Sixteen parameters with 0% schema description coverage, and the description names none of them. Critical choices like llm, matching, osm_data, svg_mode, geometry_repairs, and match_profile are entirely undocumented, leaving the agent to guess values such as "legacy" or "candidate".

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Run the canonical pipeline" is a near-restatement of the name with no indication of what is converted (CAD/SVG/OSM?) or what the pipeline produces. With ~60 sibling tools including auto_onboard_and_convert and export_source, the agent gets no way to tell which one actually performs a conversion run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 siblings such as auto_onboard_and_convert, prepare_cad_bundle_workspace, or compile_semantic_revision. The clause "no conversion logic is duplicated here" is a design note, not a selection rule, and does not tell the agent what prerequisites must already exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_feedback_iterationB

Start a bounded, auditable retry loop over one immutable conversion run.

NameRequiredDescriptionDefault
session_dirNo
base_run_dirYes
max_iterationsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description supplies some behavioral context: the loop is bounded and auditable, operates on an immutable run, and implies a retry loop. It does not disclose permissions, side effects, cancellation behavior, or what is created or persisted beyond the auditability claim.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence is front-loaded with the core action and constraints. It contains no filler, though its terseness contributes to the gaps elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter loop-start tool with no annotations and no schema descriptions, the description is incomplete: it omits parameter meaning, prerequisites, lifecycle relationship to record_iteration_feedback, and side effects. The output schema may cover returns, but callers still lack necessary invocation context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description never names or explains session_dir, base_run_dir, or max_iterations. The phrases 'bounded' and 'one immutable conversion run' loosely hint at max_iterations and base_run_dir, but session_dir remains unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Start') and resource ('feedback iteration'), and defines it as a 'bounded, auditable retry loop over one immutable conversion run.' It is distinguishable from record_iteration_feedback by implying a loop start, but it does not explicitly name sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers no explicit when-to-use or when-not-to-use guidance, and it does not mention related tools such as record_iteration_feedback, prepare_iteration_context, or inspect_iteration. The only usage context is the implicit retry-loop scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_review_serverC

Start and verify an owned loopback review service; this does not open a browser.

NameRequiredDescriptionDefault
portNo
run_dirYes
workspace_dirNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses that the service is loopback-only, owned by the run, and does not launch a browser, but it says nothing about port conflicts, idempotency if a server is already running, how long the service lives, or whether stop_review_server is required for cleanup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the semicolon clause adds genuinely useful negative information. It is efficient, though the terseness contributes to the gaps elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema means return values needn't be described, but for a server-lifecycle tool with zero annotation coverage and zero parameter documentation, the description should cover prerequisites, port-conflict behavior, and the relationship to stop_review_server/get_review_server_status. None of that is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across three parameters. The description clarifies nothing about run_dir (required), port (default 8765), or workspace_dir (default empty) — only the word "owned" faintly hints that the server is scoped to run_dir. The agent must infer all three from titles alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: "Start and verify ... review service" with the scoping qualifiers "owned" and "loopback". It implicitly separates itself from get_review_server_status and stop_review_server by being the starting action, though it never names those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 get_review_server_status or prepare_review_workspace, nor any prerequisites (does a run need to exist first?). The only guidance-ish content is the negative note that it does not open a browser, which addresses expectations rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_review_serverB

Stop only the subprocess owned by this MCP session; never accept an arbitrary PID.

NameRequiredDescriptionDefault
session_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description usefully discloses a safety behavior: it refuses arbitrary PIDs and only terminates session-owned subprocesses. However it omits idempotency, behavior when no server is running, and why a session_id is needed if ownership is already implied by the MCP session.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action and its scope, followed immediately by the safety constraint. Zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and the safety constraint is captured. But for a lifecycle tool with an undocumented required parameter and an unresolved tension between 'this MCP session' and an explicit session_id argument, the description leaves real gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single session_id parameter has 0% schema description coverage, so the description must compensate and it does not — it never says what session_id is, where to obtain it, or how it relates to 'this MCP session'. The ownership phrasing arguably muddies rather than clarifies the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Stop') and a scoped resource ('the subprocess owned by this MCP session'), which clearly separates it from start_review_server and get_review_server_status. It never names the review server explicitly, but the scope and verb are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'never accept an arbitrary PID' clause is an implied usage constraint that shapes when/how to call it, but there is no explicit statement of preconditions (e.g. server must be running) or a named alternative such as get_review_server_status for checking state first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_decision_packC

Verify source binding, content addresses, and all graph references.

NameRequiredDescriptionDefault
graph_pathYes
decision_pack_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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 lists what is checked but does not disclose whether the operation is read-only, what happens on validation failure, whether it mutates any state, or what kind of result 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.

Conciseness4/5

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 sized for a terse definition, though the extreme brevity contributes to gaps in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two required parameters with zero schema descriptions, no annotations, and no output schema explanation needed, the description is under-specified. An agent lacks enough context on usage, parameter meaning, and behavioral guarantees to invoke the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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 (graph_path and decision_pack_path), and the description makes no mention of them. The agent receives no added meaning about what these paths should point to or how they are used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Verify') and enumerates the verification targets (source binding, content addresses, graph references), making the purpose clear. However, it does not explicitly name the 'decision pack' resource or distinguish it from sibling validators like validate_project or validate_scene_interpretation_plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mention of prerequisites (e.g., after create_decision_pack), and no exclusion conditions. The implied lifecycle context is not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_projectC

Validate source, inventory, mapping, unit, CRS, and review admission gates.

NameRequiredDescriptionDefault
project_dirYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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 validation is read-only, whether it mutates state, how failures are reported, whether it stops at the first failed gate, or whether it requires any special permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no wasted words. The terseness is efficient, though the gate list is somewhat jargon-heavy and not elaborated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values do not need to be explained. However, for a validation tool with no annotations and a zero-documented parameter, the description is incomplete: it says what categories are checked but not how validation behaves, what a valid result means, or how failures surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter, project_dir, is self-explanatory by name, but schema description coverage is 0% and the description adds no information about what the directory should contain or what format it expects. The description 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, 'Validate,' and enumerates the gates being validated (source, inventory, mapping, unit, CRS, review admission). This is clear enough to understand the tool's purpose, but it does not distinguish it from similar validation siblings such as validate_decision_pack or validate_scene_interpretation_plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 indication of what happens after validation. The agent must infer its place in the workflow from the name and terse gate list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_scene_interpretation_planC

Validate a persisted AI scene plan against current immutable evidence.

NameRequiredDescriptionDefault
planYes
graph_pathYes
visual_manifest_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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 implies a read-only validation against immutable evidence but does not state whether the plan or evidence are altered, what permissions are required, or what failure modes exist. With output schema present, return values need not be explained, but core behavioral traits remain undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. The term 'immutable evidence' is slightly jargon-heavy but still conveys the core constraint efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three required parameters, an entirely undocumented schema, and a nested plan object, the one-sentence description is insufficient for an agent to call the tool correctly. The output schema helps with return values, but input expectations (path formats, plan structure) are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 'plan' object. The description vaguely maps 'persisted plan' to the plan parameter and 'evidence' to the path parameters, but gives no format, structure, or path expectations. It does not compensate for the schema's lack of description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('validate') and resource ('persisted AI scene plan against current immutable evidence'), making it distinguishable from the sibling create_scene_interpretation_plan. It does not explicitly name alternatives, but the action and object are clear enough for an agent to identify the tool's role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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_scene_interpretation_plan or validate_decision_pack. The phrase 'validate a persisted plan' implies usage, but no conditions, prerequisites, or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_qgis_reviewC

Independently reopen and render a hash-bound review QGZ in QGIS.

NameRequiredDescriptionDefault
titleNoCAD2GIS review
image_pathYes
project_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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 at integrity checking via 'hash-bound' and 'independently', but does not disclose that rendering writes a file to image_path, the QGIS runtime requirement, or what happens when the hash does not match.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with no wasted words. It is efficient, though the brevity borders on under-specification for a tool with three undocumented parameters and a QGIS dependency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (QGIS rendering, hash verification), an output schema, no annotations, and zero schema parameter descriptions, the definition is too thin. It omits runtime prerequisites, output side effects, and failure behavior that an agent needs before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for three parameters, and the description only implicitly maps project_path to the QGZ being reopened. It never explains that image_path is the render destination (easily mistaken for a source image to compare) or what the 'title' default controls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The single sentence names a specific verb pair (reopen and render) and a specific resource (hash-bound review QGZ), which separates it reasonably well from build_qgis_review and audit_visual_conversion. It does not explicitly name the sibling it complements, but the 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'Independently' hints at a verification-after-build use case, but the description never states when to call this versus build_qgis_review or audit_visual_conversion, nor any prerequisites or when-not conditions. An agent must infer the workflow placement.

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.

  1. 63 tool updatesv0.8.0
    • First observedapply_ai_onboarding
    • First observedaudit_run
    • First observedaudit_visual_conversion
    • First observedauto_onboard_and_convert
    • First observedbootstrap_project
    • First observedbuild_qgis_review
    • First observedbuild_source_svg_delivery
    • First observedcall_cad_bundle_tool
    • First observedcancel_compile_job
    • First observedcommit_semantic_patch
    • First observedcompile_semantic_revision
    • First observedcreate_decision_pack
    • First observedcreate_scene_interpretation_plan
    • First observeddebug_mcp
    • First observeddecide_iteration_candidate
    • First observedevaluate_iteration_candidate
    • First observedexport_iteration_learning
    • First observedexport_source
    • First observedget_cad_bundle_status
    • First observedget_cad_scene_node
    • First observedget_capabilities
    • First observedget_entity_context_batch
    • First observedget_evidence_node
    • First observedget_review_server_status
    • First observedget_runtime_status
    • First observedget_scene_visual_region_context
    • First observedinitialize_semantic_store
    • First observedinspect_iteration
    • First observedinspect_run
    • First observedinspect_semantic_store
    • First observedinspect_source
    • First observedinstall_runtime
    • First observedlist_cad_bundle_tools
    • First observedlist_cad_scene_nodes
    • First observedlist_endpoint_join_candidates
    • First observedlist_evidence_nodes
    • First observedlist_label_candidates
    • First observedlist_legend_catalog_candidates
    • First observedlist_network_repair_candidates
    • First observedlist_registered_operations
    • First observedlist_scene_visual_regions
    • First observedlist_visual_regions
    • First observedpackage_qgis_delivery
    • First observedprepare_ai_onboarding
    • First observedprepare_cad_bundle_workspace
    • First observedprepare_iteration_context
    • First observedprepare_review_workspace
    • First observedprepare_semantic_batches
    • First observedpreview_semantic_patch
    • First observedpublish_matched_delivery
    • First observedquery_relationship_candidates
    • First observedquery_source_entities
    • First observedreconcile_compile_jobs
    • First observedrecord_iteration_feedback
    • First observedresolve_visual_hit
    • First observedrun_conversion
    • First observedstart_feedback_iteration
    • First observedstart_review_server
    • First observedstop_review_server
    • First observedvalidate_decision_pack
    • First observedvalidate_project
    • First observedvalidate_scene_interpretation_plan
    • First observedverify_qgis_review

TDQS

C2.5/5.0

Scored across 63 tools

Disambiguation3/5

Many tools target clearly distinct pipeline stages, but several clusters overlap heavily: inspect_semantic_store/debug_mcp/inspect_run/inspect_iteration, build_qgis_review/verify_qgis_review/package_qgis_delivery/prepare_review_workspace, and evaluate_iteration_candidate/decide_iteration_candidate. The detailed descriptions help, but with 63 tools the risk of misselection remains substantial.

Naming Consistency4/5

Names mostly follow a predictable snake_case verb_noun pattern (inspect_source, validate_project, create_decision_pack, run_conversion). There are minor deviations such as auto_onboard_and_convert and some noun-heavy names, but the overall convention is readable and consistent.

Tool Count1/5

Sixty-three tools is an extreme mismatch for a single MCP server surface, even for a complex CAD-to-GIS pipeline. The set is far too large for an agent to navigate efficiently, and many tools appear to earn their place only inside a very specialized stage.

Completeness4/5

The surface covers a broad lifecycle: runtime setup, source export/inspection, semantic revision, conversion, audit, QGIS packaging, review serving, and iteration feedback. Some cleanup/deletion or simpler common operations may be missing, but core workflows appear well covered.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Local MCP server enabling Codex to inspect and edit HWPX documents, Excel spreadsheets, and QGIS QGS/QGZ projects on Windows with safety and fidelity.
    1
    -
  • A
    license
    B
    quality
    B
    maintenance
    MCP server that lets AI draw in AutoLISP-capable CAD (reference BricsCAD on Linux) via a file bridge, enabling 2D drafting, 3D solid modeling, and verification with 100 tools.
    128
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects QGIS to any MCP-speaking AI agent, exposing 125 tools that let the agent manage layers, edit features, run processing algorithms, render and style maps, author layouts and atlases, query across layers with SQL, and administer the QGIS session. Works with any MCP client and QGIS 3.28–4.x.
    GPL 2.0
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants such as Claude for Desktop or Cursor to drive Windows CAD applications (AutoCAD, ZWCAD, GstarCAD, BricsCAD) through natural-language or direct tool calls. It supports drawing shapes, managing layers, blocks and entities, extracting or exporting data, and saving drawings via a set of unified MCP tools.
    -