Skip to main content
Glama

maxplus2-mcp — MAX+plus II MCP 服务器

M8ven Score

简体中文 | English

让支持 MCP 的 AI agent 使用 MAX+plus II:读取和修改工程、GDF 原理图、SYM 符号和 SCF 波形,运行原厂编译与仿真,并操作 Windows 原生界面。

适用于 Altera MAX+PLUS II / MaxPlus II / MaxPlus2 的数字电路实验与 FPGA/CPLD 工程,包含 AHDL、VHDL、Verilog 源码和专有原理图、波形文件处理。

当前版本 0.10.3,提供 68 个工具,采用本地 stdio MCP。 运行时只使用 Node.js 内置模块,不需要安装 npm 依赖。 Windows 界面后端属于本项目,通过 Win32 和 UI Automation 工作;任何能连接 本地 stdio MCP 的客户端都可调用,无需 Codex Computer Use 或其他 agent SDK。

项目把工程文件解析、原厂命令行与 Windows 界面操作组合在一个服务中。 AI 可以先读取实际电路和波形,以文件方式进行受检修改,再通过原厂工具验证 结果;遇到向导或未解码的编辑器属性时,使用项目自带的界面后端继续操作。

下载: 最新 Release 提供精简发行包、完整源码包、标准 MCPB 安装包、目录元数据和 SHA-256 校验文件。

查找与连接: 官方 MCP 目录 · GitHub 搜索 · 其他 agent 的查找与连接说明。 目录中的名称为 io.github.Hachimeder/maxplus2-mcp;连接方式为本地 stdio。

数字电路(数电)实验中的 AI 辅助

如果你在寻找「MAX+plus II AI 辅助工具」「MaxPlus2 MCP」「GDF 原理图解析与 编辑」或「SCF 波形自动生成与仿真」,本项目提供相应的本地工具。AI 可以创建 和修改原理图、准备波形激励、编辑 AHDL/VHDL/Verilog 源码,再调用原厂编译器 和仿真器读取实际报告与结果。它也适用于 Altera FPGA/CPLD 工程的文件处理。

常见问题是「AI 能不能直接画 GDF、填写 SCF、操作 MAX+PLUS II?」:连接本地 MCP 后,可以使用对应文件工具及项目自带的 Windows 自动化后端;具体支持范围 见下面的能力表及 格式说明,验证证据见 测试说明。

在 GitHub 中可直接搜索 MaxPlus2 MCP、MaxPlus II MCP、数字电路 MCP 或 数电 MCP。按场景查找也可使用 topic:altera topic:mcp、 topic:cpld topic:mcp、topic:waveform-simulation topic:mcp。

Related MCP server: Ansys Workbench MCP

能力

范围

功能

工程和源码

新建、复制、查找、读取、编辑、备份和恢复;ACF 配置、HDL、MIF、VEC

GDF 原理图

原始几何、符号位置、旋转/镜像、引脚坐标、导线、注释、参数和声明

GDF 连接

原实例/引脚网络、显式总线逐位连接、受检标量移动补线、匿名叶端清理

SYM 符号

新建、编辑、检查、选择性刷新嵌入定义,保留未选实例

文字和颜色

字体、显式 Windows-936 中文、保存的颜色角色;检查并清理覆盖引脚标签的重复 DOC

SCF 波形

输入事件、X/Z、信号增删、名称、组、进制、顺序和时长;clock/counter/repeat 等刺激

编译与分析

原厂编译、仿真、时序分析、导出综合网表;异步任务、取消、报告与结果验证

Windows 界面

窗口、截图、UIA、菜单、键盘、鼠标、拖动和滚动;观察有效期和输入去重

工具的参数由 MCP tools/list 提供,也可查阅 完整工具列表。 优先使用文件工具处理已解码格式,界面工具处理向导、菜单和其他编辑器操作。

安装与连接

文件工具需要 Node.js 18+。原厂编译、仿真和界面操作需要 Windows 以及 你自行安装并取得适用许可的 MAX+plus II。原厂工具链曾在 10.2 上验证。 界面操作还需要 .NET Framework 4.8 和已登录、未锁定的交互式桌面。 本仓库不包含 MAX+plus II 安装包、程序、设备库或许可证。

使用 Release 发行包

支持 MCPB 的 Windows 客户端可导入 maxplus2-mcp-v0.10.3.mcpb,在客户端中 选择软件安装目录和工程目录。其他 stdio MCP 客户端使用下面的 ZIP 配置步骤。

  1. 从 v0.10.3 Release 下载 maxplus2-mcp-v0.10.3.zip 并解压到固定目录。

  2. 确认本机已安装 Node.js;执行 node --version 检查。

  3. 按下面的配置示例连接 MCP 客户端,填写实际软件安装目录和工程目录。

发行包包含运行源码、Windows 后端源码、两种语言的介绍及操作文档。 运行时不需要 Git,不需要执行 npm install;Windows 后端首次使用时自动编译。 maxplus2-mcp-v0.10.3-source.zip 另包含开发脚本、公开测试和 CI 模板,适合开发与贡献。

从源码安装

git clone https://github.com/Hachimeder/maxplus2-mcp.git
cd maxplus2-mcp
node --version

复制 mcp-config.example.json 中的服务定义到客户端的 MCP 配置,填写实际路径。示例中的目录是占位路径:

{
  "mcpServers": {
    "maxplus2": {
      "command": "node",
      "args": ["C:\\tools\\maxplus2-mcp\\server.mjs"],
      "env": {
        "MAXPLUS2_ROOT": "C:\\maxplus2",
        "MAXPLUS2_WORKSPACE": "C:\\fpga-projects"
      }
    }
  }
}

若客户端不能从 PATH 找到 Node,将 command 改为本机 Node 可执行文件的绝对路径。 客户端的配置格式可能不同,核心是用上述 command、args、env 启动 stdio 进程。

可用以下命令检查路径和原厂编译器,并生成被 Git 忽略的本机配置:

node scripts/configure-local.mjs --root "C:\maxplus2" --workspace "C:\fpga-projects"
node scripts/configure-local.mjs --root "C:\maxplus2" --workspace "C:\fpga-projects" --apply

也可通过 start-local.ps1 启动,或使用以下命令检查安装。正常 stdio 启动后由 MCP 客户端发送 JSON-RPC 请求;诊断日志使用 stderr。

node scripts/local-startup.mjs --check --root "C:\maxplus2" --workspace "C:\fpga-projects"

原生后端会从 native/MaxplusDesktop.cs 自动编译到被忽略的 bin/。 手动构建可运行 pwsh -NoProfile -File scripts/build-desktop.ps1 -SelfTest。

推荐操作顺序

  1. installation_status 检查环境,project_clone 建立工作副本。

  2. project_parse_file 或专用 inspect 工具读取实际内容和 SHA-256。

  3. 用编辑工具预览修改,检查变化、连接和限制;已授权修改使用 confirm:true 及刚读取的 expectedSha256 提交。该参数是工具的事务控制。

  4. 编译和仿真,检查本次生成的报告、连接和真实输出。异步任务使用 job_status / job_cancel。

  5. 需要界面时使用 desktop_windows → desktop_observe → desktop_action。 使用最新的 observationId,读取动作后返回的新观察再决定下一步。

详见 文件工作流、界面操作 和 格式及限制。

验证与开发

以下开发命令在 Git 克隆目录或完整源码包中运行:

npm run audit:public
npm test

默认测试使用独立样例和模拟后端,不需要 MAX+plus II 安装、私人实验工程或 原厂库文件。需要实机软件验证时设置安装目录:

$env:MAXPLUS2_ROOT = "C:\maxplus2"
npm run test:native

原厂测试在临时目录建立自制电路,运行编译、仿真和网表检查。原生桌面测试还 需要交互式 Windows 会话。公开检查不依赖原厂安装。 仓库附有 GitHub Actions 模板;启用方式见 CI 说明。

公开测试中的分页 GDF 在运行时由自制符号生成;SCF 样例来自自制 XOR 工程, 不包含私人课程实验或本机路径。贡献时请运行检查,并使用可公开的最小复现。 测试范围及实测结果见 验证说明。

已知边界

文件编辑主要支持已确认的 GDF v6 / SCF v4,未知记录保留或拒绝修改。 参数化宏的总线宽度、完整层级内部连接、总线自动布线,以及部分 SCF 编辑器 私有显示字段仍有限制。源连接模型和综合后的网表回答不同问题,修改逻辑后 仍需原厂编译仿真确认。通用界面入口提供软件操作途径,不能证明每个菜单功能 都已经逐项验证;客户端还需把截图传给具备视觉能力的模型处理复杂画布。 实际烧录需要支持的硬件,仓库测试不验证硬件烧录。

许可和隐私

本项目代码采用 MIT License。第三方软件及样例来源见 NOTICE.md。本机配置、日志、截图、备份、实验工程及原厂软件不属于 发布内容。MCP 返回的数据可能经客户端发送给模型服务,详见 SECURITY.md。

Available Tools

68 tools
acf_read_pinsRead pin assignmentsA
Read-onlyIdempotent

Extract device and pin assignments from the .acf CHIP block, and cross-check them against the compiler-generated .pin report when present. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesProject name (for example "top") or an absolute path to its .acf file. A bare name is resolved against workspace, and is rejected as ambiguous if several projects share it.
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so 'Read-only.' in the description is redundant. The one genuinely additive behavioral detail is the conditional cross-check against the compiler-generated .pin report when present, but error behavior and result shape are unaddressed.

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?

Two short sentences, front-loaded with the primary action and followed by the conditional cross-check. No filler or repetition beyond the minor 'Read-only.' restatement of annotations.

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?

For a read-only extraction tool with no output schema, the description covers the source artifact, the scope (device and pin assignments), and the optional verification step. It could say more about what the returned pin data looks like, but nothing essential to correct invocation is missing.

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 description coverage is 100%, so both parameters (project, workspace) are fully documented in the schema, including ambiguity resolution and env-var defaults. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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 ('extract') and precise resources: device and pin assignments from the .acf CHIP block, plus a secondary cross-check against the .pin report. This is distinguishable from siblings like acf_read_sections or acf_validate without opening schemas.

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

Usage Guidelines3/5

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

The description implies when the tool applies (reading .acf CHIP pin data) and notes the conditional .pin cross-check when that report exists. However it gives no explicit guidance on when to prefer this over acf_read_sections, acf_validate, or project_inspect, leaving selection to inference.

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

acf_read_sectionsRead ACF sectionsA
Read-onlyIdempotent

Read the .acf as structured sections/entries with line numbers. Use to discover which section holds a setting before writing. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesProject name or absolute .acf path.
sectionNoOnly return this section (case-insensitive), e.g. CHIP.
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.
includeEntriesNoSet false to return section headers only (default true).

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, and the description's 'Read-only' merely repeats that. It does add useful return-shape context (sections/entries carry line numbers), but says nothing about scoping, limits or how entries are delimited.

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?

Three short sentences, front-loaded with the capability and immediately followed by the routing purpose and safety note. No wasted words.

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?

For a read-only inspection tool with a fully documented schema and no output schema, the description covers the essential return shape (sections/entries with line numbers) and intended workflow. Only finer output detail is absent, which is minor.

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 description coverage is 100%, so all four parameters (project, section, workspace, includeEntries) are already documented in the schema. The description's mention of 'sections/entries' aligns with but does not extend the schema, so the baseline 3 applies.

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: reads the .acf as structured sections/entries with line numbers. That distinguishes it from the pin-oriented sibling acf_read_pins and from write tools like setacf_apply, though it never explicitly names an alternative.

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

Usage Guidelines4/5

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

Gives a clear use case: 'Use to discover which section holds a setting before writing,' which positions it ahead of the setacf write tools. It stops short of stating when-not-to-use or naming specific alternative readers.

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

acf_repair_chip_headersRepair CHIP headersA
Destructive

Rewrite malformed CHIP headers (bare "CHIP " or shell-escaped names) into canonical "CHIP " form. setacf is append-only and cannot fix these itself. Preview-first; requires confirm:true to write and backs the file up.

ParametersJSON Schema
NameRequiredDescriptionDefault
backupNoBack up the .acf first (default true).
confirmNoMust be true to write. Without it this is a preview.
projectYesProject name (for example "top") or an absolute path to its .acf file. A bare name is resolved against workspace, and is rejected as ambiguous if several projects share it.
chipNameNoName to use for the CHIP section. Defaults to the project name.
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.

TDQS

A4.2/5.0
Behavior4/5

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

Adds real behavioral context beyond the annotations: dry-run preview by default, a confirm gate for the actual write, and a backup of the .acf file. This meaningfully softens the destructiveHint=true profile. It does not explain what happens on repeated runs despite idempotentHint=false, so not quite a 5.

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

Conciseness5/5

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

Three tight sentences with no filler: the action and targets come first, followed by the setacf rationale and the safety workflow. Every sentence earns its place.

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?

For a destructive, no-output-schema mutation tool, the description covers the key agent needs: what it rewrites, the preview/write gate, and the backup. Return details are unnecessary with no output schema; only the non-idempotency behavior is left unaddressed.

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 100%, so all five parameters are already documented. The description restates the confirm and backup semantics already present in the schema and adds no new syntax or format detail, making baseline 3 correct.

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 (Rewrite) plus the exact resource and the malformed forms it targets (bare "CHIP " or shell-escaped names) and the canonical output form. It also distinguishes itself from the setacf siblings by explaining that setacf is append-only and cannot perform this fix.

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?

Clearly signals when to reach for this tool (malformed CHIP headers that setacf cannot repair) and establishes the preview-first workflow with confirm:true required to write. It stops short of naming explicit alternatives or when-not-to-use conditions, but the routing context is strong.

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

acf_validateValidate ACFA
Read-onlyIdempotent

Statically validate an .acf for defects that block compilation, notably the bare "CHIP " header that setacf itself creates when no CHIP section exists yet (MAX+PLUS II then fails with "Missing identifier after section keyword"). Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesProject name (for example "top") or an absolute path to its .acf file. A bare name is resolved against workspace, and is rejected as ambiguous if several projects share it.
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive and closed-world, so 'Read-only' in the description is redundant. What adds value is the disclosure of what it checks (the bare "CHIP " header setacf leaves behind) and the downstream failure mode, which goes beyond the annotation profile.

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 core action ('Statically validate an .acf...'), and the parenthetical defect detail earns its place by explaining the target. It is a single dense sentence, though the nested quoting makes it slightly heavy to parse.

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?

No output schema exists, so the description should ideally indicate the shape of the validation result (pass/fail, list of defects). It explains what is checked but not what comes back, leaving a gap for a validation tool.

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 description coverage is 100%, so both parameters are fully documented in the schema. The description adds no syntax, resolution, or ambiguity-handling detail beyond that, making the baseline 3 correct.

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 (validate) and resource (.acf) plus the exact class of defect it targets (the bare "CHIP " header) and why it matters (MAX+PLUS II compile failure). However, it does not distinguish itself from the sibling acf_repair_chip_headers, which addresses the same defect, so the boundary is left to inference.

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

Usage Guidelines3/5

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

Usage is only implied: the mention of 'defects that block compilation' suggests a pre-compile check, but there is no explicit when-to-use, no exclusion, and no pointer to acf_repair_chip_headers as the fix path. The agent must infer the workflow.

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

capability_matrixDiscover available MAX+plus II capabilitiesB
Read-onlyIdempotent

Return precise routes and runtime requirements for authoring, compilation, simulation and native GUI-only workflows. Distinguishes implemented entry points from operations verified on this machine and physical programming requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it distinguishes implemented entry points from operations verified on this specific machine and from physical programming requirements, which is a machine-state nuance the annotations do not capture. It still says nothing about response shape, but the added distinction earns credit above baseline.

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?

Two dense, front-loaded sentences with no filler. The wording is jargon-heavy ('precise routes', 'implemented entry points') but every clause carries information, and the distinct mode it returns is stated first.

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?

With no output schema, the description bears full responsibility for telling the agent what it receives, and it only gestures at this ('routes and runtime requirements', 'distinguishes... verification'). For an agent trying to act on the result, the actual contents and format remain under-specified, leaving a real gap for a zero-param tool whose entire value is its return payload.

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 nothing to document and the baseline of 4 applies. The description correctly implies a no-argument query rather than any input-driven operation.

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 signals a capability-discovery tool that returns routes and runtime requirements across authoring, compilation, simulation, and GUI-only workflows. However, 'precise routes' is jargon that doesn't concretely say what a caller gets back, and it draws no boundary against discovery-oriented siblings like installation_status, probe_executable, or desktop_status. Purpose is inferable but not sharply 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 when-to-use guidance, no prerequisites, and no named alternative. The closest siblings (installation_status, probe_executable) are equally discovery-flavored, yet the description gives the agent no rule for choosing between them.

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

desktop_actionPerform one observed MAX+plus II actionA
Destructive

Directly execute ONE click, hover, key chord, Unicode text entry, value change, drag, scroll, secondary UI action or activation, then return a fresh screenshot/tree. Uses MCP-owned Win32/UIA. Requires latest observationId/windowId. Inspect after every input; no host-specific calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoMAX+plus II installation root; defaults to MAXPLUS2_ROOT or discovered installation.
actionYesOne native Windows action; invoke_menu requires an observed enabled leaf menu_index.
windowIdYesWindow ID from the latest observation.
parametersNoinvoke_menu:menu_index from menus.items; click: element_index OR window-relative physical x/y+screenshotId, optional mouse_button/click_count; move:x/y/screenshotId; press_key:key; type_text:text; set_value:element_index/value; drag:from_x/from_y/to_x/to_y/screenshotId, optional mouse_button/durationMs(100..5000); scroll:x/y/scrollX/scrollY/screenshotId (integer wheel units,120 per notch); secondary:element_index/action. Mouse actions may use modifiers:["Ctrl","Shift","Alt"]. Observe actual focus before typing.
operationIdNoOptional unique 1..100 character letters/digits/_/- ID. Retrying identical arguments with this ID reads the cached result and never repeats input; reuse with different arguments is rejected.
observationIdYesUnconsumed ID from desktop_observe or the previous action result.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructive=true, idempotent=false, openWorld=true, so the safety profile is covered. The description adds real context beyond that: it executes exactly one input, uses MCP-owned Win32/UIA rather than host-specific calls, and always returns a fresh screenshot/tree, telling the agent state must be re-inspected after each action.

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 scope, followed by implementation note, preconditions and the inspect loop. Dense but mostly economical; 'no host-specific calls' is a slightly opaque phrase that does not fully earn its place.

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?

For a 6-parameter, nested-object mutation tool with no output schema, the description covers the essential call contract: prerequisites, one-action scope, and the fresh screenshot/tree return value. It leaves operationId retry/caching semantics entirely to the schema, but those are documented there.

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 description coverage is 100% and the nested 'parameters' property documents each action's arguments in detail. The description only restates the observationId/windowId freshness requirement, adding little syntax or format meaning beyond the schema, so the baseline 3 applies.

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?

Specific verb ('Directly execute') plus a precise resource and scope ('ONE click, hover, key chord, Unicode text entry, value change, drag, scroll, secondary UI action or activation'). The single-action framing plus 'return a fresh screenshot/tree' cleanly separates it from the observation-oriented siblings like desktop_observe.

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?

States the precondition ('Requires latest observationId/windowId') and the workflow expectation ('Inspect after every input'), which tells the agent to re-observe between actions. It does not explicitly name desktop_observe as the alternative, so the routing is implied rather than spelled out.

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

desktop_launchLaunch a MAX+plus II GUI programA

Launch an existing allowlisted MAX+plus II GUI through the independent Windows backend and return its real windows. No shell or arbitrary executable. Launch does not prove readiness; observe the returned window.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoMAX+plus II installation root; defaults to MAXPLUS2_ROOT or discovered installation.
programNoInstalled MAX+plus II GUI executable, default max2win.exe.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is covered. The description adds real value beyond that: the independent-backend isolation, the allowlist restriction, and the crucial caveat that a successful launch does not imply readiness.

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?

Three short sentences, front-loaded with the action and scope, then constraints, then the readiness caveat. No redundancy or 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?

With no output schema, the description carries the return-value burden and does so: it states it returns real windows and tells the agent to observe the returned window. It leaves some gaps, such as behavior when an instance is already running or what happens on failure, but is adequate for the task.

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 100% with only two optional parameters (root, program) and an enum fully documented in the schema. The description adds the notion that programs are allowlisted, which contextually frames the enum, but offers no syntax or default detail beyond what the schema already provides.

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 (Launch), a bounded resource (allowlisted MAX+plus II GUI), and the mechanism (independent Windows backend returning real windows). 'No shell or arbitrary executable' distinguishes it from a generic process launcher and from pipeline siblings like maxplus2_run.

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?

Gives a clear when-not ('No shell or arbitrary executable') and a follow-up directive ('Launch does not prove readiness; observe the returned window'), which effectively routes the agent to desktop_observe/desktop_windows. It does not name those siblings explicitly, so it falls short of full alternative-naming.

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

desktop_observeObserve a MAX+plus II windowA
Read-onlyIdempotent

Return a fresh native screenshot as standard MCP image content, UI Automation tree, focus, window bounds and observationId directly. Inspect before acting; each input consumes its observation. Capture diagnostics report limitations honestly.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoMAX+plus II installation root; defaults to MAXPLUS2_ROOT or discovered installation.
windowIdYesOpaque ID from desktop_windows; never invent one.
menuLimitNoMaximum native menu records; default60.
textLimitNoMaximum controls in one observation page, default 60; the response budget may reduce this. Global element indices are preserved.
menuOffsetNoNative menu pagination offset. Use menus.nextOffset and inspect actual enabled leaf commands.
textOffsetNoControl pagination offset, default 0. Use nextTextOffset from the previous observation; every page creates a new observationId.
includeTextNoCapture accessibility tree and focus, default true. Required for indexed input and typing.
includeScreenshotNoCapture screenshot, default true. Required for coordinate input.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the observation lifecycle note ('each input consumes its observation') and a diagnostics caveat, but the latter references a 'diagnostics' concept absent from the schema, so the added signal is thin.

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

Conciseness4/5

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

Three sentences, front-loaded with the return payload, then the pre-action guidance, then a caveat. Tight and mostly waste-free, though the trailing diagnostics sentence is vague and slightly muddies the close.

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?

With no output schema, the description correctly carries the return-value burden and lists the key outputs, plus the pagination model lives in the schema. It is complete enough to call correctly, though the one-shot observation semantics could be stated more explicitly.

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 description coverage is 100%, so the eight parameters (windowId provenance, pagination offsets, includeText/includeScreenshot) are already documented in the schema, including the 'never invent one' warning. The description adds no parameter meaning beyond that, making the baseline 3 correct.

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 (observe/return) and resource (a MAX+plus II window) and enumerates the returned artifacts: native screenshot, UI Automation tree, focus, window bounds, and observationId. This lets an agent know exactly what it gets. It does not, however, distinguish itself from the adjacent desktop_status / desktop_windows siblings.

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?

'Inspect before acting' implies the tool is a read step preceding desktop_action, which is useful guidance. But it names no alternatives, no explicit when-not conditions, and does not clarify how it differs from desktop_windows or desktop_status, leaving the agent to infer routing.

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

desktop_resultRead a recent desktop operation resultA
Read-onlyIdempotent

Retrieve a cached completed desktop result and its MCP image blocks without executing input again. Results last up to ten minutes, twelve entries, or server restart. No separate host execution step exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoMAX+plus II installation root; defaults to MAXPLUS2_ROOT or discovered installation.
requestIdYesID returned directly by desktop_windows/launch/observe/action, or the supplied operationId.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context beyond the annotations: the cache TTL rules (ten minutes, twelve entries, server restart) and the fact that no separate host execution step is involved. It does not describe the shape or failure mode of a cache miss, which keeps it from a 5.

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

Conciseness4/5

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

Three tight sentences with the core purpose front-loaded and the cache constraints following. 'No separate host execution step exists' is slightly oblique but still earns its place by clarifying the architecture.

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?

For a read-only retrieval tool with no output schema and full schema coverage, the description supplies the key missing context (cache expiry and the fact that no re-execution occurs). A brief note on what happens when the result is gone would complete it.

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 100%, and the schema already documents both requestId (source of the ID) and root (installation root default). The description adds no parameter-level detail beyond that, so the baseline 3 applies.

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 (Retrieve) and resource (a cached completed desktop result and its MCP image blocks), and qualifies it with 'without executing input again,' which differentiates it from the launch/observe/action siblings. It stops short of naming which sibling produced the result, so an agent must infer the pairing.

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 cache lifetime ('up to ten minutes, twelve entries, or server restart') implies when this tool is valid to call, i.e. only for recent operations. However, it never explicitly states when to prefer this over desktop_status/desktop_observe or what to do if the result has expired, so 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.

desktop_statusCheck independent Windows desktop backendA
Read-onlyIdempotent

Check the MCP-owned Windows UI Automation/Win32 backend. Builds the bundled helper locally if needed and reports interactive desktop availability. Runs locally using standard Windows components. Does not launch or manipulate a MAX+plus II window.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoMAX+plus II installation root; defaults to MAXPLUS2_ROOT or discovered installation.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower. The description still adds real value by disclosing a build side effect ('Builds the bundled helper locally if needed'), that it runs locally with standard Windows components, and that it reports interactive desktop availability. The build step sits in mild tension with readOnlyHint but is disclosed rather than hidden.

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?

Four short sentences, front-loaded with the primary purpose and the scope exclusion at the end. Each sentence carries distinct information (what it checks, build behavior, execution locality, boundary), with minimal waste.

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?

For a no-parameter-required diagnostic with no output schema, the description covers purpose, side effects, and scope adequately; return-value detail is not required. It could be stronger by stating the expected usage trigger, but nothing essential is missing.

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 description coverage is 100%, so the single 'root' parameter is fully documented in the schema. The description adds no syntax or default-precedence detail beyond the schema's own note about MAXPLUS2_ROOT/discovery, so the baseline of 3 applies.

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 ('Check the MCP-owned Windows UI Automation/Win32 backend') and clarifies scope by excluding window manipulation. This distinguishes it from desktop_launch/desktop_action without opening their schemas, though it never names a sibling 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?

The negative boundary ('Does not launch or manipulate a MAX+plus II window') implies this is a pre-flight/diagnostic check, which is useful context. However, it gives no explicit 'use this before desktop_launch' routing or when-to-use statement relative to installation_status or capability_matrix.

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

desktop_windowsList MAX+plus II windowsA
Read-onlyIdempotent

Directly discover real windows/dialogs of installed MAX+plus II executables, including HWND, PID, bounds and title. Select exactly one returned windowId before observing/input. All agents call this standard MCP tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoMAX+plus II installation root; defaults to MAXPLUS2_ROOT or discovered installation.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's added value is the discovery semantics and disclosed return fields (HWND, PID, bounds, title). It does not say what happens when no windows are found or whether an active desktop session is required, but it goes beyond the annotations meaningfully.

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 high-value content (what is discovered and returned) followed by the ordering rule. The closing sentence, 'All agents call this standard MCP tool,' is promotional filler that does not help an agent decide or call correctly.

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?

For a zero-required-param read tool with annotations and no output schema, listing the returned fields and the required next step is sufficient to call it correctly. Minor gaps remain around empty-result and environment-precondition behavior.

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?

One parameter with 100% schema description coverage, so the schema already fully explains 'root' and its MAXPLUS2_ROOT default. The description says nothing about the parameter, which is acceptable at this coverage level but adds no extra meaning.

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: 'discover real windows/dialogs of installed MAX+plus II executables,' and even enumerates what each entry carries (HWND, PID, bounds, title). This clearly separates it from siblings like desktop_observe or desktop_action, though it never names those siblings directly.

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?

Gives a concrete sequencing rule: 'Select exactly one returned windowId before observing/input,' which tells the agent this is a prerequisite step for the observation/input tools. It stops short of naming those alternatives or stating exclusions, so it is clear context rather than full when/when-not guidance.

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

display_palette_inspectInspect stored original application colorsA
Read-onlyIdempotent

Read only the [Colors] section of installed maxplus2.ini. Separate ordinary DOC Text, native Symbol Pinstub Names, and Nodes & Connection Dots roles. Reports stored preferences, not live unsaved colors; GDF color bits and custom previews cannot prove native display. Verify visible colors using original Color Palette Preview and desktop_observe.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoOptional explicit MAX+plus II installation root; invalid explicit roots are refused.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds useful context: it reports stored rather than live colors, and warns that GDF color bits and custom previews cannot prove native display — genuine evidence caveats beyond annotations.

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?

Four dense sentences, front-loaded with the core action before the caveats and verification guidance. Every sentence carries information, though the domain jargon ('native Symbol Pinstub Names') makes it slightly heavy for the tool's simple one-parameter nature.

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?

For a read-only inspect tool with annotations carrying safety and no output schema, the description covers purpose, scope, evidence limitations, and verification alternatives. It hints at the grouped role output without detailing return format, which is a minor gap given no output schema exists.

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 description coverage is 100% for the single optional 'root' parameter, which already documents that invalid explicit roots are refused. The description adds nothing further about the parameter, so the baseline 3 applies.

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 resource: 'Read only the [Colors] section of installed maxplus2.ini.' It also delimits scope precisely (the Colors section only) and clarifies the roles it separates, so an agent can tell it apart from other inspect tools like gdf_inspect or scf_inspect.

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?

It sets an explicit boundary ('Reports stored preferences, not live unsaved colors') and routes the agent to alternatives ('Verify visible colors using original Color Palette Preview and desktop_observe'). Clear selection context, though the routing is somewhat indirect and one named resource isn't a sibling tool.

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

gdf_connectionsInspect original source connectionsB
Read-onlyIdempotent

Build source nets preserving unsynthesized instances/pins. Original endpoint/overlap, pin-on-wire, transparent WIRE and remote-name rules; crossings, driver and dangling diagnostics. Separate bitTopology expands explicit bus ranges, scalar member aliases and WIRE ordered/reversed mappings; unresolved widths remain explicit. Paginated; original compilation proves electrical legality.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
limitNoItems per root collection; default20, reduced to fit the response budget.
offsetNoOffset in each root collection; default0.
projectNoExisting ACF whose directory scopes the files.
workspaceNoWorkspace when no project is supplied.
childLimitNoItems per nested detail collection; defaults to root limit.
childOffsetNoIndependent offset in each nested detail collection; default0.

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real context on top: it is paginated, it emits crossings/driver/dangling diagnostics, it expands bus ranges and WIRE mappings via bitTopology, and unresolved widths are surfaced explicitly rather than silently resolved. That is meaningful disclosure of output behavior, though it never states the response shape or limits.

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 purpose is front-loaded and there is no filler, but the remaining text is a dense semicolon-chained stream of domain jargon (pin-on-wire, transparent WIRE, remote-name rules, driver/dangling diagnostics) that resists quick parsing. Compact, but readability is sacrificed for density.

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?

With no output schema and seven parameters, the description should carry more of the return-value burden; it hints at nets plus crossing/driver/dangling diagnostics but never describes the pagination envelope or what a net record contains. Adequate orientation for a complex EDA tool, but not complete.

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 description coverage is 100%, so the schema already documents path, limit, offset, project, workspace, childLimit, and childOffset. The description adds nothing about any parameter except an oblique 'Paginated' nod to limit/offset, so the baseline 3 applies.

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+resource pair ('Build source nets') with a clearly scoped domain object, and the title's 'Inspect original source connections' aligns with that intent. It does not, however, differentiate itself from nearby siblings like gdf_inspect, gdf_geometry, or acf_read_pins, so an agent gets the what but not the why-this-one.

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, when-not-to-use, or alternative-routing guidance anywhere in the text. The agent is left to infer from jargon that this is the net-connectivity reader, with no pointer to siblings such as gdf_inspect or gdf_geometry that also inspect GDF content.

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

gdf_constructConstruct schematics and edit parameters and wire namesA
Destructive

Transactional GDF v6 construction: insert hashed SYM instances, name I/O and electrical wires/buses, replace/clear modern parameter assignment maps, normalize invalid/duplicate native NET_IDs, add/delete orthogonal wires, symbols and free annotations. Existing offsets/current SHA-256 required; preview/backup/atomic apply. Deleted symbols leave wires. Same wire names can connect remote geometry; actual parameters and connections require original compiler/simulator verification. Legacy/ambiguous parameter records are preserved and refused for edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget GDF path inside the chosen scope.
rootNoInstalled symbol-library root; not required for local custom SYM sources.
confirmNoApply when true; otherwise return a preview. Existing session authorization suffices.
projectNoExisting ACF project used as file scope.
workspaceNoWorkspace directory when no project is given.
operationsYesExplicit source-offset operations, or complete positions/names for new objects. All validated before writing.
expectedSha256YesCurrent target GDF SHA-256 from fresh geometry read.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: preview/backup/atomic-apply semantics, that deleted symbols leave their wires behind, that duplicate wire names can connect remote geometry, and that legacy/ambiguous parameter records are preserved and refused for edits. It stops short of describing rollback behavior on partial failure.

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

Conciseness4/5

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

A dense but efficient paragraph: the core purpose leads, operands and prerequisites follow, and caveats close it out. Every sentence carries information, though the run-on enumeration of operations is somewhat heavy to parse in one pass.

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?

For a 12-operation, destructive, offset-addressed construction tool with no output schema, the description covers prerequisites, transactionality, verification caveats, and edge-case semantics (orphaned wires, legacy records). Return-value information is absent but no output schema exists, leaving response shape unspecified — a minor gap.

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 description coverage is 100%, so the schema already documents path, offsets, SHA-256, operations and their sub-fields. The description echoes the offset/SHA-256 requirements but adds no format or syntax detail beyond what the schema states. Baseline 3 is appropriate when the schema carries the load.

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 (construct) and resource (GDF v6) and enumerates the operation families: inserting SYM instances, naming wires/buses, editing parameter maps, normalizing NET_IDs, adding/deleting wires, symbols and annotations. An agent can tell this is a schematic-writing tool. It does not, however, distinguish itself from overlapping siblings such as gdf_edit, gdf_create, or gdf_wire_cleanup, which is the only missing piece for 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?

The description supplies prerequisites (existing offsets and current SHA-256 required; preview unless confirmed; atomic apply) which imply the intended context, but it never says when to reach for this tool versus gdf_edit, gdf_create, or gdf_wire_cleanup. Usage is inferable from the operation list rather than stated.

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

gdf_createCreate a blank original-format schematicA

Create a version-6 GDF sheet with the recovered original-editor blank header/extent. Preview by default; never overwrite an existing file. Use gdf_construct for symbols/wires, then original compiler/simulator for circuit verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget GDF path inside the chosen scope.
widthNoSheet width on the 8-unit grid, default 1904.
heightNoSheet height on the 8-unit grid, default 1232.
confirmNoApply when true; otherwise return a preview. Existing session authorization suffices.
projectNoExisting ACF project used as file scope.
workspaceNoWorkspace directory when no project is given.

TDQS

A4.2/5.0
Behavior4/5

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

Adds substantive behavior beyond the annotations: confirm=false yields a preview rather than an apply, and an existing file is never overwritten. Neither fact is derivable from destructiveHint=false/idempotentHint=false alone, so this is genuine added value; it stops short of describing what the call returns or any write-side effects on the target directory.

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?

Three tight sentences, front-loaded with the action, then the safety default, then the workflow handoff. No filler; every clause carries decision-relevant information.

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?

With no output schema, the description should ideally say what a preview returns relative to an applied create, and it does not. It otherwise covers the mode toggle, the overwrite guarantee, and the follow-on tooling, which is close to sufficient for a 6-parameter creation tool.

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 description coverage is 100%, so path, width, height, confirm, project, and workspace are already documented in the schema. The description only reinforces the confirm preview semantics already stated on that parameter, adding no syntax, defaults, or constraints beyond the structured fields.

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 resource ("Create a version-6 GDF sheet") with the concrete flavor that distinguishes it from other gdf_* writers, and explicitly names the sibling it is not: "Use gdf_construct for symbols/wires." An agent can pick between gdf_create and gdf_construct without opening either schema.

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?

Gives clear context for use (blank sheet creation) and routes the agent to alternatives for the adjacent task (gdf_construct for symbols/wires, compiler/simulator for verification). It stops short of explicit when-not-to-use conditions, so it falls just below the top band.

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

gdf_declarationsInspect original CONSTANT/PARAM declarationsA
Read-onlyIdempotent

Read existing native CONSTANT h/51/52 and PARAM h/53/54 declaration pairs. Reports writable and ambiguous/unsupported legacy forms. These are source declarations or defaults, not generic instance parameter assignments.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
limitNoRoot items per collection; default 20, reduced to fit the result budget.
offsetNoOffset in each root collection; default zero.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
childLimitNoItems per nested collection; defaults to the requested root limit, reduced to fit the result budget.
childOffsetNoIndependent offset in each nested collection; default zero.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral value by saying it reports writable and ambiguous/unsupported legacy forms, telling the agent what the result distinguishes. It omits pagination/budget behavior despite limit/offset/childLimit parameters.

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?

Three short sentences, front-loaded with the primary action and resource. The final sentence earns its place by disambiguating from generic instance parameter assignments rather than padding.

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?

For a read-only tool with no output schema, the description conveys what the output classifies (writable vs ambiguous/unsupported legacy forms) and the scope of the declarations. Nothing critical is missing, though pagination/budget semantics for the four paging parameters are left entirely to the schema.

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 description coverage is 100%, so all seven parameters (path, limit, offset, project, workspace, childLimit, childOffset) are already documented in the schema. The description adds no additional parameter meaning, so the baseline 3 is appropriate.

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 ('Read') and resource ('native CONSTANT h/51/52 and PARAM h/53/54 declaration pairs'), and explicitly excludes a confusable concept ('not generic instance parameter assignments'). It implicitly distinguishes from the gdf_declarations_edit sibling via the read verb, but never names the edit tool as the write counterpart.

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 implied by 'Read existing' plus the clarification that these are source declarations/defaults rather than instance parameter assignments, which is a soft when-not signal. There is no explicit statement of when to call this versus gdf_declarations_edit or gdf_inspect.

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

gdf_declarations_editEdit original constant and parameter declarationsA
Destructive

Edit only an existing unambiguous native CONSTANT/PARAM name/value pair. Retains native IDs, aliases, geometry, fonts and other properties. Requires both name and value, fresh hash, preview and recoverable backup. Compiler/simulator must validate expression, scope and effect.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
editsYesOrdered collection of explicit entries validated by this tool.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
expectedSha256YesCurrent full file SHA-256 from a fresh inspection.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructive=true and non-idempotent. The description adds genuine context beyond them: what is preserved (native IDs, aliases, geometry, fonts), that a recoverable backup exists, and that a compiler/simulator must validate the result. It does not detail failure/rollback behavior, keeping it short of a 5.

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

Conciseness4/5

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

Four tight sentences, front-loaded with the edit scope followed by preservation guarantees and preconditions. Every sentence contributes; wording is dense but not padded.

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?

For a destructive, non-idempotent mutation with no output schema, the description supplies the key missing pieces: preservation semantics, backup/recoverability, and the requirement for a fresh hash and compiler validation. It is largely complete, though it could state what happens on validation failure.

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 description coverage is 100%, so both parameters and nested edit fields are already documented. The description reinforces 'requires both name and value' and 'fresh hash' but adds no syntax or format detail beyond the schema, matching the baseline-3 case.

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 ('Edit... existing... CONSTANT/PARAM name/value pair') and scopes it tightly with 'only an existing unambiguous native'. The 'only existing' qualifier implicitly contrasts with creation siblings like gdf_create/gdf_declarations, but no sibling is named, so differentiation is inferred rather than explicit.

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

Usage Guidelines4/5

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

Gives clear usage constraints: only existing, unambiguous, native declarations, and mandates both name and value plus a fresh hash. It does not explicitly name what tool to use instead for creating or deleting declarations, so the when-not side is implied rather than enumerated.

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

gdf_editEdit existing schematic geometryA
Destructive

Preview/apply lossless GDF v6 root line coordinates, translations, symbol orientation or free annotation text. Existing records only. Requires fresh file SHA-256, rejects unsupported targets/overflow, preserves unrelated bytes and backs up before atomic replacement. Moving a symbol does not move its wires; recompile/export to verify circuit behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesGDF/SYM file inside the chosen project/workspace.
editsYesOne operation per original record offset. Observe again after text edits.
confirmNoApply when true; otherwise preview. Session authorization suffices, no new user approval is implied.
projectNoExisting ACF project; file paths stay inside its directory.
workspaceNoWorkspace scope when no project is given.
expectedSha256YesSHA-256 returned by the latest GDF read.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (destructiveHint/readOnlyHint) by disclosing the SHA-256 freshness precondition, rejection of unsupported targets and overflow, lossless preservation of unrelated bytes, pre-write backup, atomic replacement, and the important caveat that moving a symbol does not move its wires. These are exactly the side-effect and safety facts an agent needs before mutating binary geometry.

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?

Three tight sentences with the operational mode (preview/apply) and target set front-loaded, followed by the safety preconditions and the gotcha warning. No filler or repetition of the tool name.

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

Completeness5/5

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

For a destructive, no-output-schema mutation tool the description supplies the missing contract: how preview differs from apply, the integrity precondition, what is preserved, and how to verify the result. Nothing needed to invoke it correctly appears to be absent.

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 description coverage is 100%, so the schema already documents every parameter, including recordOffset provenance and the maxItems one-operation-per-offset rule. The description echoes the SHA-256 requirement but adds no format, range, or interaction detail beyond the schema, so the baseline 3 applies.

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?

The description names a specific verb pair (preview/apply) and enumerates the exact editable resources: GDF v6 root line coordinates, translations, symbol orientation, free annotation text. 'Existing records only' cleanly distinguishes it from creation siblings like gdf_create and gdf_construct.

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?

It gives a clear when-not ('Existing records only') and valuable post-edit guidance ('recompile/export to verify circuit behavior'). It stops short of naming alternatives, e.g. gdf_move_connected for symbol+wiring moves or gdf_text_edit for text-only changes, leaving the agent to infer which sibling to reach for.

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

gdf_geometryRead original schematic geometryA
Read-onlyIdempotent

Strictly decode GDF/SYM v2..6 coordinates, wires/buses, symbol definitions, original instances, rotations/mirrors, stretched world pin positions and local text anchors. No compiler or GUI needed. Paginated root records and nested collections preserve offsets/counts. Geometry does not prove connectivity; use netlist_export for circuit connections.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesGDF/SYM file inside the chosen project/workspace.
viewNoCollection to inspect; default sheet.
limitNoRoot records per page; default 20, reduced to fit budget.
offsetNoRoot collection offset; default zero.
projectNoExisting ACF project; file paths stay inside its directory.
workspaceNoWorkspace scope when no project is given.
childLimitNoItems per nested collection; default 10, reduced to fit budget.
childOffsetNoOffset in each nested pins/attributes/primitives collection.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the safe-read profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real context the annotations do not: pagination semantics for root records and nested collections preserving offsets/counts, and that no compiler or GUI is required. It does not state return shape or error behavior, but the added pagination detail is meaningful.

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

Conciseness4/5

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

Three dense sentences, front-loaded with the core verb, each carrying distinct information (what is decoded, operating requirements, paging model, and the connectivity caveat). Minor flourish in 'Strictly' and a slightly list-heavy first sentence, 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?

For a complex eight-parameter tool with no output schema, the description communicates scope, paging behavior, and a key semantic caveat (geometry != connectivity). It could go further on what the returned records look like or how the views differ, but it covers enough for correct invocation.

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 description coverage is 100%, so the schema already documents all eight parameters including the view enum and the limit/offset/childLimit/childOffset paging fields. The description's mention of 'paginated root records and nested collections' corroborates the paging model but adds no syntax or defaults beyond the schema. Baseline 3 is appropriate.

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 ('strictly decode') and an explicit resource set (GDF/SYM v2..6 coordinates, wires/buses, symbol definitions, instances, pin positions, text anchors), which is far more informative than the title. It carves out a boundary by stating geometry does not prove connectivity and routing that need to netlist_export. It stops short of distinguishing itself from near siblings like gdf_inspect or gdf_connections, so it is clear but not fully differentiated.

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?

There is one genuine exclusion ('use netlist_export for circuit connections'), which is useful. However there is no guidance on when to choose this over gdf_inspect, gdf_symbol_library, or sym_inspect, or what scenario (original vs compiled schematic) warrants it. Usage is largely implied by the enumerated data types.

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

gdf_graphics_editCreate/edit all root schematic graphicsA
Destructive

Add/delete or resize/restyle root drawing lines, circles and arcs. Original unknown flags/shared symbol definitions retained; drawing lines are not electrical wires. Use gdf_construct for connections. Original offsets/current hash, preview and backup required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
operationsYesOrdered changes; record offsets refer to the original input. Inspect again after applying.
expectedSha256YesCurrent full file SHA-256 from a fresh inspection.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructive/not-idempotent/not-read-only, so the safety profile is covered. The description goes further by disclosing preservation semantics ('original unknown flags/shared symbol definitions retained') and prerequisite workflow ('original offsets/current hash, preview and backup required'), which are genuine behavioral facts not in the annotations.

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?

Three dense sentences with the primary action front-loaded and no wasted filler. Each clause either scopes the operation, prevents operator confusion (wires vs lines) or states a prerequisite.

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?

For a destructive multi-operation tool, it covers the key risks: preservation of unknown data, hash-based concurrency, preview-then-apply, and re-inspection after applying. With 100% schema coverage and annotations covering safety, little is missing; only deeper detail on operation semantics and error behavior is absent.

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?

Schema coverage is 100%, so the baseline is 3 and the schema carries the field-level detail. The description adds conceptual meaning for several parameters by tying offsets to the original input and calling out the current hash and preview/backup requirements, mapping loosely onto recordOffset, expectedSha256 and confirm.

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 specific verbs (add/delete/resize/restyle) against a precise resource (root drawing lines, circles, arcs). It explicitly distinguishes itself from siblings by contrasting drawing lines with electrical wires and naming gdf_construct for connections, so an agent can route correctly without opening another schema.

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?

Names one explicit alternative and the condition that selects it: 'Use gdf_construct for connections.' Combined with the 'not electrical wires' caveat, this gives clear when-to-use guidance. It does not differentiate from other close siblings like gdf_geometry or gdf_edit, so it stops short of a full routing rule.

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

gdf_inspectInspect a schematicA
Read-onlyIdempotent

Read a strictly validated GDF/SYM schematic summary: labels, fonts, title fields and geometry counts. gdf_geometry provides paginated original coordinates, definitions, instances and world pin positions; gdf_edit supports existing v6 geometry. Electrical connectivity requires netlist_export. Optionally compare labels with another drawing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesSchematic to read: absolute, or relative to workspace. A missing .gdf extension is added automatically.
workspaceNoDirectory that a relative path is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.
compareWithNoOptional second schematic to compare against, reporting labels present in one but not the other.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world scope, so the safety profile is covered. The description adds useful context beyond that: the read is strictly validated, the returned content is summarized rather than raw geometry, and connectivity is deliberately out of scope. It does not discuss limits or pagination behavior for this specific read, keeping it below a 5.

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

Conciseness4/5

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

A single dense sentence-pair, front-loaded with what is read before the sibling routing. No filler, though the middle clause packs four sibling disambiguations which makes it feel dense rather than tight.

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?

There is no output schema, so the description must convey what comes back; it does list the summary categories (labels, fonts, title fields, geometry counts) and notes connectivity must come from netlist_export. What it omits is the shape or size of that summary (e.g. counts vs. full lists), which leaves a small gap for a tool with no documented return structure.

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 description coverage is 100%, so all three parameters (path, workspace, compareWith) are already documented, including extension auto-append and workspace default resolution. The description only restates the compare behavior ('Optionally compare labels with another drawing'), adding no syntax or semantics beyond the schema. Baseline 3 applies.

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 (Read) and resource (strictly validated GDF/SYM schematic summary) and enumerates the payload: labels, fonts, title fields and geometry counts. It also names the sibling tools it is not (gdf_geometry, gdf_edit, netlist_export), so an agent can distinguish it without opening schemas.

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

Usage Guidelines5/5

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

Explicitly routes the agent: gdf_geometry for paginated original coordinates/instances/pin positions, gdf_edit for modifying existing v6 geometry, netlist_export for electrical connectivity. This covers both when-to-use-this and when-to-use-alternatives, with the deciding condition attached to each.

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

gdf_move_connectedMove or rotate symbols with checked reconnectionA
Destructive

Move selected GDF6 placements on grid8 and/or choose orientation0..7. Route scalar pin extensions around other source nets and symbol interiors; split existing wires at departed interior pins. Refuse any changed source terminal partition or named-net membership. Original compilation/export/simulation required. Bus bundles/unknown topology refused. Hash/preview/backup transaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
editsYesExplicit selected placements; offsets refer to current input. One entry per placement.
confirmNoApply when true; default preview with no write.
projectNoExisting ACF whose directory scopes the files.
workspaceNoWorkspace when no project is supplied.
maxRouteStepsNoTotal bounded grid search expansions; default100000.
expectedSha256YesCurrent full SHA-256 from fresh file inspection.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and non-idempotent, and the description adds real value beyond them: refusal conditions, precondition that compilation/export/simulation exist, wire-splitting behavior, and hash/preview/backup transaction semantics. Strong disclosure of mutation 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?

Dense and largely front-loaded, but the telegraphic fragment style ('Hash/preview/backup transaction', 'Bus bundles/unknown topology refused') sacrifices readability. Every clause carries information, yet the compression hurts comprehension.

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?

For a complex destructive mutation tool with no output schema, the description covers preconditions, refusals, wire behavior, and transaction semantics. Safety profile is covered by annotations. Fairly complete, though alternative tools are not addressed.

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 description coverage is 100%, so parameters are fully documented in the schema. The description mentions orientation0..7, grid8, and the transaction model, adding marginal color but no syntax beyond schema. Baseline 3 is appropriate.

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: move/rotate GDF6 placements on a grid with reconnection awareness. Distinguishes from gdf_edit/gdf_geometry siblings by emphasizing connectivity-preserving move. Title restates but description leads with the actual operation.

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?

Refusal conditions (bus bundles, unknown topology, changed terminal partition) imply when the tool will not work, but there is no explicit guidance on when to use this versus gdf_edit, gdf_geometry, or gdf_wire_cleanup. Usage context is implied rather than stated.

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

gdf_pin_labelsInspect or clean overlapping pin labelsA
Destructive

File-only GDF/SYM diagnostics. Omit expectedSha256 to inspect exact pin/DOC duplicates and fixed-font same-row pin collisions. Supply a fresh hash to preview cleanup; confirm=true applies with backup. Removes only exact visible duplicate free DOC, preserving native pin labels. Optional right-label alignment moves label anchors only. Does not infer arbitrary glyph/layout collisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
limitNoRoot items per collection; default 20, reduced to fit the result budget.
offsetNoOffset in each root collection; default zero.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
childLimitNoItems per nested collection; defaults to the requested root limit, reduced to fit the result budget.
childOffsetNoIndependent offset in each nested collection; default zero.
expectedSha256NoCurrent full file SHA-256 from a fresh inspection.
alignOverlappingRightPinsNoAlso align colliding right-edge fixed-font pin labels inside the existing symbol; refuse if insufficient space.

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the annotations (destructiveHint=true, readOnlyHint=false): it discloses the inspect→preview→apply workflow, the backup on apply, the exact removal scope ('only exact visible duplicate free DOC, preserving native pin labels'), that alignment moves anchors only, and the refusal behavior when space is insufficient. It even states what the tool will NOT infer, giving strong boundary transparency.

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?

Five dense sentences, but each carries distinct information and the scope statement is front-loaded. Slightly jargon-heavy, but no sentence is redundant; it is appropriately sized for a dual-mode diagnostic/cleanup tool.

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?

For a 10-parameter, annotation-light mutation tool with no output schema, the description is largely complete: modes, apply/backup behavior, removal scope, and negative scope are all covered. It does not describe the inspection output shape, a minor gap given there is no output schema to lean on.

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?

Schema coverage is 100%, so baseline is 3, but the description adds real semantics on top: the meaning of omitting vs supplying expectedSha256, that confirm=true applies-with-backup, and that alignOverlappingRightPins only relocates right-edge label anchors. These interpretations help beyond the raw schema.

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 pair (inspect/clean) and resource (pin labels) scoped to GDF/SYM files, and names the exact phenomena it targets: 'pin/DOC duplicates and fixed-font same-row pin collisions.' This meaningfully differentiates it from generic siblings like gdf_text_format_inspect or gdf_symbol_refresh. It stops short of naming a sibling directly, keeping it out of 5 territory.

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?

Gives explicit mode-selection conditions: 'Omit expectedSha256 to inspect' vs 'Supply a fresh hash to preview cleanup; confirm=true applies with backup.' That is clear when-to-use-this-mode guidance. It does not, however, point to an alternative tool for cases outside its scope, so the alternatives clause is missing.

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

gdf_symbol_libraryRead original symbol prototypesA
Read-onlyIdempotent

List installed max2lib SYM files with SHA-256 and names, or inspect one prototype with local pins, extent and preserved default instance/parameter attributes. Read-only. Symbol insertion uses these hashes and original bytes, independently of any agent SDK.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional .sym path relative to max2lib, or absolute inside that library.
rootNoMAX+PLUS II installation root; defaults to environment/detection.
limitNoItems per page; default 20, maximum 100.
queryNoLiteral case-insensitive substring of library-relative filenames.
offsetNoFile or pin/default-attribute page offset; default zero.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the 'Read-only' sentence is largely redundant. The description adds modest context: inspection preserves default instance/parameter attributes and hashes/original bytes are used for insertion independently of an agent SDK. That is useful but thin against an already-complete annotation set.

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-loads the two capabilities (list vs. inspect) in one sentence, then the read-only fact and downstream-usage note. Efficient overall, though the 'independently of any agent SDK' clause is jargon that slightly dilutes the close.

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?

With no output schema, the description usefully previews return content (hashes, names, pins, extent, preserved default attributes). All parameters are optional and fully schema-documented, so the definition is largely self-sufficient, though the hash-vs-'original bytes' distinction and downstream use remain a bit opaque.

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 description coverage is 100%, so the schema already documents all five parameters in detail. The description only maps path loosely to 'inspect one prototype' and hints at pagination via 'List', adding no syntax or format detail beyond the schema. Baseline 3 is appropriate.

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 specific verbs and resource: 'List installed max2lib SYM files' and 'inspect one prototype' with named fields (SHA-256, pins, extent, default attributes). The two modes are clearly distinguished by the path parameter. It does not name any sibling (e.g., sym_inspect or gdf_symbol_refresh) to differentiate, 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?

The description implies the two usage modes (list all vs. inspect one via path), but never states when to use this tool over sym_inspect, gdf_symbol_refresh, or sym_create, nor any exclusion condition. Usage is inferable but not explicit.

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

gdf_symbol_refreshUpdate embedded schematic symbols from SYMA
Destructive

Preview or apply a hashed same-name/same-type SYM to explicitly selected GDF instances. Shared definitions split so unselected instances retain original bytes. Instances/NET_ID/parameters/placement/rotation remain. Reports pin/interface and geometric contact changes; these require explicit allow flags. Compile/export/simulate to prove actual connectivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
rootNoOptional installed library root.
limitNoRoot items per collection; default 20, reduced to fit the result budget.
offsetNoOffset in each root collection; default zero.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
templateYesWorkspace SYM or absolute installed max2lib SYM.
selectorsYesExplicit selectors: exactly one original offset, definition index or instance name per entry.
workspaceNoWorkspace scope when project is absent.
childLimitNoItems per nested collection; defaults to the requested root limit, reduced to fit the result budget.
childOffsetNoIndependent offset in each nested collection; default zero.
expectedSha256YesCurrent full file SHA-256 from a fresh inspection.
templateSha256YesCurrent full file SHA-256 from a fresh inspection.
allowDisconnectedNoExplicitly permit reported geometric contact changes; this does not prove electrical safety.
allowInterfaceChangesNoExplicitly permit reported pin name/direction/add/delete changes.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructive/not-read-only/not-idempotent, but the description adds substantial behavior the annotations cannot: shared definitions are split so unselected instances retain original bytes, retained fields (instances/NET_ID/parameters/placement/rotation), and that pin/interface and geometric contact changes are reported and require explicit allow flags. It stops short of stating auth/rate/undo specifics.

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?

Four dense sentences, each carrying distinct information (mutation semantics, preservation guarantee, reporting/allow flags, verification path), with the primary action front-loaded. No filler, though the first sentence is slightly packed.

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?

For a complex 15-parameter destructive mutation with no output schema, the description adequately covers the mutation, its preservation guarantees, the change-reporting/allow-flag contract and the verification expectation. Complete enough for correct invocation without explaining return values.

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 description coverage is 100%, so the schema already documents all 15 parameters, and baseline is 3. The description adds only light cross-parameter meaning (hashing of templates implies the two SHA-256 checks; 'explicit allow flags' ties to allowDisconnected/allowInterfaceChanges) rather than new per-parameter 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/action (preview or apply a hashed SYM) against a specific resource (explicitly selected GDF instances/embedded symbols). The 'refresh embedded symbols from SYM' intent is unambiguous, but it never names or contrasts a sibling such as sym_edit or gdf_symbol_library, so the agent must infer the boundary.

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 context is implied ('explicitly selected GDF instances', preview default vs apply) and it adds a useful post-condition workflow ('Compile/export/simulate to prove actual connectivity'). However there is no explicit when-to-use-this-vs-alternative guidance compared with the many nearby edit tools.

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

gdf_text_editEdit all root annotation text fieldsA
Destructive

Create, reposition, restyle or delete root free DOC annotations. Preserves font, metrics, alternative text and opaque bits; refuses electrical labels or instance/pin text. Sequential operations use original offsets and return resulting offsets. Printable Latin-1 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
operationsYesOrdered changes; record offsets refer to the original input. Inspect again after applying.
expectedSha256YesCurrent full file SHA-256 from a fresh inspection.

TDQS

A3.8/5.0
Behavior4/5

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

Adds substantial context beyond annotations: preservation of font/metrics/alternative text/opaque bits, refusal of certain label types, original-offset semantics for sequential operations, and printable Latin-1 restriction. Complements destructiveHint without contradicting it.

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?

Four tight, front-loaded sentences that each earn their place: purpose, preservation, exclusion, ordering, encoding. 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?

For a 6-parameter mutation tool with no output schema, the description covers scope, side effects, ordering, and encoding constraints. Minor gap: destructive behavior and confirmation/preview semantics are left to annotations and schema.

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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description reinforces offset semantics but adds no parameter syntax or format detail beyond the schema.

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 specific verbs (create, reposition, restyle, delete) and resource (root free DOC annotations), distinguishing it from siblings like gdf_geometry or gdf_declarations. Lacks explicit contrast with closest siblings such as gdf_text_format_edit.

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?

Description implies usage through scope constraints ('root free DOC annotations', 'refuses electrical labels or instance/pin text') but gives no explicit when-to-use guidance or named alternative tools for those excluded cases.

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

gdf_text_format_editEdit root DOC fonts, metrics and encoded textA
Destructive

Create/change only free root DOC text in GDF6 or standalone SYM2..6. Choose built-in font0..3 or Windows font face,size with explicit width/height. Exact reversible Windows-936 encoding supports Chinese bytes; Chinese requires Windows font. Preserves electrical labels, shared definitions and opaque tails. Verify glyphs with original editor.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
confirmNoApply when true; default preview with no write.
projectNoExisting ACF whose directory scopes the files.
workspaceNoWorkspace when no project is supplied.
operationsYesOrdered changes use original offsets. Only free root DOC text is writable.
expectedSha256YesCurrent full SHA-256 from fresh file inspection.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare this is a destructive, non-read-only, non-idempotent write, so the safety bar is partly met structurally. The description adds real behavioral context: it preserves electrical labels, shared definitions and opaque tails, states the encoding is exact/reversible for Chinese bytes, notes Chinese requires a Windows font, and recommends verifying glyphs in the original editor. It does not describe write ordering/failure behavior on a SHA mismatch, which keeps it from a 5.

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

Conciseness4/5

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

Four dense sentences, front-loaded with the scope/verb and then the encoding constraints; essentially no filler. Density of jargon makes it slightly harder to scan but every sentence carries information.

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?

For a complex, destructive, no-output-schema edit tool this covers scope, alternatives of font selection, encoding rules, preservation guarantees and a verification recommendation. Remaining gaps (error/precondition behavior around expectedSha256, relationship to gdf_text_format_inspect workflow) are minor given annotations cover the safety profile.

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?

Schema description coverage is 100%, so schema already documents syntax and defaults (baseline 3). The description adds cross-parameter meaning not present in the schema — that Chinese bytes in Windows-936 require a Windows font face — and reinforces width/height as explicit glyph/layout metrics rather than font size.

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 — 'Create/change only free root DOC text in GDF6 or standalone SYM2..6' — plus the font/metrics scope, which is more precise than the title alone. The scope restriction ('only free root DOC text', 'Preserves electrical labels...') helps separate it from broader edit tools, but it never names or contrasts with the close siblings gdf_text_edit and gdf_text_format_inspect.

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 implied through the scope constraint and the choices offered ('built-in font0..3 or Windows font face,size', 'Verify glyphs with original editor'), which tells the agent the intended operation shape. However, there is no explicit when-to-use vs gdf_text_edit / gdf_text_format_inspect guidance or prerequisite statement (e.g., run inspect first).

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

gdf_text_format_inspectInspect native fonts and explicitly decoded textA
Read-onlyIdempotent

Inspect all GDF/SYM q records, original font strings, built-in font codes, stored metrics and raw text bytes. Explicit latin1/windows-936 decoding; no guessed encoding. Pagination and malformed-encoding diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
limitNoItems per root collection; default20, reduced to fit the response budget.
offsetNoOffset in each root collection; default0.
projectNoExisting ACF whose directory scopes the files.
encodingNoExplicit original byte encoding. The GDF/SYM has no encoding marker; default latin1.
workspaceNoWorkspace when no project is supplied.
childLimitNoItems per nested detail collection; defaults to root limit.
childOffsetNoIndependent offset in each nested detail collection; default0.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, and the description adds real value beyond them: explicit latin1/windows-936 decoding with 'no guessed encoding' and malformed-encoding diagnostics. This tells the agent how results are produced and what edge cases surface. It stops short of describing output shape or access requirements.

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?

Two compact sentences front-loaded with the inspected artifacts before the decoding and diagnostics notes. Dense but no wasted phrasing; the semicolon-packed second sentence is slightly terse but earns its place.

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?

For an 8-parameter read tool with no output schema, the description names the returned categories (records, font strings, codes, metrics, raw bytes) and flags pagination plus malformed-encoding diagnostics. Adequate, though it does not explain result structure or the project/workspace scoping tradeoff.

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 100%, so all eight parameters (including the encoding enum and pagination) are already documented in the schema. The description reinforces the decoding choice and pagination but adds no syntax or meaning beyond the structured fields, so the baseline 3 applies.

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) and clearly enumerates the resources: GDF/SYM q records, original font strings, built-in font codes, stored metrics, and raw text bytes. This distinguishes it well from generic gdf_inspect, though it never names the edit counterparts (gdf_text_format_edit) as its 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?

The description explains what is inspected but never states when to prefer this over gdf_inspect, sym_inspect, or the text edit tools, nor any prerequisites. The agent gets no routing guidance despite a crowded sibling set.

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

gdf_wire_cleanupPrune checked anonymous wire tailsA
Destructive

Remove only unannotated electrical leaf segments in GDF6 pin-bearing physical nets. Preserve surviving token bytes, named wires, pins, isolated unconnected nets and overlapping conductors. Every round checks source scalar pin partitions and complete bus bit/alias partitions. Refuse unknown topology or exceeded budgets; compile and simulate the result independently. Fresh hash, preview and backup transaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the selected scope.
confirmNoApply when true; default preview without writing.
projectNoExisting ACF whose directory scopes files.
maxPassesNoMaximum leaf-peeling rounds, default1000.
workspaceNoWorkspace scope when no project is selected.
expectedSha256YesCurrent full GDF SHA-256 from a fresh inspection.
maxComparisonsNoFixed-cap cleanup comparison budget, default4000000; caller may lower it.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare destructive=true and idempotent=false, and the description meaningfully adds to that: it enumerates exactly what is destroyed (unannotated leaves only) versus what survives (named wires, pins, isolated nets, overlapping conductors), and discloses refusal and compile/simulate/backup behavior. This is real depth beyond the annotation flags.

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?

Dense but front-loaded: the removal scope leads, followed by preservation, invariants, refusal, and transaction semantics in tight sentences. No filler, though the telegraphic phrasing borders on terse.

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?

For a destructive, non-idempotent mutation with no output schema, the definition covers the destructive surface, safeguards (preview/backup/fresh hash), and refusal boundaries. Return values need no explanation absent an output schema.

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 description coverage is 100%, so path, confirm, expectedSha256, maxPasses, maxComparisons, project and workspace are already fully documented. The description gestures at the budget and hash (via 'fresh hash', 'exceeded budgets') but adds no syntax or format detail beyond the schema, which is the correct baseline.

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 ('Remove') and a tightly scoped resource ('unannotated electrical leaf segments in GDF6 pin-bearing physical nets'), which cleanly separates it from gdf_edit and gdf_construct. The jargon is heavy but the intent is unambiguous to a domain agent.

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 'Remove only...' scoping and the preserve list implicitly tell the agent when this is appropriate, and the refusal conditions (unknown topology, exceeded budgets) bound its use. However, it never names an alternative tool or an explicit when-not condition, so routing versus siblings like gdf_edit remains inferred.

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

installation_statusInstallation statusA
Read-onlyIdempotent

Locate the MAX+PLUS II installation (maxplus2.exe / setacf.exe), report version info from maxplus2.ini, available device families, and additional bundled tools. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoInstallation root, e.g. C:\maxplus2. Defaults to MAXPLUS2_ROOT or common paths.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior. The description adds useful context beyond that by naming the executables it locates and the specific information it reports from maxplus2.ini and bundled tools, though it does not discuss failure modes or 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?

The description is a single tight sentence front-loaded with the primary action and scope. Every clause adds specific, non-redundant information, and the trailing 'Read-only' note is short and clearly framed.

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?

With rich annotations and no output schema, the description adequately summarizes the return information an agent can expect. It does not elaborate on the optional root parameter or error cases, but the schema covers parameter semantics and the annotations cover safety, making the description nearly complete for this simple tool.

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 description coverage is 100%, and the single optional 'root' parameter is fully documented in the schema, including default behavior. The description adds no additional meaning about this parameter, so the baseline of 3 applies.

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+resource pattern ('locate the MAX+PLUS II installation') and details what is reported (version info, device families, bundled tools). It clearly identifies the tool's focus, though it does not explicitly contrast itself with nearby siblings such as capability_matrix or probe_executable.

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 states what the tool does and notes that it is read-only, but gives no guidance on when to use it versus alternatives. It does not mention prerequisites, context, or sibling tools that might also report environment or capability information.

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

job_cancelCancel a background jobA
DestructiveIdempotent

Terminate a running background job by killing its child process. Use this rather than abandoning a job: an abandoned job keeps running and keeps holding the project directory. Build artifacts already written are left in place — this stops work, it does not undo it.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesThe jobId to terminate.

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses what is destroyed (child process), what is preserved (build artifacts already written), what happens if you don't call it (abandoned job keeps running and holding the project directory), and that the action is not reversible. This is consistent with destructiveHint=true and adds real operational context.

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?

Three short sentences, front-loaded with the action and mechanism, followed by the usage rule and the consequence caveat. No filler or repetition.

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

Completeness5/5

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

For a one-parameter mutation tool with annotations covering safety profile and no output schema, the description supplies everything needed: what it does, why to prefer it, and the side-effect boundary. Nothing material is missing.

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?

Only one parameter (jobId) and schema description coverage is 100%, so the schema already documents it fully. The description adds no format, source, or id-acquisition guidance beyond the schema, which is the baseline-3 case.

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 resource — 'Terminate a running background job by killing its child process' — with the mechanism included. An agent can immediately distinguish this from job_status or any of the project/file editing siblings.

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?

Gives explicit when-to-use guidance ('Use this rather than abandoning a job') and explains why the alternative is bad. It does not name a sibling tool (e.g. job_status) as the counterpoint, so routing is slightly inferential, but the condition that selects this tool is unambiguous.

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

job_statusCheck a background jobA
Read-onlyIdempotent

Poll a background job started with async:true. Returns running/done/failed/cancelled, how long it has been going, how many child processes are live, and the full result once it settles. This exists because a client timeout is wall-clock and does NOT stop the work: polling is the only way to keep a long compile without losing it. Results are held for 30 minutes after they settle.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesThe jobId returned when the job was started with async:true.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely new operational facts: the returned status set, elapsed time, live child-process count, and a 30-minute post-settlement retention window. It also explains the non-obvious semantic that a client timeout does not stop the underlying work, which is exactly the kind of behavior an agent cannot infer from the schema.

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

Conciseness5/5

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

Four sentences, front-loaded with the action, then the rationale, then return contents, then retention. Every sentence carries distinct information and nothing is repeated from the schema or annotations.

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

Completeness5/5

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

With no output schema, the description correctly carries the return-value burden by enumerating the status values and describing what accompanies them. For a one-parameter read tool, the retention window and timeout semantics close the remaining gaps an agent would need.

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 description coverage is 100% and the single jobId parameter is already documented there as 'the jobId returned when the job was started with async:true.' The description restates the async:true provenance but adds no format, lifecycle, or error semantics beyond the schema, so the baseline 3 applies.

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 resource ('Poll a background job started with async:true') and immediately scopes it to async-started jobs, which cleanly separates it from job_cancel and the synchronous plan/run siblings. An agent can tell what this returns (running/done/failed/cancelled plus timing and child-process counts) without opening anything else.

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?

Gives a clear condition for use ('started with async:true') and a rationale that functions as a when-to-use rule: polling is the only way to retain a long compile after a client timeout. It stops short of naming job_cancel as the alternative for stopping work, so the 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.

list_projectsList projectsB
Read-onlyIdempotent

Recursively find .acf projects under a root directory and list the artifacts already compiled for each. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNoDirectory to scan. Defaults to MAXPLUS2_WORKSPACE or the server cwd.
limitNoMaximum projects to return (default 500).
maxDepthNoRecursion depth limit (default 6).

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the trailing 'Read-only' largely restates structured data. The description does add a behavioral detail beyond the annotations, namely that discovery is recursive and that per-project compiled artifacts are surfaced, but says nothing about ordering, truncation behavior when limit is hit, or scan cost.

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?

Two short sentences, zero filler, with the core action front-loaded and the safety note as a brief trailing clause. Every sentence earns its place.

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?

With no output schema, the description does need to convey what comes back, and it does so at a high level (each project's already-compiled artifacts). Defaults and parameter semantics live in the schema, so nothing critical is missing, though a hint about result shape or ordering would help.

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 description coverage is 100%, so root, limit and maxDepth are already fully documented with defaults. The description corroborates 'root directory' and the recursive nature (maxDepth) but adds no syntax, format, or edge-case meaning beyond the schema. Baseline 3 is appropriate.

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 action and resource: recursively find .acf projects under a root and list compiled artifacts per project. That is distinguishable from generic sibling tools like project_files or project_inspect in spirit, but it never names or contrasts with those siblings explicitly, so an agent must infer the boundary.

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 or when-not-to-use guidance, and no mention of alternatives among the many project-related siblings (project_inspect, project_files, project_search). The only usage signal is implicit in the scanning behavior.

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

maxplus2_planPlan a maxplus2 runA
Read-onlyIdempotent

Build the exact maxplus2.exe command line for compile / timing analysis / simulation / object conversion, WITHOUT running it.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory for the child process. Defaults to the project directory, which is where MAX+PLUS II expects to run.
rootNoMAX+PLUS II installation root, for example C:\maxplus2. Defaults to MAXPLUS2_ROOT, then a scan of common paths.
taRegNoTiming Analyzer, Registered Performance (-ta_reg).
outHexNoHEX output (-hex). REJECTED by this build; compiling already writes <project>.hex.
outJ11NoHEX output (-hex). REJECTED by this build; compiling already writes <project>.hex.
outJamNoJAM STAPL output (-jam). REJECTED by this build.
outJb1NoJBC 1.0 output (-jb1). REJECTED by this build.
outJbcNoJBC 2.0 output (-jbc). REJECTED by this build.
outPofNoPOF output (-pof). REJECTED by this build, but compiling writes <project>.pof anyway.
outRbfNoRBF output (-rbf). REJECTED by this build.
outSbfNoSBF output (-sbf). REJECTED by this build.
outSvfNoSVF output (-svf). REJECTED by this build, so this installation cannot derive a JTAG programming file.
outTtfNoTTF output file (-ttf). REJECTED by this build; compiling writes <project>.ttf.
simCmdNoSimulator command file (-cmd). REJECTED by this build.
simHstNoSimulator command file (-cmd). REJECTED by this build.
simScfNoStimulus file. A .vec is converted by the Simulator; END_TIME must be 0.0ns for that to span the run.
simTblNoWhere to write the simulator result table. Plain text, and what verification reads back.
simVecNoStimulus file. A .vec is converted by the Simulator; END_TIME must be 0.0ns for that to span the run.
compileNoRun the Compiler (-c).
convertNoConvert object files (-convert).
projectYesProject name (for example "top") or an absolute path to its .acf file. A bare name is resolved against workspace, and is rejected as ambiguous if several projects share it.
rebuildNoBack up/move matching top and numbered hierarchy CNF before compile to force source extraction (default true); false requests native incremental reuse.
taDelayNoTiming Analyzer, Delay Matrix (-ta_delay).
taSetupNoTiming Analyzer, Setup/Hold (-ta_setup).
simulateNoRun the Simulator (-s).
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.
ignoreErrorsNoContinue past errors (-i).
timingAnalyzerOutputNo-tao file.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description still adds genuine value by clarifying that the output is the constructed command line itself, not side effects. It doesn't mention validation errors or what the returned plan looks like, but annotations carry most of the burden here.

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 efficient sentence, front-loaded with the verb and resource, and the key non-execution constraint is stated immediately. No waste, though the very terse style leaves no room for additional orientation that a 28-param tool might benefit from.

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?

With 28 parameters, no output schema, and a sibling apply/run tool, the description covers the core non-execution behavior but says nothing about what the returned plan is, whether it validates inputs, or how it relates to maxplus2_run/setacf_plan/job_status in a workflow. Adequate given full schema coverage and annotations, but thin for a tool of this complexity.

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?

Schema description coverage is 100%, so the schema does the heavy lifting and baseline is 3. The description's explicit framing of the mode categories (compile / timing analysis / simulation / object conversion) helps an agent mentally group the 28 parameters, adding real orientation value beyond the flat schema.

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 (build the command line), resource (maxplus2.exe), and critically distinguishes itself from the sibling maxplus2_run by emphasizing 'WITHOUT running it.' That is exactly the distinction an agent needs to choose between plan and run.

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 description makes the plan-vs-execute distinction clear through the phrase 'WITHOUT running it,' and the sibling maxplus2_run is implied as the alternative. It doesn't explicitly name maxplus2_run nor lay out when planning is preferred over direct execution, so it falls short of a 5.

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

maxplus2_runRun maxplus2A

Execute maxplus2.exe (compile / simulate / timing / convert) with a hard timeout, then report which artifacts changed and the parsed report summary. Beware: this starts a 2002-era Win32 process that can block on modal dialogs.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory for the child process. Defaults to the project directory, which is where MAX+PLUS II expects to run.
rootNoMAX+PLUS II installation root, for example C:\maxplus2. Defaults to MAXPLUS2_ROOT, then a scan of common paths.
asyncNoRun in the background and return a jobId immediately instead of blocking. Use for any compile or simulation that may outrun the client timeout: a client timeout does NOT stop the child process, so a blocking call that is abandoned keeps running with nobody holding the result. Poll with job_status.
taRegNoRun the Timing Analyzer in Registered Performance mode (-ta_reg).
outHexNoHEX output (-hex). REJECTED by this build; compiling already writes <project>.hex.
outJ11NoHEX output (-hex). REJECTED by this build; compiling already writes <project>.hex.
outJamNoJAM STAPL output (-jam). REJECTED by this build.
outJb1NoJBC 1.0 output (-jb1). REJECTED by this build.
outJbcNoJBC 2.0 output (-jbc). REJECTED by this build.
outPofNoPOF output (-pof). REJECTED by this build, but compiling writes <project>.pof anyway.
outRbfNoRBF output (-rbf). REJECTED by this build.
outSbfNoSBF output (-sbf). REJECTED by this build.
outSvfNoSVF output (-svf). REJECTED by this build, so this installation cannot derive a JTAG programming file.
outTtfNoTTF output file (-ttf). REJECTED by this build; compiling writes <project>.ttf.
simCmdNoSimulator command file (-cmd). REJECTED by this build.
simHstNoSimulator command file (-cmd). REJECTED by this build.
simScfNoStimulus file. A .vec is converted by the Simulator; END_TIME must be 0.0ns for that to span the run.
simTblNoWhere to write the simulator result table. Plain text, and what verification reads back.
simVecNoStimulus file. A .vec is converted by the Simulator; END_TIME must be 0.0ns for that to span the run.
compileNoRun the Compiler (-c). This also writes the .pof, .rpt and .pin artifacts.
convertNoConvert object files (-convert).
projectYesProject name (for example "top") or an absolute path to its .acf file. A bare name is resolved against workspace, and is rejected as ambiguous if several projects share it.
rebuildNoBack up/move matching top and numbered hierarchy CNF before compile to force source extraction (default true); false requests native incremental reuse.
taDelayNoRun the Timing Analyzer in Delay Matrix mode (-ta_delay).
taSetupNoRun the Timing Analyzer in Setup/Hold Matrix mode (-ta_setup).
simulateNoRun the Simulator (-s). Requires stimulus: pass simScf, or leave a .scf or a matching .vec next to the project.
timeoutMsNoHard timeout, default 900000 (15 min).
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.
ignoreErrorsNoContinue past errors (-i). Use when you want every diagnostic from one run rather than stopping at the first failure.
timingAnalyzerOutputNoFile for Timing Analyzer output. Each analysis mode is emitted with its own -tao, so multiple modes cannot overwrite one file.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations establish it is not read-only and not idempotent, but the description adds materially beyond them: a hard timeout, the fact that it reports which artifacts changed plus a parsed report summary, and the significant warning that the 2002-era Win32 process can block on modal dialogs. That blocking risk is exactly the kind of behavioral trait an agent needs and cannot get from structured fields.

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?

Two sentences, front-loaded with the action and the modes, followed by the reporting behavior and the risk warning. No filler; every clause earns its place.

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

Completeness4/5

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

For a 30-parameter, non-idempotent execution tool with no output schema, the description covers purpose, output reporting, timeout, and a critical failure mode. The remaining gap is routing context against sibling tools, which keeps it from being fully complete.

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 description coverage is 100%, so the schema already annotates all 30 parameters thoroughly (including per-flag notes like 'REJECTED by this build'). The description adds no parameter-level meaning of its own, which is acceptable at full coverage but earns only the baseline.

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 (Execute) and resource (maxplus2.exe), enumerates the four modes (compile/simulate/timing/convert), and states the reporting behavior (artifacts changed + parsed report summary). It is unambiguous what the tool does, though it never explicitly contrasts itself with the similar-looking siblings maxplus2_plan or simulate_and_verify.

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/when-not guidance relative to siblings like maxplus2_plan, probe_executable, or simulate_and_verify. The only caveat offered is the modal-dialog warning, which is a risk note rather than routing guidance. The useful async guidance ('a client timeout does NOT stop the child process') lives in the schema, not the description.

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

memory_writeWrite a ROM/RAM memory imageA

Generate an Intel/Altera MIF with explicit WIDTH, DEPTH, hexadecimal addresses/data and initialized unused addresses. Arbitrary width values may use integer strings. Preview or apply to a .mif with hash checking/backups.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to the project/workspace. Absolute paths must remain inside that scope.
depthYesNumber of memory addresses.
widthYesWord width in bits.
valuesYesAddress-zero-first unsigned values. Large values use decimal, 0x-prefixed hex or 0b-prefixed binary strings.
confirmNoApply the described file change when true; otherwise return a preview. This is a tool argument, not a request for another user approval.
projectNoExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.
defaultValueNoValue for remaining addresses, default 0.
expectedSha256NoExisting MIF SHA-256 if replacing a file.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark this as a non-read-only, non-destructive, non-idempotent write, so the safety profile is covered. The description adds genuine behavioral context beyond that: that apply mode performs hash checking and creates backups, that unused addresses are initialized, and that a dry-run preview is returned when confirm is false. It does not describe failure behavior or rate/scope constraints, keeping it out of 5 territory.

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 compact sentences with the verb and resource front-loaded. The middle sentence about integer strings for arbitrary widths is slightly cryptic and could be read as conflicting with width being an integer, but overall there is little waste.

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?

For a file-writing tool with no output schema, the description does explain what is returned in preview mode and that apply is guarded by hash checking and backups. It is nearly complete for an agent to invoke correctly; only edge-case behavior (overwrite conflicts, error returns) is left unspecified.

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?

Schema coverage is 100%, so the baseline is 3 and the schema already documents all nine parameters in detail. The description adds marginal semantic value by tying 'initialized unused addresses' to the defaultValue parameter and noting that width/depth are explicit rather than inferred, though the 'integer strings' remark largely restates the values schema.

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 (Generate) and resource (Intel/Altera MIF memory image), and the description of explicit WIDTH/DEPTH and initialization makes it clear this produces a memory-init file rather than a stimulus or netlist artifact. It does not name a sibling tool to differentiate from, but the resource is concrete enough to disambiguate from stimulus_write or project_edit_file.

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 'Preview or apply to a .mif with hash checking/backups' implies a preview-then-apply workflow, which is useful guidance, but there is no explicit statement of when to choose this tool over stimulus_write or project_edit_file, and no stated prerequisites beyond the schema's project/workspace scoping.

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

netlist_exportExport circuit connectivity with the original compilerA

Copy a GDF/HDL/ACF/EDIF design and local dependencies to a fresh temporary directory; enable original MAX+plus II EDIF/VHDL/Verilog/AHDL writers and compile there. Return source hashes, actual compiler evidence, exported files and structured port/instance/net connectivity. Original files remain untouched. The netlist is synthesized logic; original drawing placement and source component identities can change. Supports async jobs and cancellation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesSource file relative to the project/workspace; absolute paths must remain within that scope.
rootNoMAX+plus II installation root, default MAXPLUS2_ROOT/discovery.
asyncNoReturn jobId immediately; poll job_status or stop with job_cancel.
projectNoExisting ACF project to scope file paths to its directory.
timeoutMsNoCompiler timeout; default 60000 milliseconds.
workspaceNoWorkspace scope when project is omitted; defaults to MAXPLUS2_WORKSPACE.

TDQS

A4/5.0
Behavior4/5

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

Goes well beyond the annotations: it discloses that work happens in a fresh temporary directory, that original files remain untouched, what is returned (source hashes, compiler evidence, exported files), that the netlist is synthesized logic with possible placement/identity changes, and that async/cancel are supported. The untouched-original-files claim is consistent with destructiveHint=false, though it does not explicitly reconcile non-idempotent repeated compiles. Since annotations are present, the bar is lower and this adds substantial context.

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 dense sentences, front-loaded with the core action and followed by return values and caveats. Every sentence carries information, though the enumeration of return artefacts and caveats is somewhat packed.

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

Completeness5/5

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

Despite having no output schema, the description enumerates return values, discloses the temp-directory mutation strategy, async/cancellation behavior, and the synthesized-logic caveat. Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter including path scoping, root, async, project, workspace, and timeout. The description only gestures at async/cancellation and adds no syntax or format detail beyond the schema, making the baseline 3 appropriate.

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 chain (copy, enable writers, compile) and the exact resource produced (structured port/instance/net connectivity). The mention of GDF/HDL/ACF/EDIF inputs and the original MAX+plus II writers clearly separates it from siblings like maxplus2_run or gdf_connections.

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 implied rather than stated: it is the tool that yields structured netlist connectivity, and it notes async jobs/cancellation, which hints at the async parameter. However, it never names when to prefer this over maxplus2_run or a plain compile, nor any exclusions.

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

parse_reportParse a reportB
Read-onlyIdempotent

Parse a MAX+PLUS II .rpt / .summary / .pin file into structured severity counts, statuses, device, and diagnostics. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoExplicit report path (absolute, or relative to workspace).
projectNoProject name; uses its .rpt. Optional if path is given.
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.
maxDiagnosticsNoCap on returned diagnostics (default 200).

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the trailing 'Read-only.' restates structured data rather than adding to it. What the description does add beyond annotations is the nature of the returned content (severity counts, statuses, device, diagnostics), which is useful given there is no output schema.

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?

Two short sentences, front-loaded with the verb and file types, with no filler. The trailing 'Read-only.' is redundant with the annotations and could be dropped, but the overall size is proportionate.

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?

With no output schema, the description usefully enumerates what the parser returns (severity counts, statuses, device, diagnostics), which is the main thing an agent needs to know. For a zero-required-parameter read tool with full schema coverage and complete annotations, this is close to sufficient.

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 description coverage is 100%, so all four parameters (path, project, workspace, maxDiagnostics) are already documented, including the 'optional if path is given' relationship and defaults. The description adds no syntax, format, or fallback detail beyond that, so the baseline 3 applies.

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 precise verb (Parse) and the exact resource types (.rpt/.summary/.pin) plus the shape of the result (severity counts, statuses, device, diagnostics). It is clear what it does, though it does not differentiate itself from the sibling parse_tbl or explain why an agent would choose one parser over the other.

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 the many neighboring read/parse/inspect tools (parse_tbl, project_parse_file, project_inspect). The only usage-adjacent statement is 'Read-only', which is a safety note rather than a routing rule, so the agent must infer the context entirely.

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

parse_tblParse result tableA
Read-onlyIdempotent

Parse an existing MAX+PLUS II Simulator result table (.tbl) into a time-indexed trace of inputs, outputs and buried nodes, with optional expected-value checking. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoReturn every row.
pathNoExplicit .tbl path.
limitNoMax trace rows to return (default 40).
expectNoExpected values as { "<time>": { "<SIGNAL>": value } }. Values may be numbers or hex strings. A mismatch is reported, not thrown.
projectNoProject name; uses its <project>.tbl. Optional if path is given.
toleranceNoTime tolerance, in the table's own unit, when matching an expectation to a simulation row. Default 0.05.
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the trailing 'Read-only' largely restates it. The description does add one genuine behavioral trait: optional expected-value checking against the trace, though the mismatch-is-reported-not-thrown detail lives in the schema rather than here.

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 with the core action, the input artifact and the output shape front-loaded, plus a two-word safety tag. No filler or redundancy.

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?

With no output schema, the description correctly compensates by characterizing the return value as a time-indexed trace of inputs, outputs and buried nodes. It omits error behavior for a missing or malformed .tbl file and the interaction between full and limit, which is a minor gap given full schema coverage.

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 description coverage is 100%, so every parameter including the nested expect object and tolerance already carries its own documentation; the baseline is 3. The description only echoes this by mentioning 'optional expected-value checking' and adds no formatting or resolution detail beyond the schema.

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 (Parse) and resource (MAX+PLUS II Simulator result table, .tbl) and describes the shape of the result: a time-indexed trace of inputs, outputs and buried nodes. This is clearly distinguishable from sibling tools like parse_report and project_parse_file, which target different artifacts.

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 file-type scoping ('an existing ... result table (.tbl)') implies when the tool applies, but there is no explicit guidance on when to prefer it over parse_report, project_parse_file, or simulate_and_verify, and no stated prerequisites such as a completed simulation run.

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

probe_executableProbe the executableA
Idempotent

Run maxplus2 -v (or -h) to verify the 2002-era binary actually starts and returns on this host. Read-only and project-independent. Run this before trusting any headless compile loop: MAX+PLUS II can block forever on a modal dialog.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory for the child process. Defaults to the project directory, which is where MAX+PLUS II expects to run.
modeNoWhich probe to run (default version).
rootNoMAX+PLUS II install root.
timeoutMsNoHard timeout, default 60000.

TDQS

A3.6/5.0
Behavior1/5

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

The description asserts 'Read-only,' while the annotations declare readOnlyHint=false — a direct contradiction of a declared safety property, which the rubric treats as a score of 1. The valuable behavioral detail it does add (the binary can block forever on a modal dialog, and the probe is idempotent per the annotation) is undercut by the conflicting safety claim, which could lead an agent to skip the timeoutMs guard.

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?

Three sentences, and the operative command and the pre-flight rule are front-loaded, which is good structure. However, the middle sentence ('Read-only and project-independent') is both the source of the annotation conflict and less load-bearing than the timeout/modal-dialog warning that follows it.

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?

For a four-parameter, zero-required probe with no output schema, the definition covers the invocation, the working-directory expectation, the failure mode it exists to catch, and the default timeout. The remaining gap is what a successful probe yields back to the agent (version string vs. exit status), which matters for deciding whether to proceed to a compile.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds semantics the schema does not carry: why cwd matters (MAX+PLUS II expects to run in the project directory) and that mode maps to the -v/-h flags. It does not explain what distinguishes the version and help probes behaviorally, but the extra project-layout context is real value.

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+resource and the exact underlying command: run `maxplus2 -v` (or -h) to verify the binary starts and returns. It also distinguishes scope ('project-independent') and separates itself from the compile-loop siblings like maxplus2_run by positioning itself as the prerequisite gate.

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?

Gives a clear conditional trigger: 'Run this before trusting any headless compile loop,' with a rationale (blocking on a modal dialog) that tells the agent when the probe is worth the call. It stops short of naming the alternatives it should precede or stating when it is unnecessary, so it falls just under a 5.

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

project_cloneClone a project for isolated workA

Copy the project directory into a new directory; preserve names and verify SHA-256 for every copied file. Default all; sources selects design extensions and explicit includePaths, avoiding old SCF/TBL/reports in large projects. Preserves originals, excludes backup stores. Does not infer external hierarchy dependencies; inspect and compile the copy.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoApply the described file change when true; otherwise return a preview. This is a tool argument, not a request for another user approval.
profileNoDefault all. sources copies ACF/GDF/SYM/HDL/INC/MIF/HEX/EDIF/ASM, while excluding other files unless named in includePaths.
projectYesExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
directoryYesNew destination directory under workspace. Must not already exist or be inside the source directory.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.
includePathsNoExplicit files to retain, e.g. a stimulus SCF/VEC or memory asset with an unusual extension. Each must exist within the source directory.

TDQS

A4.1/5.0
Behavior4/5

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

Adds real behavioral context beyond annotations: SHA-256 verification of each copied file, 'Preserves originals', 'excludes backup stores', and the caveat that it does not infer external hierarchy dependencies. This is consistent with destructiveHint=false and adds meaningful edge-case disclosure, though it omits failure/rollback behavior.

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 core purpose and reasonably tight at three sentences. Minor awkwardness from the telegraphic 'Default all;' fragment, but no wasted content.

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?

For a clone tool with no output schema and fully documented params, the description covers the copy semantics, integrity checking, exclusions, and required follow-up steps. It does not describe the return/preview payload, but otherwise an agent has enough to invoke it 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 description coverage is already 100%, so the schema fully documents all six parameters. The description restates the profile enum behavior (already in schema) and adds only the 'avoiding old SCF/TBL/reports' rationale, which is marginal added value. Baseline 3 is appropriate.

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 resource: 'Copy the project directory into a new directory'. An agent can immediately distinguish this from sibling project_create or project_restore_file because the copy-into-new-directory behavior is stated up front.

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?

Explains profile selection ('Default all; sources selects design extensions ... avoiding old SCF/TBL/reports in large projects') and suggests a follow-up workflow ('inspect and compile the copy'). Clear context, but it never explicitly states when NOT to use this tool or names an alternative.

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

project_createCreate a MAX+plus II projectA

Create an isolated directory with a named CHIP .acf, optional HDL source and END_TIME=0.0ns. Preview by default, refuse existing directories; use one directory per design.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject/HDL top identifier, for example demo.
deviceNoOptional installed device name, for example EP1K10TC100-1.
sourceNoOptional complete HDL text for the top design.
confirmNoApply the described file change when true; otherwise return a preview. This is a tool argument, not a request for another user approval.
encodingNoFile encoding; latin1 preserves MAX+plus II legacy bytes. Select utf8 explicitly for Unicode files.
directoryNoNew directory relative to the workspace, defaulting to the project name.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.
sourceExtensionNoTop source extension; defaults to .vhd.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-readonly, non-destructive, non-idempotent behavior. The description adds useful context beyond that: it previews by default, refuses existing directories, creates an isolated directory, and sets END_TIME=0.0ns. It does not cover authorization or rate limits, so it stops short of a 5.

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

Conciseness5/5

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

Two sentences with no wasted words. The first sentence front-loads the creation action and artifact, and the second quickly covers default preview, refusal behavior, and the one-directory-per-design rule.

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?

For an 8-parameter creation tool with no output schema, the description adequately covers the key novel behaviors: preview default, refusal on existing directories, and the one-design-per-directory constraint. It could still say more about the non-idempotent nature or how the preview result should be consumed, but nothing critical is missing.

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 description coverage is 100%, so the schema already documents all 8 parameters, including confirm, encoding, directory, workspace, device, and sourceExtension. The description adds only marginal parameter meaning (optional HDL source, isolated directory) and mentions END_TIME=0.0ns, which is not a parameter. Baseline 3 applies when the schema does the heavy lifting.

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 action (Create) and the resource (an isolated directory with a named CHIP .acf, optional HDL source) and mentions a constraint (END_TIME=0.0ns). It clearly tells the agent what artifact is produced, but it does not explicitly differentiate itself from sibling creation tools like project_clone or project_restore_file.

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 behavioral context — preview by default, refuse existing directories, one directory per design — which implies how to use the tool. However, it does not state when to choose project_create over alternatives such as project_clone or project_restore_file, so the guidance is only partial.

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

project_edit_fileEdit or manage a project fileA
Destructive

Write, exact-patch, copy, move or delete one file. Preview by default. Existing files require expectedSha256; writes/moves/deletes preserve a recoverable backup. General binary writes are refused; use scf_edit for supported SCF scalar inputs and desktop tools for GDF drawing changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to the project/workspace. Absolute paths must remain inside that scope.
editsNoSequential exact text replacements for patch. Each replacement must match exactly occurrences times.
confirmNoApply the described file change when true; otherwise return a preview. This is a tool argument, not a request for another user approval.
contentNoComplete new text for write.
projectNoExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
encodingNoFile encoding; latin1 preserves MAX+plus II legacy bytes. Select utf8 explicitly for Unicode files.
operationNoSingle operation to preview/apply. Defaults to write.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.
destinationNoNew path inside the scope for copy/move. Existing destinations are refused.
expectedSha256NoSHA-256 from project_read_file or another verified read; mandatory for an existing source file.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is partly covered; the description still adds material non-annotated behavior: preview-by-default semantics, the mandatory expectedSha256 concurrency guard for existing files, recoverable backups on writes/moves/deletes, and the binary-write refusal. Nothing here contradicts the annotations.

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?

Three sentences, front-loaded with the operation set, then the default behavior, then the constraints and sibling routing. No filler and no repetition of the title or schema field text.

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?

For a 10-parameter mutation tool with no output schema, the description covers the important preconditions (SHA check, backup, preview) and the escape hatches (scf_edit, desktop tools). The gap is the return surface: with no output schema, the shape of a preview versus an applied result is left implicit, which is the one thing an agent cannot infer elsewhere.

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?

Schema description coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics the schema cannot: preview behavior is governed by confirm (default off), expectedSha256 is mandatory only for existing source files, and backups apply per operation type. It does not, however, add distinctions between write vs patch payloads beyond the schema's own field docs.

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?

The first sentence names the specific resource (one file) and enumerates the five concrete operations (write, exact-patch, copy, move, delete), so an agent can distinguish it from project_create, project_clone, or project_restore_file. It also explicitly separates itself from scf_edit and the desktop/GDF tools, which is exactly the differentiation a sibling-heavy tool needs.

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 affirmative conditions (preview by default; existing files need expectedSha256) and negative routing rules: general binary writes are refused, SCF scalar inputs belong in scf_edit, GDF drawing changes belong in desktop tools. This is explicit when-to-use / when-not-to-use / alternative guidance rather than implied context.

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

project_filesList project filesA
Read-onlyIdempotent

List sources, memories, schematics, waveforms and build artifacts under the selected project/workspace. Deterministic offset pagination, byte sizes and supported text formats are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of files to return; default 200.
offsetNoZero-based pagination offset.
projectNoExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the description is not burdened with the safety profile. It still adds real value by disclosing deterministic offset pagination and that byte sizes and supported text formats are returned — behavioral detail beyond the structured fields, and important given there is no output schema.

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?

Two tight sentences with no filler; the what-it-lists information is front-loaded and the pagination/return details follow immediately. Every clause carries information the agent can use.

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?

With annotations covering the safety profile and no output schema, the description usefully characterizes the return payload (byte sizes, supported text formats, paginated offsets). It stops short of describing result shape or whether listing is recursive, which leaves a small gap for a tool whose output shape is otherwise undocumented.

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 description coverage is 100% (limit, offset, project, workspace all documented inline), so the baseline is 3. The description only restates the project/workspace scoping and mentions pagination generically, adding no syntax, defaults, or format guidance beyond what the schema already provides.

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 (List) plus resource (project files) with an explicit enumeration of the file categories covered (sources, memories, schematics, waveforms, build artifacts) and the scoping context (selected project/workspace). It does not, however, differentiate itself from close siblings such as project_search or project_read_file, so an agent must infer the distinction.

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

Usage Guidelines3/5

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

Usage is only implied by the name and the phrase 'under the selected project/workspace' — the agent can infer this is the enumeration tool versus a content-search or single-file reader. There is no explicit guidance on when to prefer it over project_search or list_projects, and no stated prerequisites or exclusions.

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

project_inspectInspect projectA
Read-onlyIdempotent

Summarize one project: .acf sections, CHIP blocks, device, pin count, compiled artifacts with timestamps, and the cleanliness of the last .rpt. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesProject name (e.g. "top") or absolute path to a .acf.
workspaceNoDirectory to resolve relative project names against.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so 'Read-only' is largely redundant with structured data. The description does add value by naming what is inspected (compiled artifacts with timestamps, .rpt cleanliness), giving a sense of the operation's scope, but it discloses nothing about cost, failure modes, or behavior when the project 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.

Conciseness5/5

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

A single front-loaded sentence that leads with the verb and resource, then compresses the inspection contents into a tight list ending with the read-only note. No wasted words.

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?

With no output schema, the description carries the burden of describing returns, and it does so by enumerating the summarized artifacts, which is adequate for an inspect tool. Safety is covered by annotations. Minor gaps remain around error/precondition handling, but nothing essential to invocation is missing.

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 description coverage is 100%, so both 'project' (name or .acf path) and 'workspace' (resolution directory) are fully documented in the schema. The description adds no parameter-level detail, so baseline 3 applies.

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 (summarize/inspect) and resource (one project), and enumerates the concrete contents returned: .acf sections, CHIP blocks, device, pin count, compiled artifacts, and .rpt cleanliness. It is clearly distinct from list_projects and the various editors, though it never explicitly contrasts itself with siblings like acf_read_sections or scf_inspect.

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 'one project' implicitly signals single-project use as opposed to list_projects, and the enumeration of coverage hints at what questions it answers. However, there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. acf_read_sections for section-only reads), leaving the agent to infer the routing.

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

project_parse_fileParse design and waveform files directlyA
Read-onlyIdempotent

File-first structured parsing of strict GDF text/geometry, SCF scalar/bus logic events in ns, ACF assignments, TBL traces, reports and EDIF connections. Returns original path/bytes/SHA-256 and explicit limitations. Use gdf_geometry for paginated symbol definitions/placements and netlist_export for GDF circuit connections.

ParametersJSON Schema
NameRequiredDescriptionDefault
netNoOptional exact EDIF net identifier/name to inspect its connections.
cellNoOptional EDIF library/cell identifier for inspecting a hierarchical cell; defaults to the top design.
pathYesSource file relative to the project/workspace; absolute paths must remain within that scope.
limitNoMaximum text records/trace rows/diagnostics or SCF events per signal; default 100, SCF defaults to 20 and may reduce to fit the result budget.
formatNoDefault auto detects the file extension; explicit formats still validate their content.
offsetNoZero-based item/event page offset, default 0.
signalNoOptional exact SCF signal or display bus name.
endTimeNoSCF time-range end in ns; default entire duration.
projectNoExisting ACF project to scope file paths to its directory.
startTimeNoSCF time-range start in ns, default 0.
workspaceNoWorkspace scope when project is omitted; defaults to MAXPLUS2_WORKSPACE.
signalLimitNoMaximum SCF signals per page; default 5. Use nextSignalOffset to continue.
signalOffsetNoZero-based SCF signal page offset; default 0.
endpointLimitNoMaximum endpoints per EDIF net, default 20; use nextEndpointOffset to continue.
endpointOffsetNoZero-based endpoint offset within each EDIF net.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds real value beyond that: it discloses the returned artifacts (original path, bytes, SHA-256) and the presence of 'explicit limitations', which is meaningful output behavior given no output schema exists.

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?

Three sentences: what it parses, what it returns, and which siblings to prefer instead. Front-loaded with the highest-value information and no filler or restatement of the title.

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?

For a 15-parameter multi-format parser with no output schema, the description covers formats, return metadata, limitations, and sibling alternatives. It does not map which parameters apply to which format, but the 100%-covered schema carries that burden, so nothing critical is missing.

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 description coverage is 100% across all 15 parameters, so the schema already documents pagination limits, time ranges, and format enum semantics in detail. The description adds only the passing hint of 'events in ns' and the paginated-symbols reference; with the schema doing the heavy lifting, baseline 3 is correct.

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 (parsing) and enumerates the exact resource classes it handles: GDF text/geometry, SCF logic events, ACF assignments, TBL traces, reports and EDIF connections. It also names sibling tools (gdf_geometry, netlist_export) and the cases they own, so an agent can separate this general parser from format-specific tools without opening schemas.

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

Usage Guidelines4/5

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

Explicitly routes two cases to alternatives ('Use gdf_geometry for paginated symbol definitions/placements and netlist_export for GDF circuit connections'), which is strong when-not guidance. It never states the positive trigger condition in so many words, so the 'when to use this' half is implied rather than spelled out.

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

project_read_fileRead a project text fileB
Read-onlyIdempotent

Read a bounded line range and exact SHA-256 of HDL, ACF, MIF, HEX, VEC, reports or other supported text. Use nextLine to continue and expectedSha256 to avoid overwriting concurrent edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to the project/workspace. Absolute paths must remain inside that scope.
projectNoExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
encodingNoFile encoding; latin1 preserves MAX+plus II legacy bytes. Select utf8 explicitly for Unicode files.
lineCountNoMaximum lines to return; default 200.
startLineNoFirst one-based line to read; default 1.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description usefully adds that reads are bounded and return a SHA-256, but the 'expectedSha256 to avoid overwriting concurrent edits' phrase imports a write-protection concept into a read-only tool and references an absent parameter, muddying rather than clarifying 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?

Two sentences, front-loaded with the core read action and file scope. However, the second sentence is spent on two parameters that do not exist in the schema, which is wasted and misleading content rather than earning 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?

For a read tool with a fully documented 6-parameter schema and no output schema, the description covers the essentials (bounded reads, SHA-256 return). But its references to non-existent continuation and concurrency parameters leave an agent unable to reconcile the description with the actual interface.

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 description coverage is 100% and all six parameters are well documented in the schema itself, so the schema carries the semantic load. The description adds no parameter detail and instead names two parameters (nextLine, expectedSha256) that are not in the schema, so the baseline of 3 applies.

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 (Read) and resource (a bounded line range plus exact SHA-256) and enumerates the supported file types (HDL, ACF, MIF, HEX, VEC, reports). This lets an agent distinguish it from mutation siblings like project_edit_file, though it never names an alternative tool 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?

It gives a small amount of usage context ('Use nextLine to continue and expectedSha256 to avoid overwriting concurrent edits'), but neither nextLine nor expectedSha256 exists in the schema, so the guidance points at non-existent parameters. There is no statement of when to choose this over project_files, project_parse_file, or project_edit_file.

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

project_restore_fileRestore backed-up project bytesA
Destructive

Restore a file from this project backup store, including binary GDF/SCF bytes. Preview by default. Requires backup SHA-256; an existing destination also requires its current SHA-256 and is backed up before restoration.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to the project/workspace. Absolute paths must remain inside that scope.
backupYesBackup path returned by an earlier mutation, inside this scope .mcp-backups directory.
confirmNoApply the described file change when true; otherwise return a preview. This is a tool argument, not a request for another user approval.
projectNoExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.
backupSha256YesSHA-256 of the backup, equal to previousSha256 from the original change.
expectedSha256NoCurrent destination SHA-256 if it still exists.

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds meaningful context beyond those: preview is the default behavior, binary bytes are supported, and an existing destination is backed up before restoration, which is important for understanding the safety model.

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?

Two tightly written sentences with no filler. The core action and default behavior are front-loaded, followed by the required credential-like inputs, making it easy to scan.

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?

For a destructive, 7-parameter tool with no output schema, the description covers the essential call behavior: default preview, required SHA-256 values, and backup-before-restore. It does not explain failure modes (e.g., SHA-256 mismatch) or the preview response shape, but the annotations carry the safety profile.

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 description coverage is 100%, so every parameter is already documented in the input schema. The description restates the backup SHA-256 requirement and the current-destination SHA-256 condition but adds no syntax, format, or interpretation details beyond what the schema provides. Baseline 3 is appropriate.

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 (restore) and resource (file from this project backup store), and notes it handles binary GDF/SCF bytes. It implicitly distinguishes itself from sibling read/edit tools by focusing on backup restoration, but it does not explicitly name an alternative or contrast with them.

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 covers operational context: preview by default, backup SHA-256 required, and current destination SHA-256 required if the file exists. However, it does not explicitly say when to choose this tool over siblings like project_edit_file or project_read_file, leaving usage to inference.

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

scf_compiled_portsInspect compiled waveform port namesA
Read-onlyIdempotent

Read an exported .edo file up to32MiB and map top-level input/output ports to MAX+plus II Simulator names, including explicit vector ranges and native flattening. Internal EDIF nets, ambiguous arrays and INOUT are marked unsupported. Use netlist_export then inspect this fresh file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
limitNoItems per root collection; default20, reduced to fit the response budget.
offsetNoOffset in each root collection; default0.
projectNoExisting ACF whose directory scopes the files.
workspaceNoWorkspace when no project is supplied.
childLimitNoItems per nested detail collection; defaults to root limit.
childOffsetNoIndependent offset in each nested detail collection; default0.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the safe read-only/idempotent/non-destructive profile, so the bar is lower. The description still adds real behavioral context: the 32MiB file ceiling and the explicit set of unsupported cases (internal EDIF nets, ambiguous arrays, INOUT), which an agent needs to anticipate partial results.

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, no filler, with the core action front-loaded and the workflow hint last. Minor typo ('up to32MiB') and slight density but overall efficient.

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?

No output schema, so the description carries some burden, but for a read/inspect tool it adequately conveys input source (.edo), transformation (port→simulator name mapping, vector ranges, flattening), and unsupported cases. Only the return shape is left implicit.

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 description coverage is 100%, so the schema already documents all 7 parameters (path, limit, offset, project, workspace, childLimit, childOffset). The description adds no parameter-level detail such as path scoping or pagination syntax, so baseline 3 is appropriate.

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+resource ('Read an exported .edo file') and precisely what it produces: mapping top-level input/output ports to MAX+plus II Simulator names. This clearly distinguishes it from siblings like scf_ports_import or scf_inspect, which handle different stages.

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?

Explicitly prescribes the workflow: 'Use netlist_export then inspect this fresh file,' which names the producer/alternative. It gives clear context for when this tool applies but does not state exclusions or contrast against other inspect tools beyond the netlist dependency.

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

scf_createCreate original-format waveform stimulusA

Create a new version4 SCF directly without VEC or GUI. Explicit input names and optional 0/1/X/Z events; events in ns on 0.1ns grid. Never overwrite. Use matching compiled netlist and original simulator for verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
inputsYesOrdered collection of explicit entries validated by this tool.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
durationNsYesTotal waveform duration in ns on a 0.1ns grid.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=false), but the description adds the crucial behavioral fact that it will never overwrite an existing file, which explains the non-idempotent hint concretely. It also ties into the verification workflow, which annotations cannot express.

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 dense sentences that front-load creation and scope, then units/grid, then the overwrite and verification caveats. Little waste, though the verification sentence drifts slightly from the tool's own behavior.

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?

For a 6-parameter file-creation tool with no output schema and fully documented inputs, the description supplies format version, time units and grid, event-value domain, overwrite policy, and a verification recommendation. It omits the confirm preview/apply default, but the schema already states it.

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 description coverage is 100%, so all six parameters are already documented, including the 0.1ns grid and the 0/1/X/Z value domain. The description restates input names and event values without adding syntax or constraints beyond the schema, so baseline 3 applies.

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: create a version4 SCF waveform file directly, explicitly bypassing the VEC and GUI pathways. That distinguishes it from sibling tools like scf_from_compiled_create, though the sibling is not named outright.

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 'directly without VEC or GUI' implies when this creation path applies, and it prescribes using a matching compiled netlist plus original simulator for verification. However, it never names an alternative tool or an explicit when-not condition, so routing between it and scf_from_compiled_create 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.

scf_editEdit binary SCF input stimulus directlyA
Destructive

Preview/apply event changes to existing scalar inputs in vendor version-4 SCF. Fixed existing end time, exact 0.1ns ticks, 0/1/X/Z. Preserve groups, other signal records and opaque editor bytes. Requires current SHA-256; backs up before atomic write. Output/internal traces become stale and must be re-simulated. For a bus, edit its scalar members returned by scf_inspect.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to the project/workspace. Absolute paths must remain inside that scope.
editsYesOne replacement event sequence per existing scalar input. Each starts at time zero and uses increasing times below the current file end.
confirmNoApply the described file change when true; otherwise return a preview. This is a tool argument, not a request for another user approval.
projectNoExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.
expectedSha256YesCurrent SCF SHA-256 from project_parse_file.

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the destructive/idempotent annotations, it discloses that groups, other signal records, and opaque editor bytes are preserved, that a backup is taken before an atomic write, that expectedSha256 must be current, and that derived output/internal traces become stale and need re-simulation. That is exactly the side-effect detail an agent needs for a destructive mutation.

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?

Six tight, front-loaded sentences with no filler; the preview/apply distinction and the key constraints come first. The clipped telegraphic style occasionally costs readability but every sentence carries information.

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?

For a destructive, non-idempotent edit with no output schema, the description covers preconditions (fresh SHA-256, scalar-only), side effects (backup, atomic write, stale traces), and the bus workaround. Coverage is strong; only the relationship to the sibling stimulus-edit tool is unaddressed.

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 description coverage is 100%, so the schema already documents path, edits, time ticks, values, confirm, and expectedSha256. The description restates the 0.1ns/0-1-X-Z constraints and the SHA-256 requirement rather than adding syntax or format detail beyond the schema, so the baseline 3 applies.

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 (edit), resource (SCF input stimulus), and scope (existing scalar inputs in vendor version-4 SCF), so the agent knows it mutates existing records rather than creating them. It distinguishes the scalar-only scope clearly, though it never explicitly separates itself from near-neighbor siblings like scf_stimulus_edit or scf_structure_edit.

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?

It gives actionable guidance: use scf_inspect to find scalar members for a bus and edit those instead of the bus directly, and it states the SHA-256 precondition. It stops short of naming the sibling alternative (scf_stimulus_edit) for cases where this tool is the wrong choice.

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

scf_editor_metadataInspect waveform editor metadata and supported operationsB
Read-onlyIdempotent

Expose known display/time fields and bounded raw metadata, clearly identifying unresolved cursor/grid/zoom/private references. Preserves opaque bytes; do not infer their meaning from a round trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
limitNoItems per root collection; default20, reduced to fit the response budget.
offsetNoOffset in each root collection; default0.
projectNoExisting ACF whose directory scopes the files.
workspaceNoWorkspace when no project is supplied.
childLimitNoItems per nested detail collection; defaults to root limit.
childOffsetNoIndependent offset in each nested detail collection; default0.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context that opaque bytes are preserved and that unresolved cursor/grid/zoom/private references are identified, but it does not cover return format, pagination behavior, or permission requirements beyond what annotations imply.

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 two sentences, front-loads the main action, and avoids filler. The second sentence is a clear caveat, though the phrasing is somewhat jargon-heavy.

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 read-only inspection tool with no output schema, the description conveys the exposed content and a key caveat about opaque bytes. However, it does not explain the collection structure (root vs nested detail collections implied by childLimit/childOffset) or any return format details, leaving gaps for a 7-parameter tool.

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 100%, so all seven parameters are already documented in the input schema. The description's phrase 'bounded raw metadata' loosely echoes the limit/offset bounding but adds no syntax or additional meaning beyond the schema.

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 ('Expose') and resource ('known display/time fields and bounded raw metadata'), and it names the reference types it identifies (cursor/grid/zoom/private). It does not, however, differentiate this tool from siblings like scf_inspect or scf_structure, which could inspect similar waveform editor data.

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 preconditions or exclusions. The caution 'do not infer their meaning from a round trip' is a usage note but not a selection guideline.

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

scf_from_compiled_createCreate waveform with compiled input and output portsA

Create a new SCF from selected or all supported top-level ports in a hashed .edo. Direct original SCF records, no VEC. Inputs0 and output observationsX; use scf_stimulus_edit then the original Simulator. Never overwrites; unresolved nodes require explicit supported selection.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
confirmNoApply when true; default preview with no write.
projectNoExisting ACF whose directory scopes the files.
signalsNoExplicit existing scalar names in MSB-first order where used as counter bits.
edifPathYesExported .edo in the same scope.
workspaceNoWorkspace when no project is supplied.
durationNsYesPositive total time in ns on grid0.1.
edifSha256YesCurrent full SHA-256 from fresh file inspection.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish readOnly=false, idempotent=false and destructive=false, so the safety profile is covered. The description adds meaningful context beyond that: 'Never overwrites' confirms the write behavior, 'Direct original SCF records, no VEC' discloses the output form, and the scf_stimulus_edit/Simulator note explains post-conditions. It does not, however, mention the preview-vs-apply confirmation step.

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 dense sentences with the create action front-loaded and no padding. Efficient, though the telegraphic jargon ('Inputs0 and output observationsX', 'no VEC') reduces readability without wasting space.

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?

No output schema exists, and for an 8-parameter domain-specific mutation tool the description could say more about the confirm/preview semantics and what gets produced. It covers the generation source and the no-overwrite guarantee but leaves the preview-vs-apply workflow to the schema.

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 description coverage is 100%, so all eight parameters are documented in the schema (including confirm's preview behavior and edifSha256's freshness requirement). The description only loosely references 'selected or all supported top-level ports' and 'hashed .edo', adding little beyond the schema. Baseline 3 applies.

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 and scope: 'Create a new SCF from selected or all supported top-level ports in a hashed .edo.' This distinguishes it from sibling scf_create by naming the .edo source. Sibling differentiation is implied (compiled ports) but not contrasted explicitly against scf_compiled_ports or scf_ports_import.

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?

Provides a downstream flow hint ('use scf_stimulus_edit then the original Simulator') and a constraint on unresolved nodes, but no explicit when-to-use-this-vs-alternative guidance against scf_create or scf_compiled_ports. Usage is implied rather than framed as a decision.

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

scf_inspectRead binary waveform events directlyA
Read-onlyIdempotent

Decode verified SCF scalar and display-bus logic runs/events, including 0/1/X/Z, with times in ns. Returns input/output roles, writable input names, paging and unsupported metadata explicitly. Does not open the GUI.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to the project/workspace. Absolute paths must remain inside that scope.
limitNoEvents/segments per signal, default 20; may reduce to fit output budget.
offsetNoEvent/segment page offset, default 0.
signalNoOptional exact scalar or display-bus signal name.
endTimeNoRange end in ns, default full duration.
projectNoExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
startTimeNoRange start in ns, default 0.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.
signalLimitNoSignals per page, default 5.
signalOffsetNoSignal page offset, default 0.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower; the description still adds that it operates on verified runs, emits X/Z values, uses ns time units, and explicitly surfaces paging and unsupported metadata. The one notable omission is how unsupported signals are reported (error vs. omission).

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?

Two dense sentences that front-load the core action and then list return content and the GUI exclusion. Every clause carries information; the phrase "paging and unsupported metadata explicitly" is slightly compressed but not wasteful.

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?

With 10 parameters and no output schema, the description usefully outlines what is returned (input/output roles, writable input names, paging metadata, unsupported entries), partially compensating for the missing output schema. It stops short of describing the response structure or how pages are exhausted, which would fully close the gap.

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 100%, so the schema already documents all 10 parameters, making 3 the baseline. The description corroborates units (ns), paging behavior, and that signal selection targets scalar/display-bus names, but adds no syntax or selection guidance beyond the schema text.

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 ("Decode") and resource ("verified SCF scalar and display-bus logic runs/events, including 0/1/X/Z") with units. It implicitly separates itself from write tools (scf_edit, scf_stimulus_edit) and GUI tools ("Does not open the GUI"), but never names the closest read siblings such as scf_structure or waveform_signals to disambiguate.

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 implied by the decode framing and the explicit note that it does not open the GUI, so an agent can infer it is a headless read path. There is no stated when-to-use vs. waveform_signals/waveform_results/scf_structure, and no prerequisites such as needing a verified/compiled project.

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

scf_ports_importImport missing compiled waveform portsA
Destructive

Append selected top-level input/output nodes from a fresh hashed .edo to an existing hashed SCF. Retains existing waveforms; inputs begin0, outputsX until simulated. Refuses role mismatches/unsafe opaque references. Both files must be inside the same scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
confirmNoApply when true; default preview with no write.
projectNoExisting ACF whose directory scopes the files.
signalsNoExplicit existing scalar names in MSB-first order where used as counter bits.
edifPathYesExported .edo in the same scope.
workspaceNoWorkspace when no project is supplied.
edifSha256YesCurrent full SHA-256 from fresh file inspection.
expectedSha256YesCurrent full SHA-256 from fresh file inspection.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, non-idempotent, non-read-only, so the safety profile is covered. The description adds real behavioral context: existing waveforms are retained, inputs start at 0 and outputs at X until simulated, and it refuses role mismatches/unsafe opaque references. The 'retains existing waveforms' claim sits a little oddly beside destructiveHint=true, but appending still mutates the file, so this is nuance rather than contradiction.

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?

Four tight sentences, front-loaded with the verb and resource before constraints. Every sentence carries information, though the telegraphic notation ('begin0', 'outputsX') assumes domain familiarity without clarifying it.

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?

For an 8-parameter mutating tool with no output schema, the description covers the operation, preconditions, post-state, and refusal cases. It omits only finer details like partial-failure behavior, which is a minor gap against otherwise strong coverage.

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 description coverage is 100%, so the schema already documents all eight parameters including the confirm preview default and the MSB-first signals ordering. The description ties parameters to concepts ('fresh hashed .edo', 'existing hashed SCF', 'same scope') but adds no syntax or format detail beyond the schema, so baseline 3 applies.

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+resource+scope: append selected top-level input/output nodes from a fresh .edo into an existing SCF. It clearly distinguishes itself from siblings like scf_from_compiled_create (create) and scf_compiled_ports (inspect) by describing an incremental append into an existing file.

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 gives preconditions ('Both files must be inside the same scope') and refusal conditions, which implies the usage context, but it never names an alternative tool or states when to prefer this over scf_create/scf_from_compiled_create. Usage is implied rather than explicit.

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

scf_stimulus_editGenerate and transform native SCF input waveformsB
Destructive

Native SCF clock, repeated 0/1/X/Z segments, wide MSB-first counters, shift, invert, fill and snapshot copy. Exact 0.1ns grid, bounded200000 total events; preserves waveforms outside edited half-open ranges and all opaque records. Fresh original simulation computes outputs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the scope.
confirmNoApply when true; default preview with no write.
projectNoExisting ACF whose directory scopes the files.
workspaceNoWorkspace when no project is supplied.
operationsYesOrdered stimulus edits; windows are half-open and measured in ns on grid0.1.
expectedSha256YesCurrent full SHA-256 from fresh file inspection.

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare destructive=true, idempotent=false, and closed-world; the description adds concrete safety/constraint context beyond that: exact 0.1ns grid, a 200000-event bound, and preservation of waveforms outside edited half-open ranges and opaque records. It also notes a fresh original simulation computes outputs, and it does not contradict annotations.

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 compact sentences, with capabilities front-loaded and no filler. The first sentence is a list fragment and 'bounded200000' is a minor formatting slip, but the description stays appropriately short for a tool with rich schema documentation.

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 complex destructive editor with nested operations and no output schema, the description supplies key constraints—grid, event bound, preservation scope, simulation recompute—but omits when to use it versus siblings and does not explain operation composition or preview/confirm behavior. The schema covers parameters, but the description's guidance remains incomplete.

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 100%, so the schema already documents all six top-level params and nested operation fields; the description mainly echoes grid/half-open/MSB-first details that are also in the schema. It adds a few constraints (200000 total events, preservation semantics), but not enough to lift beyond the baseline for fully documented params.

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 the resource (native SCF waveforms) and enumerates specific operations—clock, repeat, counter, shift, invert, fill, copy—so the agent can tell it generates/transforms stimulus rather than inspecting it. It does not explicitly name a sibling tool or say 'edit,' so it stops short of the 5 threshold for sibling differentiation.

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

Usage Guidelines2/5

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

No when-to-use guidance, prerequisites, or alternatives are given; the agent is left to infer that this is the mutation tool among many scf_* and stimulus_* siblings. It does not say when to choose it over scf_edit, scf_structure_edit, or stimulus_write.

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

scf_structureInspect waveform structureA
Read-onlyIdempotent

Decode version4 SCF scalar names, display ordering, groups/radix, duration and native record locations. Exposes unknown/reference limits. Use scf_inspect for paginated logic events.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
limitNoRoot items per collection; default 20, reduced to fit the result budget.
offsetNoOffset in each root collection; default zero.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
childLimitNoItems per nested collection; defaults to the requested root limit, reduced to fit the result budget.
childOffsetNoIndependent offset in each nested collection; default zero.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that output flags unknown/reference limits, which is useful behavioral context, but omits pagination interaction details, permissions, and any error behavior.

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

Conciseness4/5

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

Two dense sentences with no filler, and the core purpose is front-loaded ahead of the sibling routing. Slightly terse for the number of concepts packed in, but nothing is wasted.

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?

For a read-only inspection tool with annotations covering the safety profile, the description enumerates the kinds of structural data returned (names, ordering, radix, duration, record locations) even though there is no output schema. Pagination behavior is governed by the well-documented limit/offset params, so coverage is largely complete.

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 description coverage is 100%, so the seven parameters (path, limit, offset, project, workspace, childLimit, childOffset) are already documented in the schema. The description adds no syntax, default, or scope detail beyond it, so the baseline of 3 applies.

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 (decode/inspect) and resource (version4 SCF structure) and enumerates the concrete artifacts returned: scalar names, display ordering, groups/radix, duration, native record locations. It clearly distinguishes itself from scf_inspect by routing paginated logic events there. It does not, however, differentiate from closely named siblings such as scf_structure_edit or scf_editor_metadata.

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?

'Use scf_inspect for paginated logic events' gives one explicit alternative with its selecting condition. There is no guidance on when this tool is the right choice versus scf_structure_edit, scf_create, or scf_editor_metadata, so usage is only partially routed.

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

scf_structure_editEdit waveform names, grouping and time spanA
Destructive

Transactional SCF signal rename/reorder, group/ungroup/radix, duration extension/truncation and input add/delete. Unknown fields preserved; unsafe opaque reference changes refused. Names must match compiled nodes; resimulate after edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
operationsYesOrdered scalar/group structure changes; names must match compiled nodes.
expectedSha256YesCurrent full file SHA-256 from a fresh inspection.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructive=true, idempotent=false, readOnly=false. The description goes beyond them by disclosing transactional semantics, that unknown fields are preserved, that unsafe opaque-reference changes are refused, and that resimulation is required afterward. That is meaningful behavioral context a caller could not derive from the annotations alone.

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 dense telegraphic clauses, front-loaded with the operation scope, with no filler sentences. It is compact and every clause carries information, though the terse phrasing borders on cryptic for an unfamiliar caller.

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?

For a destructive, transactional mutation tool with no output schema, the description covers the safety-relevant behaviors (preservation, refusal, resimulation) that an agent needs before invoking it. The missing piece is sibling differentiation, but the core call contract is adequately covered.

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 description coverage is 100%, so the schema already documents every parameter (confirm preview semantics, expectedSha256 freshness, per-operation fields). The description adds only that names must match compiled nodes, so the baseline 3 applies.

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 (edit) and resource (SCF waveform structure) and enumerates the concrete operation families: rename/reorder, group/ungroup/radix, duration extension/truncation, input add/delete. This lets an agent separate it from scf_inspect or scf_create, but it never distinguishes it from the closely-named siblings scf_edit and scf_structure, which is the main ambiguity.

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?

"Names must match compiled nodes; resimulate after edits" gives a precondition and a follow-up action, which implies when the tool is applicable. However there is no explicit when-to-use-vs-alternatives guidance against scf_edit, scf_stimulus_edit, or scf_structure, so routing is left to inference.

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

setacf_applyApply a setacf changeA

Execute a setacf change. Backs the .acf up first and returns a line diff. Requires confirm:true. Prefer calling setacf_plan first.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinNoPin number to assign.
kindNoAssignment kind. INPUT_PIN, OUTPUT_PIN or BIDIR_PIN sets a pin; omit it when setting a device or a raw variable.
rootNoMAX+PLUS II installation root, for example C:\maxplus2. Defaults to MAXPLUS2_ROOT, then a scan of common paths.
asyncNoRun in the background and return a jobId immediately instead of blocking. Use for any compile or simulation that may outrun the client timeout: a client timeout does NOT stop the child process, so a blocking call that is abandoned keeps running with nobody holding the result. Poll with job_status.
valueNoValue paired with variable for advanced use.
backupNoBack up the .acf first (default true).
createNoCreate the .acf if it does not exist (-c). Use only when bootstrapping a new project.
deviceNoDevice to assign, for example EP1K30TC144-1. Written as the DEVICE variable in the CHIP section.
signalNoSignal name to constrain, for example "|CLK" or "CLK". A leading pipe is added automatically if absent.
confirmYesMust be true to actually write.
projectYesProject name (for example "top") or an absolute path to its .acf file. A bare name is resolved against workspace, and is rejected as ambiguous if several projects share it.
sectionNoACF section name. Device and pin edits default to CHIP; other settings live in sections such as SIMULATOR_CONFIGURATION.
modifyToNoNew value for an existing section (-m). Requires section and sectionValue.
variableNoRaw setacf variable for advanced use, for example "DEVICE" or a full "\"|SIG\":PIN" form.
timeoutMsNoHard timeout in milliseconds. A client timeout is wall-clock and progress does not extend it, so keep this below the client budget.
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.
prependPathNoHierarchy path prefix to prepend to the variable (-p), for a signal inside a sub-design.
sectionValueNoSection value, for example the chip name in "CHIP top". Required when the section does not exist yet, because setacf cannot name a section it is creating.
deleteVariableNoName of the variable to delete from its section (-d).

TDQS

A4.2/5.0
Behavior4/5

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

Adds behavior the annotations do not convey: the .acf is backed up first, the call returns a line diff, and a confirm gate is enforced. This is meaningful context for a mutating tool whose annotations only say readOnlyHint=false/idempotentHint=false; the backup-first detail also explains why destructiveHint=false is plausible. No contradiction.

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?

Four terse sentences, front-loaded with the action and the backup/diff behavior, followed by the two operational requirements. Every sentence carries information; nothing is padding.

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?

For a high-complexity, 19-parameter mutation tool with no output schema, the description covers the essential gates (confirm, plan-first) and return shape (line diff). What remains, the per-parameter semantics for sections/variables/paths, is fully handled by the schema.

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?

With 100% schema description coverage across 19 parameters, the schema already documents every argument in detail. The description only restates the confirm requirement and the backup behavior (both already in the schema), adding no new format or interaction guidance, so the baseline 3 applies.

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 ('Execute') and resource ('a setacf change'), and explicitly positions itself against its sibling by saying 'Prefer calling setacf_plan first,' so an agent can distinguish the apply step from the planning step without opening either schema.

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?

Gives a hard prerequisite ('Requires confirm:true') and names the recommended alternative workflow ('Prefer calling setacf_plan first'). It does not state explicit when-not-to-use conditions or failure modes, so it stops just short of a 5.

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

setacf_planPlan a setacf changeA
Read-onlyIdempotent

Build the exact setacf.exe argument vector for a change WITHOUT executing it. Always call this first: setacf edits the .acf in place and has no dry-run mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinNoPin number.
kindNoPin assignment kind.
rootNoMAX+PLUS II install root.
valueNoRaw value for advanced use.
createNoCreate the .acf if missing (-c).
deviceNoSet the DEVICE assignment, e.g. EP1K30TC144-1.
signalNoSignal name, e.g. "|CLK" or "CLK".
projectYesProject name (for example "top") or an absolute path to its .acf file. A bare name is resolved against workspace, and is rejected as ambiguous if several projects share it.
sectionNoSection name (defaults to CHIP for device/pin edits).
modifyToNoModify an existing section value (-m).
variableNoRaw variable for advanced use.
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.
prependPathNoPrepend a hierarchy path (-p).
sectionValueNoSection value, e.g. the chip name.
deleteVariableNoDelete a variable (-d).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so safety is covered structurally. The description adds genuinely useful behavior: that no mutation occurs and that the underlying setacf tool has no dry-run, explaining why planning is mandatory before applying.

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?

Two short sentences, zero filler, with the non-execution constraint and the mandatory-call ordering front-loaded. Nothing is wasted and no sentence is redundant.

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?

For a 15-parameter planning tool with no output schema, the description covers the essential contract (produces an argument vector, does not execute). It could say a bit more about what the caller does with the returned vector, but the missing detail is minor.

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 description coverage is 100% across all 15 parameters, so the schema already documents each field (pin, kind, device, signal, etc.). The description adds no parameter-level detail such as which combination is required for a given edit type, so the baseline of 3 applies.

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 output ('Build the exact setacf.exe argument vector') plus the crucial constraint ('WITHOUT executing it'). This clearly distinguishes it from setacf_apply, the sibling that would run the change.

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?

Gives explicit ordering guidance ('Always call this first') and the reason (setacf edits in place, no dry-run mode), which is exactly the when-to-use context an agent needs. It stops short of naming setacf_apply as the follow-up execution step, so routing to the alternative is implied rather than stated.

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

simulate_and_verifySimulate and verifyA
Idempotent

Run the Simulator headless and return the parsed result table, then optionally check expected output values. This is how simulation verification is automated: MAX+PLUS II writes a plain-text .tbl containing the simulated outputs, so a design can be checked without a human reading a waveform. Note a successful simulation may exit 1 — the verdict comes from the success banner plus the table artifact.

ParametersJSON Schema
NameRequiredDescriptionDefault
scfNoStimulus file. Defaults to <project>.scf if present.
tblNoWhere to write the result table. Defaults to <project>.tbl.
rootNoMAX+PLUS II installation root, for example C:\maxplus2. Defaults to MAXPLUS2_ROOT, then a scan of common paths.
asyncNoRun in the background and return a jobId immediately instead of blocking. Use for any compile or simulation that may outrun the client timeout: a client timeout does NOT stop the child process, so a blocking call that is abandoned keeps running with nobody holding the result. Poll with job_status.
expectNoExpected values, as { "<time>": { "SIGNAL": value } }. Values may be numbers or hex strings like "80". Outputs and buried nodes are both checkable.
projectYesProject name (for example "top") or an absolute path to its .acf file. A bare name is resolved against workspace, and is rejected as ambiguous if several projects share it.
timeoutMsNoHard timeout in milliseconds. A client timeout is wall-clock and progress does not extend it, so keep this below the client budget.
toleranceNoTime tolerance in table units when matching expectations (default 0.05).
workspaceNoDirectory that a relative project name is resolved against. Defaults to MAXPLUS2_WORKSPACE, then the server working directory.
previewRowsNoHow many leading trace rows to return (default 12).

TDQS

A4.3/5.0
Behavior5/5

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

Adds a genuinely non-obvious behavioral fact that annotations cannot convey: a successful simulation may exit 1, and the verdict comes from the success banner plus the .tbl artifact. That single disclosure prevents an agent from mis-classifying a good run as a failure. It also explains the .tbl output artifact the run produces.

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 and the artifact, and the critical exit-code caveat placed last as a warning. The middle explanatory sentence about why this matters is slightly discursive but still earns its place by justifying the tool's existence.

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?

For a 10-parameter, mutation-capable tool with no output schema, the description supplies the essential missing context: what artifact is produced and how to interpret success. It does not describe the shape of the parsed table or pagination/preview interaction, which leaves a modest gap.

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 description coverage is 100%, with defaults, ranges and formats (e.g. expect as {"<time>":{"SIGNAL":value}}, root fallback chain) all documented in the schema. The description adds only the high-level notion of optional expectation checking, which is the baseline 3 when the schema already does the heavy lifting.

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?

A specific verb+resource combination ('Run the Simulator headless and return the parsed result table') plus the optional expectation checking, which cleanly separates it from parse_tbl and the generic maxplus2_run. An agent can identify the tool's job 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 Guidelines4/5

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

States the context clearly ('This is how simulation verification is automated... a design can be checked without a human reading a waveform'), which tells the agent when this beats a manual waveform workflow. It stops short of naming the sibling alternatives (parse_tbl, maxplus2_run) or stating exclusions, so no explicit when-not.

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

stimulus_writeWrite timed simulator stimulusB

Generate a verified multi-row VEC shape using INTERVAL, bare pattern rows and one final semicolon. Explicit bus nodes are MSB-first. Preview/apply with backups. Existing SCF may take precedence; inspect/delete its backed-up copy or open/convert VEC in the GUI. Set ACF END_TIME=0.0ns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path relative to the project/workspace. Absolute paths must remain inside that scope.
rowsYesOne complete input map per interval. Integers or exact-width binary/X/Z strings; for example [{CLK:0,A:3},{CLK:1,A:5}].
stopNoStop time; default start + rows.length * interval.
unitNoSimulator time unit, default ns.
startNoStart time, default 0.
inputsYesScalar input node strings, or {name,nodes:[MSB,...,LSB]} bus declarations with explicit simulator node names.
confirmNoApply the described file change when true; otherwise return a preview. This is a tool argument, not a request for another user approval.
outputsNoOptional physical output node names to include in the result table.
projectNoExisting .acf project path or unambiguous project name. File paths are scoped to its directory.
intervalNoDuration of each input pattern, default 100.
workspaceNoWorkspace directory for resolving project names, or the scope when no project is supplied.
expectedSha256NoExisting VEC SHA-256 if replacing a file.

TDQS

B3.2/5.0
Behavior4/5

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

Annotations declare readOnly=false, destructive=false, idempotent=false, but the description adds real behavioral context beyond them: writes create backups, a preview/apply workflow exists, and an existing SCF can take precedence over the written VEC. The SCF-precedence conflict and backup behavior are exactly the kind of non-obvious traits annotations cannot convey.

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?

Four short sentences with no obvious padding, but the opening is cryptic ('bare pattern rows and one final semicolon') and the important SCF-precedence caveat is buried at the end rather than front-loaded. It is adequately sized but not well prioritized for an agent scanning for the key decision.

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 complex 12-parameter mutation tool with no output schema, the description covers the VEC format quirks and the SCF-precedence trap, which is helpful. It still omits error/validation behavior and is ambiguous about what 'verified' means, leaving clear gaps for a tool of this complexity.

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 description coverage is 100%, so the schema already documents all 12 parameters thoroughly, making 3 the baseline. The description adds little parameter-level meaning beyond 'Explicit bus nodes are MSB-first' and the INTERVAL reference, both of which restate schema content.

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 it generates a multi-row VEC shape with INTERVAL, pattern rows, and a terminating semicolon, which is a specific verb+resource, but the phrasing is jargon-dense and does not clearly distinguish it from the sibling scf_stimulus_edit. An agent can guess the domain but not cleanly separate this from the other stimulus tool.

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 offers conditional guidance ('Existing SCF may take precedence; inspect/delete its backed-up copy or open/convert VEC in the GUI') and notes preview/apply, which implies usage context. However, it never states when to choose this over scf_stimulus_edit or simulate_and_verify, so selection is left largely to inference.

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

sym_createCreate or clone a custom symbolA

Create a new original-format SYM or clone a hashed workspace/installed-library prototype under a new name. Never overwrite. Optional operations add internal graphics/text/pins. Matching HDL source interface must be supplied separately and compiler/export used to prove connectivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew HDL symbol name.
pathYesFile path within that scope.
pinsNoOrdered collection of explicit entries validated by this tool.
rootNoOptional installed library root.
widthNoExtent width on grid8.
heightNoExtent height on grid8.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
templateNoOptional custom scope SYM or absolute installed max2lib SYM.
workspaceNoWorkspace scope when project is absent.
operationsNoOrdered changes; record offsets refer to the original input. Inspect again after applying.
templateSha256NoCurrent full file SHA-256 from a fresh inspection.
nameAttributeNameNoPrimitive or hierarchy name attribute; custom clone/create defaults MACRO_NAME.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare write/non-idempotent/non-destructive, and the description adds genuinely new behavioral context: 'Never overwrite' (a safety guarantee not in the annotations), that operations optionally add graphics/text/pins, and that connectivity must be proven separately via compiler/export. This goes meaningfully beyond the annotation set, though it does not describe preview/confirm semantics or rate/authorization 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?

Four dense sentences with the core create/clone action front-loaded, followed by constraints and workflow. Nothing is padded, though the HDL/compiler sentence is a bit tangential to the tool call itself.

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?

For a 13-parameter mutation tool with no output schema, the description covers the create-vs-clone distinction, the no-overwrite guarantee, and the operations workflow. Annotations carry the safety profile and the schema carries field detail, so the remaining gaps (preview/confirm behavior, return shape) are minor.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds conceptual meaning: it explains that 'operations' inject internal graphics/text/pins and that 'template' clones a hashed prototype under a new name. This helps interpret the operations/template/name parameters beyond the terse per-field schema text.

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 ('Create a new original-format SYM') and distinguishes two modes (original create vs clone of a hashed workspace/installed-library prototype). It is clear what the tool produces, but it never names a sibling like sym_edit or gdf_create to route the agent, which keeps it just 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?

Implies the usage context ('Never overwrite', operations add graphics/text/pins, HDL source supplied separately then compiler/export to prove connectivity) but gives no explicit when-to-use-vs-alternative guidance or exclusions. The workflow hints are helpful but the agent must still infer when to pick this over sym_edit or gdf_create.

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

sym_editEdit a standalone symbolA
Destructive

Rename/resize standalone SYM, edit/create/delete internal lines/circles/arcs/text and interface pins. Uses original attributes and preserves unrelated/default records. Changes do not update embedded GDF symbol copies. Inspect fresh offsets/hash; verify consuming circuit with original compiler.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
confirmNoApply when true; default preview. Current session authorization suffices.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
operationsYesOrdered changes; record offsets refer to the original input. Inspect again after applying.
expectedSha256YesCurrent full file SHA-256 from a fresh inspection.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the destructive/non-idempotent/write profile, but the description adds meaningful traits beyond them: unrelated/default records are preserved, and changes do not propagate to embedded GDF copies. The offset/hash and compiler-verification caveats add further operational context. It stops short of describing return values or failure modes.

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 dense sentences, front-loaded with the core action and no filler. The telegraphic style ("Rename/resize standalone SYM") is information-efficient, though slightly compressed for a tool with 18 operations.

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?

For a complex 18-operation mutation tool with no output schema, the description covers mutability, non-propagation to GDF copies, record-preservation behavior, and the inspect/verify workflow. There is no output schema so return values need not be explained, but a few more details on ordering or failure recovery would complete it.

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 description coverage is 100%, so the schema already documents all parameters thoroughly, including the 18-value operation enum and offset/grid semantics. The description only echoes the general theme (rename/resize, original-attribute offsets) without adding parameter-level meaning beyond the schema, which is the expected baseline.

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 specific verbs (rename/resize/edit/create/delete) against a specific resource (standalone SYM internal lines/circles/arcs/text and interface pins). It also differentiates from siblings like gdf_symbol_refresh/gdf_edit by noting that changes do not update embedded GDF symbol copies.

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?

Provides clear workflow context: inspect fresh offsets/hash before and verify the consuming circuit with the original compiler after, and warns that edits use original attributes. It does not explicitly name which sibling to use for GDF-embedded symbols, so the alternative is implied rather than stated.

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

sym_inspectInspect a custom symbol interfaceA
Read-onlyIdempotent

Inspect standalone SYM graphics, pin names/positions/native interface directions, text display flags and preserved instance defaults. No compiler needed. Paginated collections; direction provenance does not prove circuit wiring.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within that scope.
limitNoRoot items per collection; default 20, reduced to fit the result budget.
offsetNoOffset in each root collection; default zero.
projectNoExisting ACF whose directory scopes these files.
workspaceNoWorkspace scope when project is absent.
childLimitNoItems per nested collection; defaults to the requested root limit, reduced to fit the result budget.
childOffsetNoIndependent offset in each nested collection; default zero.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real value: 'No compiler needed' clarifies it works on source, 'Paginated collections' discloses result paging behavior, and 'direction provenance does not prove circuit wiring' warns against a tempting misreading of the returned directions. That caveat is behaviorally important and not derivable from structured fields.

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 tight sentences, front-loaded with the core purpose followed by a capability note and a caveat. The pagination/caveat clause is dense but every element earns its place. Minor density is the only cost.

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?

For a read-only inspection tool with no output schema and fully documented parameters, the description covers what is inspected, notes pagination, and flags the interpretation caveat. Nothing critical is missing, though a note on the two-scope model (project vs workspace) or the paginated return shape would make it airtight.

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 description coverage is 100%, so the schema already documents all seven parameters including limit/offset/childLimit/childOffset defaults and caps. The description's 'Paginated collections' echoes that without adding syntax or guidance beyond the schema. Baseline 3 is appropriate when the schema carries the full burden.

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) and resource (standalone SYM graphics), and enumerates the concrete artifacts returned: pin names/positions/native interface directions, text display flags, preserved instance defaults. It clearly reads rather than mutates, distinguishing it from sym_edit and sym_create. It does not, however, explicitly differentiate itself from related inspection siblings such as gdf_pin_labels or gdf_geometry.

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?

'No compiler needed' gives an implicit usage context (inspect a source SYM without a compiled artifact), which is a useful hint. But there is no explicit when-to-use statement, no exclusions, and no routing to the edit counterparts when the agent actually needs to change something. Usage is implied rather than stated.

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

waveform_resultsExtract valid output events and viewing intervalA
Read-onlyIdempotent

Extract result events gated by an actual scalar valid signal. Default proven rising edges, with initial-high rows separately marked; optional samples means native rows while valid=1. Optional settling samples point-in-time data inside the valid window. Retains raw numeric/X/Z tokens, missing columns and unknowns; held data while valid is low creates no result. Return paginated events and a recommended ns window; does not alter SCF zoom, row visibility, clock or design logic.

ParametersJSON Schema
NameRequiredDescriptionDefault
edgeNoDefault rising. samples selects native valid-high rows, not uniform sampling.
pathYesFile path within the selected scope.
limitNoEvent count, default20; may reduce to fit output budget.
offsetNoResult event offset, default0.
maxRowsNoTBL row parsing budget, default200000.
projectNoExisting ACF whose directory scopes files.
settleNsNoSampling delay after valid entry, default0; must remain in the same valid window.
endTimeNsNoInclusive event-range end in ns, default last native time.
maxEventsNoTotal event budget before pagination, default100000.
paddingNsNoRecommended view padding, default1000ns.
workspaceNoWorkspace scope when no project is selected.
kindSignalNoOptional type discriminator column, e.g. OUT_KIND; no semantics inferred.
dataSignalsYesActual result columns, e.g. OUTBUS[7..0].
startTimeNsNoInclusive event-range start in ns, default first native time.
validSignalYesReal scalar valid column, e.g. OUT_VALID.
maxComparisonsNoTBL analysis comparison budget, default2000000.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover the read-only/idempotent/non-destructive profile, and the description goes well beyond them: it discloses what is retained (raw numeric/X/Z tokens, missing columns, unknowns), that held data while valid is low yields no result, and what is returned (paginated events plus a recommended ns window). It also explicitly states the tool does not mutate SCF/design state.

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 core action, then dense but information-bearing clauses separated by semicolons. Every clause carries semantics (modes, retention, non-mutation); the density slightly hurts readability but little is wasted.

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?

No output schema exists, so the description appropriately names the return shape (paginated events and a recommended ns window). For a 16-param, no-output-schema tool it covers modes, retention rules, and non-mutation, with only permissions and pagination mechanics left implicit in the schema.

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 description coverage is 100%, so all 16 parameters are already documented. The description reinforces the edge/samples distinction and confirms settling samples stay inside the valid window, but adds little beyond the schema on limit/offset/budget parameters.

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: 'Extract result events gated by an actual scalar valid signal,' which is far more precise than the tautological title. It distinguishes itself from plain signal listing (waveform_signals) by describing gating and event extraction, though it never names a sibling 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?

Defaults are given (proven rising edges, samples mode) and scope constraints are implied ('does not alter SCF zoom, row visibility, clock or design logic'), but there is no explicit when-to-use versus waveform_signals or parse_tbl. Usage must be inferred from behavioral prose.

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

waveform_signalsInspect actual simulation table columnsA
Read-onlyIdempotent

Read an original TBL and return real declared input/output/buried signals, bit widths, native units and available time span. Detect malformed tables, ambiguous names and exceeded budgets. Hidden SCF signals absent from TBL remain absent; this does not prove saved editor layout.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path within the selected scope.
limitNoRoot collection items, default20; may reduce to fit response budget.
offsetNoRoot collection offset, default0.
maxRowsNoTBL row parsing budget, default200000.
projectNoExisting ACF whose directory scopes files.
workspaceNoWorkspace scope when no project is selected.
childLimitNoNested collection item limit, default root limit.
childOffsetNoIndependent nested detail offset, default0.
maxComparisonsNoTBL analysis comparison budget, default2000000.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, but the description adds real behavioral context: it flags malformed tables, ambiguous names, and exceeded budgets (tying to maxRows/maxComparisons), and warns that hidden SCF signals absent from the TBL stay absent and that this does not prove the saved editor layout. That is meaningful disclosure beyond the annotations, though return format and pagination behavior remain 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?

Three dense sentences that are front-loaded with the core verb and returned artifacts, followed by caveats. Efficient overall, though the final sentence is slightly compressed and the mid-sentence clause stack is heavy.

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?

For a read-only 9-parameter inspection tool with no output schema, the description covers what is returned, the malformed/ambiguous/budget failure modes, and an interpretation caveat about SCF signals. It could still say more about how the nested child* and budget parameters affect results, but nothing critical for correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all nine parameters are already documented in the schema and the baseline is 3. The description adds no parameter-level detail (e.g., how limit/offset interact with childLimit/childOffset, or how budgets degrade results), so it does not exceed the schema's own coverage.

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 (read) and resource (original TBL) and enumerates concrete outputs (input/output/buried signals, bit widths, native units, time span), so an agent knows exactly what the tool surfaces. It does not, however, name or differentiate itself from likely siblings such as parse_tbl or waveform_results, leaving the agent to infer the split.

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 explicit when-to-use or when-not-to-use guidance and names no alternative tool, even though parse_tbl and waveform_results sit right beside it. The closing SCF caveat clarifies interpretation of results, not selection of this tool over another.

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. 68 tool updatesv0.10.3
    • First observedacf_read_pins
    • First observedacf_read_sections
    • First observedacf_repair_chip_headers
    • First observedacf_validate
    • First observedcapability_matrix
    • First observeddesktop_action
    • First observeddesktop_launch
    • First observeddesktop_observe
    • First observeddesktop_result
    • First observeddesktop_status
    • First observeddesktop_windows
    • First observeddisplay_palette_inspect
    • First observedgdf_connections
    • First observedgdf_construct
    • First observedgdf_create
    • First observedgdf_declarations
    • First observedgdf_declarations_edit
    • First observedgdf_edit
    • First observedgdf_geometry
    • First observedgdf_graphics_edit
    • First observedgdf_inspect
    • First observedgdf_move_connected
    • First observedgdf_pin_labels
    • First observedgdf_symbol_library
    • First observedgdf_symbol_refresh
    • First observedgdf_text_edit
    • First observedgdf_text_format_edit
    • First observedgdf_text_format_inspect
    • First observedgdf_wire_cleanup
    • First observedinstallation_status
    • First observedjob_cancel
    • First observedjob_status
    • First observedlist_projects
    • First observedmaxplus2_plan
    • First observedmaxplus2_run
    • First observedmemory_write
    • First observednetlist_export
    • First observedparse_report
    • First observedparse_tbl
    • First observedprobe_executable
    • First observedproject_clone
    • First observedproject_create
    • First observedproject_edit_file
    • First observedproject_files
    • First observedproject_inspect
    • First observedproject_parse_file
    • First observedproject_read_file
    • First observedproject_restore_file
    • First observedproject_search
    • First observedscf_compiled_ports
    • First observedscf_create
    • First observedscf_edit
    • First observedscf_editor_metadata
    • First observedscf_from_compiled_create
    • First observedscf_inspect
    • First observedscf_ports_import
    • First observedscf_stimulus_edit
    • First observedscf_structure
    • First observedscf_structure_edit
    • First observedsetacf_apply
    • First observedsetacf_plan
    • First observedsimulate_and_verify
    • First observedstimulus_write
    • First observedsym_create
    • First observedsym_edit
    • First observedsym_inspect
    • First observedwaveform_results
    • First observedwaveform_signals

TDQS

B3.4/5.0

Scored across 68 tools

Disambiguation3/5

Descriptions are unusually explicit about boundaries and cross-reference sibling tools ('use gdf_geometry for...', 'use netlist_export for...'), which helps. However the surface has large overlapping clusters — e.g. gdf_text_edit vs gdf_text_format_edit (both edit free root DOC text), gdf_graphics_edit vs gdf_edit vs gdf_construct, and scf_edit vs scf_stimulus_edit vs scf_structure_edit — where an agent can easily pick the wrong one.

Naming Consistency3/5

Everything is snake_case and grouped by predictable subsystem prefixes (gdf_, scf_, project_, desktop_, acf_, setacf_, maxplus2_, job_). But verb ordering is inconsistent: noun_verb forms (acf_read_pins, project_read_file, gdf_text_edit) coexist with verb_noun forms (list_projects, parse_tbl, simulate_and_verify, probe_executable), and many tools carry no prefix at all.

Tool Count1/5

68 tools is an extreme mismatch for a single server. Even a rich legacy-EDA workflow does not justify this many entry points, and the count forces agents to navigate many near-duplicate edit/inspect variants rather than a focused set.

Completeness5/5

The surface covers the full lifecycle: project create/clone/files/read/write/search/parse, ACF read/validate/repair, setacf plan/apply, compile/simulate plan/run, result parsing, GDF/SYM/SCF authoring and editing, netlist export, waveform analysis, job control, and desktop GUI automation. Almost no obvious functional gap remains for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients like Codex to control Ansys Workbench and ICEM CFD locally, executing scripts, managing projects, and running simulations.
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI clients on Windows to control the local mouse, keyboard, and screen understanding via MCP stdio, allowing automated workflows like viewing the screen, locating elements, clicking, typing, and verifying results.
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables local stdio-based MCP integration with InoProShop/CODESYS for project structure reading, POU editing with verified writes, compilation, task configuration, and persistent session recovery.
    2
    MIT