ABB RobotStudio MCP Server
Connects to ABB RobotStudio (via an in-process SDK bridge Add-In) and to ABB robot controllers via Robot Web Services (RWS). Provides tools to inspect the active station and its tasks, read, validate and write RAPID modules, control simulation, and capture screenshots, alongside controller-side capabilities such as checking controller status, reading RAPID runtime values, I/O, files, event logs, and requesting mastership.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ABB RobotStudio MCP Servertake a screenshot of the current RobotStudio station"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ABB RobotStudio MCP Server
Connect an MCP client to ABB RobotStudio and ABB robot controllers through two interfaces: an in-process RobotStudio SDK bridge and Robot Web Services (RWS).
This repository contains a TypeScript MCP server and the ClaudeBridge C# Add-In. It registers 63 tools: 33 rs_* tools and 30 rws_* tools. The current desktop integration targets RobotStudio 6.08 on Windows.
The package version is 3.1.0. The MCP handshake and startup banner currently report 3.0.0, while the Add-In manifest reports 2.0.0; these version labels have not yet been synchronized.
Contents
Related MCP server: omni-kit-mcp
Architecture
MCP client
|
| MCP over standard input/output
v
Node.js server: dist/index.js
|
+-- rs_* tools -- HTTP --> ClaudeBridge Add-In, 127.0.0.1:58080
| |
| +--> RobotStudio SDK / controller SDK
|
+-- rws_* tools -- HTTP(S) --> Controller Robot Web ServicesInterface | Purpose | Requires |
| Inspect/edit the active station, access RAPID through the SDK, control simulation, capture screenshots | RobotStudio running with ClaudeBridge loaded; station/controller as required by the tool |
| Access controller execution, RAPID runtime values, I/O, files, event logs, and mastership | A reachable controller exposing a compatible RWS API and suitable credentials |
The MCP transport is stdio, not an HTTP MCP endpoint. Port 58080 belongs to the internal SDK bridge. Changing the RWS target does not change the station or controller selected by the SDK bridge.
RWS can be used without loading the Add-In. Most rs_* tools need the Add-In; rs_validate_rapid performs its structural check locally. Large SDK module writes can also use RWS, as described below.
Requirements
MCP server
Node.js and npm compatible with the locked dependencies. The repository's CI configuration uses Node.js 20.
An MCP client supporting stdio servers.
Network access for the initial
npm cidependency installation.
RobotStudio bridge
Windows with RobotStudio 6.08 installed and its SDK assemblies available.
A .NET SDK capable of building the
net461Add-In. Initial restore may need NuGet access to obtain .NET Framework reference assemblies.A compatible
Newtonsoft.Json.dll. By default, the build uses the copy installed with RobotStudio's Conveyor Tracking Add-In.A station with a Virtual Controller for controller-dependent operations and initial testing.
The default SDK location is:
D:\Program Files (x86)\ABB Industrial IT\Robotics IT\RobotStudio 6.08Override this location with -RobotStudioDir when building or staging the Add-In. ABB SDK assemblies are referenced from the installed application and are not copied into the bridge deployment.
Direct RWS access
Configure the controller URL and account explicitly. A working connection to one Virtual Controller does not establish compatibility with every IRC5, OmniCore, or RobotWare release. In particular, the current code has a known module-endpoint mismatch on the tested RobotWare 6.08 controller.
Installation
Run the following commands in PowerShell from your checkout. Replace the example repository and RobotStudio paths with your own locations.
1. Build the MCP server
Set-Location 'D:\mcp_server\mcp-robotstudio\abb-robotstudio-mcp'
npm ci
npm run build
npm testThe server entry point is dist/index.js. Build before running tests because the tests import the compiled output.
2. Build and stage the Add-In
$rsDir = 'D:\Program Files (x86)\ABB Industrial IT\Robotics IT\RobotStudio 6.08'
$jsonDll = Join-Path $rsDir 'Bin\Addins\ConveyorTrackingModuleAddin\Newtonsoft.Json.dll'
powershell -NoProfile -ExecutionPolicy Bypass -File .\install-addin.ps1 `
-RobotStudioDir $rsDir `
-NewtonsoftJsonPath $jsonDllThe installer validates the manifest against the installed RobotStudio XSD, rebuilds the Add-In against that SDK, and stages these files in artifacts\ClaudeBridge:
ClaudeBridge.dll
ClaudeBridge.rsaddin
Newtonsoft.Json.dllThe default operation stages files inside the checkout; it does not install them into the RobotStudio application directory. A failed build stops deployment before the copy step.
If the default Newtonsoft assembly is absent, pass an existing compatible DLL using -NewtonsoftJsonPath.
Optional staging directory:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install-addin.ps1 `
-RobotStudioDir $rsDir `
-NewtonsoftJsonPath $jsonDll `
-Destination .\artifacts\ClaudeBridge-customOptional application-directory installation:
# Close RobotStudio first. Use an elevated shell if the destination requires it.
powershell -NoProfile -ExecutionPolicy Bypass -File .\install-addin.ps1 `
-RobotStudioDir $rsDir `
-NewtonsoftJsonPath $jsonDll `
-System-System copies into RobotStudioDir\Bin\Addins\ClaudeBridge. It cannot be combined with -Destination. The manifest requests automatic loading, but system-installed AutoLoad has not been confirmed on the tested 6.08 setup.
3. Load the staged Add-In
The verified loading method for RobotStudio 6.08 is the /addin: startup argument. Save your work and close RobotStudio before launching it with the bridge.
$bridgeManifest = Join-Path $PWD 'artifacts\ClaudeBridge\ClaudeBridge.rsaddin'
$stationPath = 'D:\RobotStudioProjects\Example\Example.rsstn'
$robotStudioExe = Join-Path $rsDir 'Bin64\RobotStudio.exe'
Start-Process -FilePath $robotStudioExe -ArgumentList @(
"/addin:`"$bridgeManifest`"",
"`"$stationPath`""
)Use a real station path. With staged deployment, supply /addin: again on subsequent launches. The verified 6.08 UI did not expose a usable “Load Add-In” command, so this guide does not depend on one.
4. Check the bridge
Invoke-RestMethod 'http://localhost:58080/ping'Check RobotStudio's Output window for the bridge startup message. The Add-In binds to IPv4 loopback on port 58080 using TcpListener; it does not require an HTTP URL ACL reservation. Installation into a protected application directory may still require elevation.
MCP client configuration
Codex
Add the following to your Codex TOML configuration, typically %USERPROFILE%\.codex\config.toml. Update the absolute server path and controller endpoint, then restart or reconnect the client.
[mcp_servers.abb_robotstudio]
command = "node"
args = ['D:\mcp_server\mcp-robotstudio\abb-robotstudio-mcp\dist\index.js']
[mcp_servers.abb_robotstudio.env]
ABB_BRIDGE_URL = "http://localhost:58080"
ABB_RWS_URL = "http://localhost:80"
ABB_RWS_USER = "Default User"
ABB_RWS_PASS = "robotics"These credentials are the defaults in the repository and are intended as an example for a suitable local test controller. Set the credentials required by your controller. Do not publish private credentials in a committed client configuration.
Clients using an mcpServers JSON configuration
{
"mcpServers": {
"abb_robotstudio": {
"command": "node",
"args": [
"D:\\mcp_server\\mcp-robotstudio\\abb-robotstudio-mcp\\dist\\index.js"
],
"env": {
"ABB_BRIDGE_URL": "http://localhost:58080",
"ABB_RWS_URL": "http://localhost:80",
"ABB_RWS_USER": "Default User",
"ABB_RWS_PASS": "robotics"
}
}
}
}If node is unavailable to the desktop client, use the absolute path to your Node.js executable. No working-directory setting is required when the script path is absolute.
Configuration reference
Variable | Default | Meaning |
|
| HTTP base URL for the loaded ClaudeBridge Add-In |
|
| Initial controller RWS base URL; not automatically discovered |
|
| RWS account name |
|
| RWS password |
| Empty | Comma-separated additional hostnames/IP addresses permitted by runtime target switching |
The built-in runtime-switching host list contains localhost, 127.0.0.1, [::1], and 192.168.125.1. Additional entries are hostnames/IP addresses, not full URLs.
Example additional host:
ABB_RWS_ALLOWED_HOSTS = "192.168.1.50"rws_set_controller_url validates HTTP(S) URLs against this list and resets the cached RWS session after switching. Credentials remain those loaded when the server started. The initial ABB_RWS_URL is read directly from the environment; the runtime allowlist is not a universal outbound-network restriction.
The bridge listening port is a constant in the Add-In. Changing ABB_BRIDGE_URL only changes the client destination; it does not reconfigure the listener.
First connection
Start with inspection on a Virtual Controller:
Call
rs_pingto confirm bridge connectivity.Call
rs_get_stationand verify the station/controller identity.Call
rs_get_tasksand inspect the available task names.Call
rs_get_moduleswith{"task":"T_ROB1"}or the task discovered above.Call
rs_read_modulewith the selected task and an existing module name.If using RWS, call
rws_controller_statusseparately and verify that it points to the intended controller.
Example tool arguments:
{
"task": "T_ROB1",
"module": "Module1"
}Example requests to an MCP assistant:
Inspect the active station and list its RAPID tasks and modules without changing them.
Read Module1 from T_ROB1 and explain its I/O dependencies.
Validate this RAPID module structurally without uploading or executing it.
Check the simulation status and recent controller errors without starting motion.Inspection tools do not intentionally start robot motion. Some SDK module-read fallbacks may export temporary files to retrieve source text, so “read” does not imply zero filesystem activity.
Tool reference
The tables list registered capabilities, not a claim that every operation has passed runtime testing. Consult the input schema exposed by your MCP client for required arguments, defaults, and optional flags.
RobotStudio SDK tools — 33
Category | Tools |
Connection and status |
|
Station |
|
RAPID modules |
|
Variables |
|
I/O |
|
Simulation |
|
Position, paths, and targets |
|
Diagnostics and configuration |
|
SDK variable tools access declaration/initial-value data. Use the RWS variable tools when you need live controller runtime values. Target creation accepts XYZ only; it does not expose a complete orientation, tool/workobject selection, or a verified robot configuration. Verify the resulting target and coordinate units in RobotStudio before using it for motion.
Robot Web Services tools — 30
Category | Tools |
Controller and target selection |
|
Execution |
|
Speed override |
|
RAPID modules and programs |
|
Runtime variables and position |
|
I/O |
|
Files and logs |
|
Mastership |
|
RWS requests negotiate Digest authentication and retain controller session state. Several RAPID write/load operations request and release mastership automatically; do not assume that all writes do so. Operations remain subject to the controller's permissions, operating mode, and API support.
Controller filesystem paths are controller-side paths such as $HOME/Example.mod, not Windows paths on the MCP host.
RAPID validation and writes
Structural validation
rs_validate_rapid checks matching RAPID block delimiters, including module, routine, conditional, loop, trap, and record blocks. It is a lightweight structural checker, not ABB's RAPID compiler. It does not prove symbol resolution, type correctness, instruction availability, reachability, or collision-free motion.
Both rs_write_module and rws_write_module run this check before uploading unless skipValidation=true is supplied. Passing validation does not guarantee that the controller will accept the module.
SDK module replacement
The standard SDK write path loads the requested module using RapidLoadMode.Replace by default, or RapidLoadMode.Add when replace=false. It preserves unrelated modules rather than deleting the task's entire program first. This behavior is implemented in the Add-In but is not covered by the recorded read-only runtime verification.
The standard Add-In write path normalizes line endings to CRLF and writes UTF-8 without an encoding preamble. Do not assume equivalent normalization for every RWS write path or that encoding normalization guarantees successful compilation.
Large-module routing
When code.length > 50_000, rs_write_module first attempts an RWS file upload/load operation. useFileUpload=true forces that route. Automatic routing can fall back to the SDK bridge if the file route fails; forced file upload does not use that fallback.
Important implementation details:
The threshold uses JavaScript string length, not encoded byte size.
The RWS fallback must point at the same intended controller as the SDK bridge; the server does not establish that correspondence automatically.
The file-upload helper always requests replacement and does not honor
replace=false.It uses
$HOME/_claude_uploadas a temporary upload location and attempts cleanup afterward.
Back up affected modules before editing and inspect controller diagnostics after loading. Module writes do not automatically synchronize every corresponding RobotStudio station representation.
Operational limits
Software preflight checks
rs_start_simulation and rws_start_program normally run software preflight checks. They inspect controller state and/or recent event-log entries and block when the check reports errors or cannot complete. force=true bypasses the preflight.
These checks use a limited set of recent events and filtering heuristics. They may include historical errors or miss conditions outside that window. The returned safe field means the software preflight passed; it is not a physical safety assessment or an ABB safety certification.
rs_check_collisions invokes the station collision-check API. Its current response is not a detailed collision report; review configured collision sets and the RobotStudio UI before drawing conclusions about a path.
Mutating operations
Simulation controls, I/O writes, module/program loading, configuration writes, program-pointer resets, motor commands, and controller restarts can change the connected environment. Validate workflows on a Virtual Controller before considering hardware use. Controller permissions and physical safeguards remain necessary.
rs_write_config writes a file in the local controller system directory; it does not provide a complete configuration import, validation, backup, or restart workflow.
Network and path boundaries
The Add-In listens on loopback, but its HTTP API is not authenticated. Treat it as a trusted-local-process interface and do not expose it through a public proxy or port forward.
Runtime RWS switching has a host allowlist; startup environment configuration remains trusted input.
Active RWS file tools use the path validator defined in
src/index.ts. That validator rejects..and requires a supported controller-root path, but accepts$SYSTEMas well as$HOMEand$TEMP.A separate validator in
src/safety-guard.tsrejects$SYSTEM, but that is not the validator wired into those tool handlers. The current implementation must not be described as universally blocking system-root access.
RobotStudio 6.08 compatibility
Recorded results in COMPATIBILITY_608.md establish the following scope for the tested local installation:
Area | Recorded result |
SDK build | Add-In targets |
Manifest | Validates against the installed 6.08 XSD |
Loading |
|
Bridge access |
|
MCP stdio |
|
Controller | Virtual Controller running RobotWare |
System AutoLoad | Not confirmed |
Controller mutations and simulation | Not established by that read-only verification record |
Physical robot operation | Not tested |
Known RWS module endpoint mismatch
On the recorded RobotWare 6.08 controller:
GET /rw/rapid/tasks/T_ROB1/modules -> 404
GET /rw/rapid/modules?task=T_ROB1 -> 200The current rws_get_modules implementation uses the first route. For the verified module-inspection workflow, use rs_get_modules and rs_read_module through the bridge. Other RWS module operations also require version-specific validation; the table does not imply a general RWS compatibility guarantee.
See the compatibility report for the recorded evidence, SDK adaptation details, and limitations. Its Vietnamese text is retained as a separate historical report; this README is entirely in English.
Troubleshooting
Symptom | Check |
MCP tools do not appear | Run |
| Start RobotStudio with the Add-In loaded and test |
| Test |
Add-In fails to build | Check |
Add-In loads only for one session | Staged deployment requires |
Bridge request times out | Check for a busy RobotStudio UI thread, modal dialogs, or a long-running operation; inspect Output before retrying a write. |
Station/controller-dependent tools fail | Open the intended station, ensure its Virtual Controller is ready, and inspect available tasks before using task/module names. |
RWS authentication fails | Verify the endpoint, credentials, controller permissions, and API version. Bridge connectivity does not validate RWS connectivity. |
Runtime URL switch is rejected | Add the exact hostname/IP to |
RWS module listing returns 404 on 6.08 | Use the bridge module tools; see the known endpoint mismatch above. |
Controller path is rejected | Use controller-root paths and forward slashes; inspect the active path validator in |
RAPID passes validation but fails to load | Structural balance is only a preliminary check. Read the controller event log and fix compiler or permission errors. |
Start is blocked by preflight | Inspect reported events and controller state. Do not use |
A large | Check automatic RWS routing, controller identity, credentials, and the file-upload replacement behavior. |
Development and tests
Repository layout
src/
index.ts MCP tool registration and routing
config.ts Bridge/RWS settings and runtime URL selection
bridge-client.ts HTTP client for the in-process Add-In
rws-client.ts RWS HTTP client, Digest sessions, and mastership
rapid-validator.ts RAPID structural checks
safety-guard.ts Preflight checks and a separate path validator
addin/
ClaudeBridgeAddIn.cs RobotStudio/controller SDK integration
ClaudeBridge.csproj net461 build and installed SDK references
ClaudeBridge.rsaddin Add-In manifest
test/
validator.test.js Structural validation and helper path checks
mcp.test.js MCP stdio discovery and invalid-write rejection
install-addin.test.ps1 Installer fixture tests
install-addin.ps1 Build, validate, and stage/install the Add-In
COMPATIBILITY_608.md Recorded compatibility evidenceCommands
npm run build
npm test
powershell -NoProfile -ExecutionPolicy Bypass -File .\test\install-addin.test.ps1npm start runs the built stdio server. npm run dev builds it once and starts it; it is not a file-watching development server. A server launched directly in a terminal may wait silently for MCP messages on stdin.
To build the Add-In without deployment:
dotnet build .\addin\ClaudeBridge.csproj -c Release `
"-p:RobotStudioDir=$rsDir" `
"-p:NewtonsoftJsonPath=$jsonDll"The Node tests do not require a live robot. They cover selected validator behavior and MCP stdio registration/rejection, not all 63 operations. Installer tests use fixtures and do not prove RobotStudio runtime loading. In particular, testing the helper validator does not establish the path policy of the active RWS handlers.
The CI workflow builds and runs Node tests on Ubuntu with Node.js 20. It does not build or launch the Windows RobotStudio Add-In.
License and credits
The checked-in LICENSE contains the MIT License, copyright 2026 Elias Bitsch. package.json currently declares ISC; this metadata mismatch remains unresolved. Refer to the license file rather than assuming the declarations agree.
Original project: Elias Bitsch — abb-robotstudio-mcp.
This edition's existing attribution credits LiskinLabs and Silvestr Liskin for architecture and hardening work.
ABB RobotStudio, its SDK, RobotWare, and related ABB components are separate products subject to their own licensing terms.
Available Tools
63 toolsrs_check_collisionsB
Run collision check on station objects
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'Run collision check' without any behavioral details such as whether the tool is read-only, modifies state, what happens on collision detection, or what the output format is. This is insufficient for an agent to understand side effects or results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and front-loaded. However, it is too brief and could be expanded with additional useful context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no parameters, no output schema, and no annotations, the description is incomplete. A collision check is a significant operation; the agent needs to know what constitutes a collision, whether it's a simulation check, and what the return value is. The current description does not provide enough context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema description coverage is 100%. The description does not need to add parameter semantics since there are none. According to guidelines, baseline is 4 for zero params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Run collision check on station objects' uses a clear verb+resource structure. It specifies the action (run collision check) and the target (station objects), distinguishing it from siblings that perform other operations like reading or writing. However, it does not explicitly differentiate from similar tools, but the action is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool or when not to. There is no mention of prerequisites, alternatives, or context. The description merely states the function without helping the agent decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_check_safetyA
Check if it is safe to start simulation (no RAPID errors, controller ready)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses what conditions are checked, but does not say whether the call is read-only, what it returns, or what happens when unsafe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a compact parenthetical listing the two checked conditions. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter check tool, the purpose is clear, but with no output schema the description should explain the return value or outcome (e.g., boolean or error details). That missing piece leaves a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are inherently trivial and the baseline is 4. The description correctly implies no inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: check whether it is safe to start a simulation, with the criteria 'no RAPID errors, controller ready'. It is distinguishable from rs_start_simulation, but it doesn't explicitly contrast itself with sibling status/error tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied as a pre-flight gate before starting simulation, but the description doesn't explicitly say to call it before rs_start_simulation or when not to use it versus rs_simulation_status or rs_get_execution_errors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_controller_statusA
Get controller state via SDK (systemState, runMode, simulation)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read operation by stating 'Get controller state', but it does not explicitly confirm non-destructiveness or disclose any behavioral traits such as side effects, permissions, or rate limits. With no annotations, the description carries the full burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise phrase that front-loads the purpose. It is efficient but could benefit from slightly more structure (e.g., separating the return fields list).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description provides some context by listing fields, but it does not explain possible values, format, or usage nuances. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters (100% coverage), so the description adds value by listing the specific state components returned (systemState, runMode, simulation), which aids understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool retrieves controller state via SDK and lists specific attributes (systemState, runMode, simulation). This clearly distinguishes it from sibling tools like rws_controller_status, which likely uses a different interface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., rws_controller_status). The description lacks context about prerequisites, preferred scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_create_pathC
Create a new robot path
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It only states creation without disclosing side effects, permissions, error conditions, or whether the path can be overwritten. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is too brief and omits essential details. While concise, it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, no annotations, and one undocumented parameter, the description is incomplete. It does not specify return values, error handling, or required context, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the 'name' parameter at all. With 0% schema description coverage, the description adds no meaning beyond the schema, failing to explain what the name represents or its format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new robot path' uses a specific verb (create) and resource (robot path), making the primary action clear. It distinguishes from siblings like rs_create_target and rs_get_paths, but lacks detail on what constitutes a 'robot path'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, prerequisites, or context. Sibling tools like rs_create_target or rs_get_paths are not mentioned, leaving the agent without direction for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_create_targetC
Create a new robot target at coordinates
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | mm | |
| y | Yes | mm | |
| z | Yes | mm | |
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states that a new target is created, failing to disclose side effects, validation, or required environment state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient. However, it lacks structure like front-loading key details. Still, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 4 required params, no output schema, and no annotations. Description is too brief to be complete for a creation operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (x,y,z with 'mm'). The description adds 'at coordinates' but no additional meaning beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and the resource (robot target) with coordinates. It is specific and distinguishable from sibling tools like rs_create_path, but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, and no context about required station state or permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_execution_errorsA
Read controller event log for errors and warnings (SDK)
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Max messages to return (default: 10, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description reliably indicates a read-only, non-destructive operation. However, it lacks detail on potential behaviors such as rate limiting, authentication requirements, or the format of returned data. The description is minimally sufficient but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the essential purpose without any extraneous words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no output schema, no annotations), the description is largely complete for a simple read tool. It could optionally describe the return structure, but the lack is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single 'count' parameter with its default and max values. The description adds no additional semantic meaning beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Read' and the resource 'controller event log for errors and warnings', with a succinct verb+resource description. The '(SDK)' suffix hints at distinguishing from sibling tools like 'rws_event_log' which likely serve a similar purpose via a different interface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading error/warning logs via SDK, but provides no explicit guidance on when to use this tool versus sibling tools like 'rws_event_log' or 'rs_controller_status'. There is no mention of prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_io_signalsB
List I/O signals via SDK
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits beyond the basic action. It fails to mention that listing is a read-only operation, whether all signals are returned, or any side effects. The description carries the full burden but provides minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 4 words, front-loaded with the action and resource. Every word is necessary and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description is minimally adequate. However, it lacks details about what 'I/O signals' includes (e.g., all signals? filtered?), and there is no mention of return format. For a simple listing tool, this is acceptable but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is trivially 100%. The description adds no parameter information, which is acceptable given no parameters, but it also does not elaborate on the output or any implicit parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List I/O signals via SDK' clearly states the action (list), the resource (I/O signals), and the method (via SDK). It distinguishes from sibling 'rws_get_io_signals' which likely uses a different interface, so purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The phrase 'via SDK' implicitly suggests a protocol choice, but there is no explicit context about prerequisites, limitations, or when to prefer another tool like 'rws_get_io_signals'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_modulesA
List RAPID modules in a task (SDK)
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Task name, e.g. 'T_ROB1' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It offers no insights into side effects, permissions, error handling, or output format beyond the basic listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, complete sentence with no wasted words, perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is minimally adequate for a simple list operation but lacks details on return value format and behavior when task is invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for the single parameter 'task' (e.g., 'T_ROB1'). The description adds no additional semantics beyond the example, so stays at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'RAPID modules in a task', with context 'SDK'. It distinguishes from sibling tools like rs_read_module and rws_get_modules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies SDK usage via parentheses but provides no explicit when-to-use or when-not-to-use guidance against siblings like rws_get_modules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_pathsA
List all robot paths in the station
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states it lists paths, but does not mention return format, pagination, performance, or lack of side effects. For a read tool, this is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that is front-loaded with the key information. Every word earns its place, with no verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and no annotations, the description is adequate for a simple list operation. However, it could be improved by mentioning the output format or confirming it is a read-only operation, which would provide more completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters (0), and schema description coverage is 100%. The description adds no parameter info, which is acceptable since no parameters exist. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all robot paths in the station' clearly states the action (list), the resource (robot paths), and scope (in the station). It differentiates from siblings like rs_create_path (creation) and rs_get_path_targets (details of a specific path).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention that it lists all paths without filtering, nor does it contrast with other path-related tools like rs_create_path or rs_get_path_targets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_path_targetsC
Get targets/waypoints in a path
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must convey behavioral traits. It only states 'Get', implying a read operation, but does not disclose whether it is safe (no side effects), what happens if the path does not exist, or any permissions needed. This is insufficient for an AI agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of a single short sentence. While it avoids verbosity, it sacrifices necessary detail. The information is front-loaded, but the overall structure is too minimal to be optimally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, no output schema), the description is somewhat complete for a simple getter tool. However, it lacks details about return format, prerequisites (e.g., path must exist), and any constraints. It is adequate but leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter 'path' with no description (schema coverage 0%). The tool description does not explain what 'path' represents (e.g., a name, ID, or object reference) or how to format it. It adds no semantic value beyond the schema's bare type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves targets/waypoints within a path. However, it does not differentiate from sibling tools like rs_get_paths (which gets paths themselves) or rs_create_target (which creates targets). A more specific description could clarify that it retrieves existing targets associated with a given path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For instance, there is no mention that this is for reading existing targets as opposed to creating new ones (rs_create_target) or that it requires an existing path. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_positionB
Get robot position via SDK
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'via SDK' but does not explain the returned format, whether it requires an active connection, or if it is read-only. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the core purpose without unnecessary words. It is well front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no parameters, the description is incomplete. It does not explain the output format or type of position data. Additionally, it does not differentiate from the similar 'rws_get_position' tool, leaving gaps for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the schema provides complete coverage. According to guidelines, a baseline of 4 is appropriate. The description adds no extra semantics but is acceptable given the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Get robot position') which clearly indicates the tool's function. It is distinct from sibling tools like 'rs_get_paths' or 'rws_get_position' which target different resources or interfaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'rws_get_position'. There is no mention of prerequisites, context, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_screenshotB
Capture 3D view screenshot as base64 PNG (SDK)
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Width in pixels (default: 1280, max: 3840) | |
| height | No | Height in pixels (default: 720, max: 2160) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions output format and SDK context but fails to disclose side effects (read-only), performance implications, or authentication requirements. Critical behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with key information: action, resource, format, and context. Every word earns its place, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 optional parameters and no output schema, the description is somewhat adequate. However, it lacks details on return value structure, error conditions, and performance characteristics, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already provides defaults and max bounds. The description adds the '(SDK)' qualifier but adds minimal 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Capture', the resource '3D view screenshot', and the output format 'base64 PNG'. It is specific and distinguishes from sibling tools, none of which capture screenshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, nor any prerequisites or conditions. The description only implies usage context but provides no explicit when/when-not instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_stationB
Get active RobotStudio station info (name, controllers)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states it 'gets info', implying a read-only operation, but fails to mention potential errors (e.g., if no station is active), response structure, or any guarantees about the output. The lack of detail leaves the agent uncertain about side effects and edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose. Every word is necessary and meaningful. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is somewhat minimal. It covers the basic purpose and what data is returned (name, controllers) but lacks details on response format, error conditions, or the exact scope of 'station info'. For a simple tool with no parameters, it is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% coverage, so the baseline is 4. The description does not need to add parameter information, as there are none. It correctly implies no inputs are required, aligning with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves active RobotStudio station info, specifying 'name, controllers'. It uses a specific verb ('Get') and resource ('station info'), making its purpose clear. However, it does not differentiate from sibling tools like 'rs_get_station_objects' or 'rs_get_paths', which could also return station-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are many sibling tools, and without explicit context (e.g., 'Use this for basic station identification; for detailed object lists use rs_get_station_objects'), the agent cannot easily determine the appropriate usage scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_station_objectsA
List all objects in the station (robots, tools, smart components). Set bbox=true for bounding box and position data.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | Include bounding box and position (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It indicates that by default it returns a list, and with bbox=true it adds bounding box and position data. However, it does not mention if it is a read-only operation, performance implications, or return structure beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that cover the main purpose and the optional parameter without any fluff or redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the core functionality and optional parameter. However, it does not specify the default output structure (e.g., names, IDs) or any ordering, leaving some uncertainty for the agent. Given the tool's simplicity, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (one boolean parameter with a description). The description repeats the schema info with slightly different wording ('Set bbox=true for bounding box and position data'), adding minimal new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('all objects in the station'), with examples (robots, tools, smart components), distinguishing it from sibling tools that perform different operations like collision checks or path creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a specific usage hint for the bbox parameter, but lacks explicit guidance on when to use this tool versus alternatives (e.g., rs_get_station) or when not to use it. The context is implicit but not fully fleshed out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_get_tasksA
List RAPID tasks with module counts (SDK)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates a read operation (listing tasks) with no destructive behavior noted. However, it lacks details on potential side effects, authentication needs, or output format, but for a simple list tool, the basic behavior is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 7 words, front-loaded with the primary action. Every word is meaningful and no unnecessary information is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description adequately covers its purpose. The mention of 'module counts' hints at return content. For a simple list tool, this is sufficient completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% coverage. Description adds no parameter details, which is acceptable given no parameters exist. The baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it lists RAPID tasks with module counts, providing a clear verb and resource. However, it does not explicitly differentiate from sibling tools like rs_get_modules or rws_get_tasks, though the name and context imply a distinct function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its many siblings. There are no prerequisites, context, or alternative recommendations, making it difficult for an agent to select appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_list_variablesB
List RAPID variables with optional type/module filter (SDK)
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Task name (default: T_ROB1) | |
| module | No | Filter by module name | |
| typeFilter | No | Filter by data type e.g. 'robtarget', 'tooldata', 'wobjdata', 'num' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. While 'list' implies read-only, the description lacks details on side effects, authorization needs, rate limits, or return format. It does not contradict annotations, but it is insufficient for a read operation with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and resource. It contains no unnecessary words and efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about the output format, pagination, or limits. Since there is no output schema, the description should hint at what a 'list' returns (e.g., variable names and values). For a simple tool with 3 optional params, this is minimally acceptable but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for each parameter (e.g., typeFilter lists examples). The description adds 'optional' and 'filter' context, but these are already implicit in the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists RAPID variables with optional filters. It uses a specific verb ('List') and resource ('RAPID variables'), and among siblings like rs_read_variable (reads a specific variable) and rs_write_variable (writes), this tool is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. It only states the action and optional filters, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_pause_simulationB
Pause RobotStudio simulation
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available and the description gives no behavioral details beyond the action itself. It does not disclose side effects, state changes, or prerequisites like whether the simulation must be running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, but it could be improved by adding brief context (e.g., 'Pauses a currently running RobotStudio simulation') without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is the sole source of information. It is barely adequate; it defines the action but omits details like the required state of the simulation and the result of pausing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema description coverage is trivially 100%. Per guidelines, baseline score is 4, and the description adds nothing unnecessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Pause' and the resource 'RobotStudio simulation', making the core function unambiguous. However, it does not distinguish between pausing and stopping, which is important given sibling tools like rs_stop_simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as rs_stop_simulation or rs_start_simulation. The description lacks context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_pingA
Check if RobotStudio ClaudeBridge Add-In is running and connected
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it checks connectivity but does not disclose what happens if the add-in is not reachable (e.g., error behavior), response format, or side effects. Adequate for a simple ping, but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple ping tool with no parameters or output schema, the description is mostly complete. Could be enhanced by specifying return type (e.g., boolean) or typical usage, but current version is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, and schema coverage is 100%. Baseline for zero params is 4. Description is clear and does not need to add param details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks if the RobotStudio ClaudeBridge Add-In is running and connected. Uses specific verb 'Check' and explicitly names the resource, distinguishing it from all sibling tools which cover different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention typical usage context (e.g., as a prerequisite check) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_read_configA
Read controller config file (SYS.cfg, EIO.cfg, SIO.cfg, MOC.cfg)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | e.g. 'SIO.cfg' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states 'Read', implying non-destructive behavior. No details about error handling (e.g., if file not found), permissions, or side effects. For a simple read tool, this is acceptable but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no superfluous words. Front-loaded with verb and resource. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple tool with one parameter and no output schema. The description adequately identifies the resource and valid file names. Misses a note that files are on the controller, but that is implied by 'controller config file'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with a description example ('e.g. 'SIO.cfg''). The tool description adds the set of valid config file names (SYS.cfg, EIO.cfg, SIO.cfg, MOC.cfg), providing useful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb ('Read'), the resource ('controller config file'), and lists the specific config files (SYS.cfg, EIO.cfg, SIO.cfg, MOC.cfg). This distinguishes it from sibling tools like rs_read_module or rs_read_variable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit instructions on when to use versus alternatives. However, the sibling list includes rs_write_config, implying the read counterpart. Still, lacks guidance on when to choose this over other read tools (e.g., rs_read_module).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_read_io_signalB
Read individual IO signal state and value via SDK
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Signal name, e.g. 'di1', 'do1' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It usefully discloses that the call returns both state and value and that it goes through the SDK, but says nothing about failure behavior for unknown signal names, permissions, or read latency. Adequate for a low-risk single read, incomplete for a stricter standard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the verb and resource front-loaded and no filler. It is terse to the point of omitting any routing signal, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description partially compensates by stating that state and value are returned. Still missing is any hint of what 'state' vs 'value' look like or how errors surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter already carries an example ('di1', 'do1'). The description adds no naming conventions or scoping 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (individual IO signal) plus its payload (state and value, via SDK). The word 'individual' implicitly distinguishes it from the bulk siblings rs_read_io_signals and rws_read_io, though those alternatives are never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, no exclusions, and no naming of alternatives among the many IO read siblings (rs_read_io_signals, rws_read_io). The agent must infer from the singular noun that this is the single-signal variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_read_moduleC
Read full RAPID source code of a module (SDK)
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| module | Yes | e.g. 'module_MAIN', 'module_EGM', 'Wizard_Params' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry full behavioral disclosure. It states it reads 'full RAPID source code' but does not mention if it requires special permissions, the scope of the data returned, or any side effects. This is insufficient for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise but lacks structure. It does not include headings, bullet points, or any organization that would aid quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the generic sibling set, the description should explain what 'full source code' means, the format of the output, and any constraints (e.g., module must exist). The current description is too minimal to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter ('module') has a description with examples, which adds useful context. The 'task' parameter lacks any description, leaving its meaning unclear. With 50% schema coverage, the description partially compensates but does not fully clarify semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read full RAPID source code') and the resource ('module'), making the tool's purpose evident. However, it does not differentiate from siblings like 'rs_read_module' vs 'rws_read_module', which may cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'rs_write_module' or 'rws_read_module'. The description lacks context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_read_variableC
Read a RAPID variable initial value (SDK)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| task | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It states 'read' implying no side effects, but fails to specify error conditions (e.g., variable not found), whether the robot must be in a certain state, or if it requires connection to a real controller.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (single sentence), but it omits critical information. It is not front-loaded with the most important details beyond the basic action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two required parameters, no output schema, and no annotations, the description is too minimal. It does not explain the return value, potential errors, or any constraints, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain the meaning of 'task' and 'name'. These are likely the RAPID task name and variable name, but the description offers no clarification, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Read a RAPID variable initial value (SDK)', indicating a read operation on a specific resource. It distinguishes from sibling tools like rs_write_variable (write) and rs_list_variables (list). However, the phrase 'initial value' could be more precise, but overall the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like rs_list_variables or rs_read_variable (RWS version). No mention of when not to use it or any preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_reset_simulationA
Reset simulation to start position (stops simulation and resets PP)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses that the tool stops simulation and resets PP, providing clear behavioral context beyond the tool name. No annotations exist, so the description carries the full burden and does so adequately for a simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Every part is meaningful and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters and no output schema. The description adequately explains the action. Missing definition of 'PP' but likely understood in context. Could mention side effects or prerequisites, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Description adds no parameter info, which is appropriate since there are none. Baseline score of 4 for zero-parameter tools is justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool resets simulation to start position, stops simulation, and resets PP. It uses a specific verb and resource, distinguishing it from siblings like rs_start_simulation or rs_stop_simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description, but no explicit guidance on when to use this tool vs alternatives like rs_stop_simulation or rws_reset_pp. The phrase 'reset simulation to start position' suggests a full reset, but no when-not-to-use or alternative mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_save_stationB
Save the active station to disk
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether it overwrites existing files, requires specific permissions, is synchronous, or errors. For a disk-write operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), but lacks important details like confirmation or error handling. While efficient, it could be more informative without much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description still omits crucial context such as return value, error conditions, and impact on the station. It does not fully equip an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100%. According to guidelines, baseline is 4. The description does not need to add parameter meaning as there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Save') and resource ('active station to disk'). It distinguishes from retrieval tools like rs_get_station and simulation control tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., rs_get_station for reading, or other save-like tools). No prerequisites or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_set_sim_speedB
Set simulation speed multiplier
| Name | Required | Description | Default |
|---|---|---|---|
| speed | Yes | Speed multiplier (1.0 = normal) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. The description does not disclose behavioral traits such as whether the change is immediate, persistent, or requires a restart. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no superfluous words. It is front-loaded and directly states the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter tool, the description should contextualize the effect (e.g., immediate, global to simulation). Lacking any context about side effects or state dependencies, it feels incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no additional meaning beyond what the schema already provides for the 'speed' parameter. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set simulation speed multiplier' clearly states the action (set) and the resource (simulation speed multiplier). It is specific and unambiguous, and it distinguishes itself from sibling tools like 'rs_pause_simulation' or 'rws_set_speed_override' which target different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., simulation must be running), nor does it provide any conditions or exclusions. The agent is left with no decision support beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_simulation_statusB
Get simulation state and time
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states that the tool 'gets' data, implying a non-destructive read, but does not mention any nuances such as whether it requires authentication, rate limits, or the exact fields returned (e.g., 'running', 'paused', simulation time).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two words, which is front-loaded and contains no wasted words. However, it could benefit from a slightly more detailed expansion (e.g., specifying that it returns state like running/paused/stopped and simulation time) without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description should explain the return values. It mentions 'state and time' but does not describe their format or possible values, leaving a significant gap in context. The tool is simple, yet the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema coverage is 100%. According to the scoring rule, a tool with no parameters receives a baseline of 4. The description adds no additional parameter meaning since none exist, but the baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get simulation state and time' uses a specific verb 'Get' and clearly identifies the resource as the simulation's current state and time. It distinguishes this tool from sibling tools that perform actions (e.g., start, stop) or retrieve other data (e.g., position, screenshot).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While its purpose is clear, there is no explicit instruction about context or prerequisites, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_start_simulationA
Start RobotStudio simulation (Play). Blocks if RAPID errors detected — use force=true to override.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Skip safety check and force start even with errors (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose the most important behavior: the call blocks on detected RAPID errors unless force=true. It does not say whether the block is a thrown error or a returned status, whether it is idempotent when the simulation is already running, or what controller/motors state is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence plus a clause; the action is front-loaded and the blocking condition and override follow immediately. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter action tool with no output schema, the description covers what it does, the failure condition, and how to bypass it. It leaves open the preconditions for a start (controller state, motors on) and what a successful call returns, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'force' parameter is fully documented as 'Skip safety check and force start even with errors (default: false)'. The description only restates the same override semantics, adding no new format or interaction detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Start') and resource ('RobotStudio simulation'), with the parenthetical '(Play)' disambiguating the exact simulation mode. Against siblings like rs_stop_simulation, rs_pause_simulation, and rs_reset_simulation, the action is immediately distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the condition under which the call will fail (RAPID errors detected) and the escape hatch (force=true to override), which effectively tells the agent when to use the force path. It stops short of naming an alternative or saying what to do first, such as calling rs_get_execution_errors or rs_check_safety before starting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_stop_simulationA
Stop RobotStudio simulation
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose if the simulation must be running, whether data is lost, or if there are side effects. The verb 'stop' is ambiguous regarding state resets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with zero wasted words. It is appropriately sized for a parameterless tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool without output schema or parameters, the description is adequate but incomplete. It could mention that the simulation must be running or that it is a safe operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so baseline is 4. The description adds no parameter information, but none is needed since schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Stop RobotStudio simulation' clearly states the action (stop) and resource (simulation), distinguishing it from sibling tools like rs_start_simulation, rs_pause_simulation, and rs_reset_simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While it's implied for stopping a running simulation, there's no mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_validate_rapidB
Validate RAPID source code syntax (block balance: IF/ENDIF, PROC/ENDPROC, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Full RAPID source code to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Validate' implies a non-destructive check and the parenthetical enumerates what is checked, which is useful behavioral context, but it says nothing about whether the operation touches the controller/network, how deep the check goes (only block balance, or full syntax), or what a failed validation produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the resource and the scope check front-loaded, no filler. The trailing '(etc.)' slightly weakens the precision of the enumerated checks but keeps it short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter validation tool with no annotations and no output schema, the description should say what the result looks like (error list vs boolean) and whether validation is offline. It covers the input side adequately but leaves the outcome side undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('Full RAPID source code to validate'), so the schema already does the work. The description adds no syntax, format, or size guidance beyond that, warranting the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb (Validate) with a specific resource (RAPID source code syntax) and further narrows scope to block balance constructs (IF/ENDIF, PROC/ENDPROC). This is clearly distinct from the sibling write/read module tools, though it never explicitly names a sibling or contrasts itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus rs_write_module, rws_load_module_from_file, or any of the rws_* controller tools, and no prerequisites (e.g. whether a controller connection is needed or whether this is a purely offline check). Usage is only inferable from the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_write_configD
Write controller config file
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as destructiveness, required permissions, or side effects. It merely states the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is too brief to be helpful. While concise, it lacks necessary structure and detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is grossly incomplete for a mutation tool with two required parameters. No information on return values, error conditions, or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain what 'name' and 'content' represent, nor provide any format or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Write controller config file' uses a specific verb and resource, and distinguishes from siblings like rs_read_config. However, it lacks scope or context about what kind of controller config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as rs_write_module or rs_read_config. The description provides no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_write_io_signalC
Set individual IO signal value via SDK
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Signal name, e.g. 'di1', 'do1' | |
| value | Yes | Signal value (e.g. 1 or 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it only implies a mutation. It does not say whether the signal must be an output (e.g. do1) versus an input, whether writes to inputs are rejected, what permissions or controller state are required, or whether the change is immediate and persistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and no filler. It is efficiently structured, though its brevity borders on under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits return behavior, error conditions (invalid signal name, read-only signal), and controller-state requirements that the agent needs before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (name, value) are documented with examples in the schema itself. The description adds nothing beyond that, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Set individual IO signal value'), which is clearer than the bare tool name. However, it offers no differentiation from overlapping siblings such as rws_write_io, rs_write_variable, or rs_write_module, which an agent must disambiguate among.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus rws_write_io or rs_write_variable, nor any prerequisites or exclusions. The phrase 'via SDK' hints at the transport but does not tell the agent when this is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_write_moduleB
Write RAPID module source code into running controller (SDK). Auto-validates RAPID syntax and uses file upload for large modules.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Full RAPID code (MODULE ... ENDMODULE) | |
| task | Yes | ||
| module | Yes | ||
| replace | No | Replace the specified module only (default: true); preserve other modules | |
| useFileUpload | No | Force file-based upload via RWS (for very large modules) | |
| skipValidation | No | Skip RAPID syntax validation (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description does add real behavioral facts: RAPID syntax is auto-validated and large modules fall back to file upload via RWS. However, it omits the risk profile an agent needs for a mutation tool — that it overwrites an existing module by default (replace=true), what happens when validation fails, and whether controller mastership/write access is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core action front-loaded and the behavioral notes trailing. Nothing is redundant, though the parenthetical '(SDK)' is doing more work than its brevity suggests it should.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter write operation with no annotations and no output schema, the description leaves key gaps: no return/failure semantics (what the caller sees on syntax error or on a busy controller), no mention of the default destructive replace behavior, and no guidance on the task/module parameters. This is under-specified for the risk level of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description only indirectly reinforces two of the six parameters (validation maps to skipValidation, large-module upload maps to useFileUpload). It adds nothing about task or module naming scope, leaving about a third of the parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (write RAPID module source code into a running controller) plus the transport hint (SDK), which separates it from read-oriented siblings like rs_read_module and rs_get_modules. It stops short of naming the near-identical rws_write_module sibling, so the agent must infer the SDK-vs-RWS distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'into running controller (SDK)' and by the auto-validation/upload notes, which suggest when each mode applies. There is no explicit statement of when to prefer this over rws_write_module or rws_write_file, nor any prerequisite (task selection, mastership) called out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rs_write_variableC
Set a RAPID variable initial value (SDK)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| task | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states it sets a variable but does not disclose effects on running simulations, persistence, or required permissions. Mere mention of 'initial value' suggests a write operation, but no additional behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no fluff, but it is overly sparse. While concise, it lacks structure and misses important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters, no output schema, no annotations, and the complexity of writing a variable, the description is severely incomplete. It fails to provide necessary context about variable scope, value format, or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (task, name, value). The description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'Set' and the resource 'RAPID variable', and mentions 'initial value (SDK)' which hints at the context. It distinguishes from sibling read tools like rs_read_variable and other write tools like rws_write_variable. However, 'initial value' is somewhat ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like rs_read_variable or rws_write_variable. No context about prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_controller_statusB
Get controller state via RWS (opmode, motors, RAPID execution)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. While 'Get' implies a read-only operation, it does not mention any potential side effects, authorization requirements, error conditions, or whether it can be called repeatedly without issues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about the return format or structure, which is important given the absence of an output schema. It also does not address error scenarios, but for a simple read with no parameters it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description does not need to explain parameter semantics. The schema coverage is 100% as there are no parameters to cover.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves controller state including opmode, motors, and RAPID execution. However, it does not differentiate from the sibling tool 'rs_controller_status' which likely serves a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'rws_execution_state' or 'rs_controller_status'. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_event_logC
Get controller event log via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Default: 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only says 'Get', implying a read-only operation, but does not mention side effects, permissions, rate limits, or what 'via RWS' entails. This is insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the key action and resource. It contains no unnecessary words, but it could be more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no output schema), the description is too brief. It does not explain what an event log contains, when it should be used, or what the return value looks like, leaving the agent with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'count' (default 10). The tool description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get controller event log via RWS' clearly states the verb 'Get' and the resource 'controller event log', making the tool's purpose understandable. However, it does not differentiate from sibling tools like rws_controller_status or rws_execution_state, which might also retrieve controller information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as rws_controller_status or rws_get_modules. There is no mention of use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_execution_stateB
Get RAPID execution state via RWS
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read operation but does not explicitly state it is non-destructive, nor does it mention any authentication, mastership requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose. Every word earns its place; there is no extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is insufficient for an agent to understand what the execution state encompasses (e.g., running, stopped, error) or how the return value is structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so description need not add parameter details. Baseline of 4 applies as the description adds no extra parameter information but is not deficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get RAPID execution state via RWS' clearly states the verb (Get) and the resource (execution state), distinguishing it from sibling tools that get positions, IO signals, or modules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like rs_simulation_status or rws_controller_status. The description lacks context on prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_get_io_signalsB
List all I/O signals via RWS
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only repeats the name's purpose, adding no information about read-only nature, performance, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one phrase), but it lacks sufficient detail to be maximally helpful. It sacrifices informativeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is functionally complete but does not help the agent understand scope or differentiation from sibling tools, limiting its completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the schema is trivially 100% covered. The description does not need to explain parameters, but it could note the absence of filters. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (I/O signals), but it does not differentiate from sibling tools like rs_get_io_signals or rws_read_io, which perform similar functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as filtering or specific signal types. The agent receives no decision-making support for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_get_modulesC
List RAPID modules in a task via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the action without detailing effects of missing task, permissions required, or output nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient and to the point. Could benefit from slight structuring but acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only one parameter, the description fails to specify return format, error conditions, or relationship to sibling module tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and description adds no meaning beyond parameter name 'task', which is ambiguous (name vs ID). No format or constraints described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List), resource (RAPID modules), and context (in a task via RWS), distinguishing it from sibling tools like rws_read_module.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_get_positionC
Get live robot TCP position via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| mechUnit | No | Default: ROB_1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral disclosure. It states 'live' but does not explain behavior such as data freshness, side effects, permissions required, or whether it is a safe read operation. This lack of information is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded, but it omits important context that would justify its brevity. It could be considered under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description should at least mention the return format (e.g., coordinates) and units. It does not, leaving the agent with insufficient information about what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'mechUnit' (default: ROB_1). The tool description adds no further meaning beyond the schema, so it meets the baseline for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets the live robot TCP position via RWS, specifying the verb 'Get' and resource 'live robot TCP position'. However, it does not differentiate from the sibling tool 'rs_get_position', which likely has a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives like 'rs_get_position' or other status tools, nor any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_get_speed_overrideA
Get speed override percentage via RWS
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as side effects, authorization needs, or return format. It is implied to be read-only but not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's function with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description is minimal but leaves ambiguity about the return type (percentage as number or string?). Additional context on what exactly is returned would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description adds no parameter meaning, which is acceptable as there are none to describe. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'speed override percentage', and the interface 'via RWS'. It distinguishes from sibling tools like rws_set_speed_override, which sets the value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use or not use this tool. No mention of alternatives or prerequisites. The agent receives no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_get_tasksB
List RAPID tasks via RWS
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only states the action, lacking information about read-only nature, required permissions, or whether it returns only names or full details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient and front-loaded. However, it could include slightly more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should explain return values. It doesn't specify what information is listed (e.g., task names, status) or how results are presented. Incomplete for effective tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description need not add param details, but could clarify what 'RAPID tasks' means. Baseline score of 4 is appropriate given zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it lists RAPID tasks via RWS, specifying the verb 'list' and resource. While clear, it doesn't differentiate from siblings like 'rws_execution_state' which may also involve tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as rws_execution_state or other list tools. Missing prerequisites or context about task type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_list_filesB
List files on controller filesystem via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Default: $HOME |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full burden. It does not disclose whether the listing is recursive, the output format, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no redundant words. Front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is minimal. It lacks details on behavior such as recursion, file types, or metadata returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description in the schema already states 'Default: $HOME'. The tool description does not add additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list files) and the target (controller filesystem via RWS). It distinguishes itself from sibling tools like rws_read_file which reads file content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_load_module_from_fileC
Load a RAPID module from a file on the controller filesystem via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Task name, e.g. 'T_ROB1' | |
| replace | No | Replace existing module (default: true) | |
| filepath | Yes | Path on controller, e.g. '$HOME/my_module.mod' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the source of the module but not the side effects: existing-module replacement (the schema's 'replace' defaults to true), whether mastership/PP state is required, or what happens on a failed load. For a mutation tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the key qualifiers (source = controller filesystem, transport = RWS) front-loaded. It is efficient but borders on under-specification rather than maximal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameters and return semantics are adequately covered by the schema and the absence of an output schema keeps return-value expectations simple. However, for a mutation tool with no annotations, the description should say more about overwrite/default behavior and required controller state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'task', 'filepath' examples and the 'replace' default all documented in the schema. The description adds no semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Load'), resource ('RAPID module'), and source ('from a file on the controller filesystem') with the transport ('via RWS'). This distinguishes it from the read/write siblings in spirit, though it never explicitly contrasts with rws_load_program or rws_write_module.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to prefer this over rws_write_module (inline content) or rws_load_program, nor any prerequisites such as mastership or write-permission state. The reader must infer the use case purely from the name and the phrase 'from a file'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_load_programC
Load a RAPID program from the controller filesystem via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Task name, e.g. 'T_ROB1' | |
| loadmode | No | Load mode (default: replace) | |
| progpath | Yes | Program file path, e.g. '$HOME/myprog.pgf' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not fulfill it. It never says that a load overwrites or replaces an existing program (the destructive implication of the default replace loadmode lives only in the schema), nor whether mastership or a stopped controller is required, nor what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficiently written, though the sentence is short enough that the missing behavioral context is a content gap rather than a verbosity problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a filesystem-mutating operation with no annotations and no output schema, and the description supplies none of the surrounding context an agent needs: required controller state, mastership, overwrite semantics, or what success looks like. For a mutation tool with zero annotation coverage, this is a significant shortfall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: task, progpath, and the loadmode enum are fully documented in the schema including the default of replace. The description adds no parameter meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Load a RAPID program from the controller filesystem") and names the transport (RWS). It is distinguishable from rws_load_module_from_file by operating on programs rather than modules, but the distinction is left implicit rather than called out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus rws_load_module_from_file, rws_save_program, or rws_start_program. There is also no mention of prerequisites such as mastership, motor state, or controller mode that typically gate a program load.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_read_fileC
Read a file from controller filesystem via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation but provides no additional behavioral context such as permissions, file size limits, or potential side effects. Since annotations are absent, the description should compensate but fails to do so.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous text. It is concise, though it lacks some detail that could be added without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description is minimally adequate. However, it does not inform about file types, safety considerations, or error handling, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 'path' parameter in the input schema has no description, and the tool description does not clarify the expected format, allowed values, or whether it is absolute/relative. With 0% schema coverage, the description should add meaning but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the resource 'a file from controller filesystem via RWS', which is specific and distinguishes from sibling tools like rws_write_file. However, it is somewhat generic and could be more precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as rws_read_module or rws_list_files. There are no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_read_ioC
Read a single I/O signal via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| signal | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It only states the basic function, omitting details about side effects, return format, or required permissions. The description is insufficient for understanding the full behavioral impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence with no redundancy. It could be slightly expanded to include more useful information without losing conciseness, but it is currently efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with one parameter and no output schema, the description should at least hint at the return value or typical usage. It fails to provide enough context for an agent to fully understand the tool's capabilities and expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'signal' is described only as 'Read a single I/O signal', adding minimal meaning beyond the schema. No format, allowed values, or examples are provided, leaving the parameter's semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the resource 'I/O signal', with the method 'via RWS'. It distinguishes from sibling tools like rws_write_io and rs_get_io_signals, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any context about prerequisites or limitations. The description lacks any usage recommendations or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_read_moduleC
Read RAPID module text via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| module | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks details beyond the basic action. Since there are no annotations, the description should disclose behavioral traits such as read-only nature, side effects, or required permissions. The term 'Read' implies a read operation, but no explicit confirmation or additional behavior is described. For a read tool, more transparency is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence), which is concise, but it sacrifices essential information. It does not earn its place because it lacks details that are critical for correct tool usage. The brevity leads to under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (reading a module text), the description should at minimum explain what the return value is (the module text) and any constraints on the parameters. Without an output schema, the description does not indicate what the agent can expect as output. The description is incomplete for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters ('task' and 'module') are required but have no description in the schema or the tool description. The description does not explain what values these parameters accept or their format. With 0% schema description coverage, the description fails to compensate, leaving the agent without necessary context to correctly populate the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Read RAPID module text') and the method ('via RWS'). It is specific enough to convey the tool's purpose, but does not distinguish it from similarly named sibling tools like 'rs_read_module' which may have the same function with a different prefix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'rs_read_module' or 'rws_read_file'). There is no mention of prerequisites, context, or exclusion criteria, leaving the agent to guess the appropriate usage scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_read_variableC
Read a RAPID variable's live runtime value via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| module | Yes | ||
| variable | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does not disclose what happens if the variable does not exist, if there are read permissions required, or any error conditions. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that gets to the point quickly. However, it is too concise and lacks necessary detail, but for a simple tool, it is acceptably concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and three required parameters with no documentation, the description is incomplete. It does not explain return format, error handling, or how to use the parameters effectively. The tool is used in a complex RWS environment, and the description lacks essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters 'task', 'module', or 'variable'. It does not explain what values they accept, format constraints, or how to specify them. The description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read', the resource 'RAPID variable', and the context 'live runtime value via RWS'. It distinguishes from sibling tools like rws_write_variable, rws_read_module, and rs_read_variable by specifying RWS and the exact action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It lacks prerequisites, when-not-to-use scenarios, or comparisons with siblings like rs_read_variable, which might be used in simulation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_release_mastershipD
Release mastership
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits, such as side effects, prerequisites, or consequences of releasing mastership. No annotations are present to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While extremely short, the description is under-specified and omits critical information, making it insufficient for effective tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a parameter and sibling tools, the description is grossly incomplete. It fails to provide any context about the domain parameter or when to release mastership.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the 'domain' parameter, and the schema provides no description. The parameter's purpose and effect remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Release mastership' is essentially a tautology of the tool name. It does not explain what mastership refers to or how it differs from related tools like rws_request_mastership.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as rws_request_mastership. The description lacks any contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_request_mastershipA
Request mastership (needed for writes)
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description indicates a state-changing operation (requesting mastership) but does not detail idempotency, failure modes, or whether a prior request is needed. The essential behavior is conveyed, but more specifics are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It efficiently conveys the core purpose in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the essential purpose and context (needed for writes) but lacks parameter documentation and any mention of prerequisites or side effects, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no explanation of the 'domain' parameter, which has an enum of three values (rapid, cfg, motion). With 0% schema description coverage, the agent receives no guidance on parameter meaning or valid values, severely hindering correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'request' and the resource 'mastership', and explicitly notes it is needed for writes. This distinguishes it from the sibling tool 'rws_release_mastership'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before write operations by saying 'needed for writes,' but does not explicitly state when to use or not use this tool, nor does it mention the complementary release tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_reset_ppA
Reset RAPID program pointer via RWS
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits like side effects or prerequisites. It only states the action without explaining implications (e.g., requires robot stop state, resets execution).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is appropriately sized for a zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and zero parameters, the description is minimally complete. However, it lacks usage context to fully judge when to invoke it among sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the schema, so the description does not need to explain parameters. It adds no extra meaning, but baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action 'Reset RAPID program pointer' and the mechanism 'via RWS'. It distinguishes from siblings like rs_reset_simulation which reset simulation state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as rws_start_program or rws_stop_program. The description lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_restart_controllerC
Restart the robot controller via RWS (warm-start, resets RAPID)
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Restart mode: warm (keep system params) or cold (full restart). Default: warm. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that RAPID is reset, but omits downtime, safety implications, required mastership/auth, and what happens to running programs, and its 'warm-start' parenthetical is incomplete because the schema also allows cold restarts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no waste. The purpose and main effect are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-impact controller restart with no annotations and no output schema, the description is too sparse. It should disclose disruption, requirements, and how the optional cold mode differs from the stated warm-start behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema fully documents the optional mode enum including warm vs cold behavior. The description adds no further parameter detail beyond mentioning warm-start, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: restart the robot controller via RWS, and adds the key effect of resetting RAPID. It is distinguishable from siblings such as rws_reset_pp, though it does not explicitly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, exclusions, or alternatives are provided. The agent must infer that this tool is for controller restarts rather than program pointer resets or program stops.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_save_programC
Save entire RAPID program to a directory on the controller via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Directory path on controller, e.g. '$HOME/mybackup' | |
| task | Yes | Task name, e.g. 'T_ROB1' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it says nothing about whether existing files at the target path are overwritten, whether mastership is required, whether the program must be stopped, or what happens on partial failure. It only confirms the operation is a write to controller disk and the transport is RWS.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity comes at the cost of the behavioral and usage detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a filesystem-mutating tool with no annotations and no output schema, the description leaves out overwrite behavior, permissions/mastership requirements, and controller-state prerequisites. The parameters are documented by the schema, but the operational context an agent needs to call this safely is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already gives examples for both `path` ('$HOME/mybackup') and `task` ('T_ROB1'). The description adds no parameter detail beyond 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Save) and resource (entire RAPID program) plus the destination (a directory on the controller) and transport (RWS). An agent can tell this apart from module-level writes like rws_write_module, though it never explicitly distinguishes itself from the similarly named rs_save_station.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus rws_write_module, rws_write_file, or rs_save_station, and no prerequisites such as requiring mastership or a stopped execution state. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_set_controller_urlB
Switch RWS target controller at runtime (virtual ↔ real, no restart needed)
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | New controller URL, e.g. 'http://localhost:80' (virtual) or 'http://192.168.125.1:80' (real) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose one important trait — the switch is live and requires no restart — but says nothing about side effects: whether an active connection or running program is dropped, whether mastership is affected (cf. rws_request_mastership), or whether the change persists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the parenthetical earns its place by conveying the mode distinction. Only the slightly cryptic '↔' notation keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter runtime switcher with no output schema, gone is fine, but an agent still lacks answers to operational questions — is it safe to call while a program runs, and does the switch invalidate existing handles or mastership? That context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already gives concrete virtual/real URL examples, so the description adds little beyond it. The 'virtual ↔ real' phrasing loosely maps to the two URL forms but no format, validation, or failure semantics are added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Switch RWS target controller') and clarifies scope with 'at runtime (virtual ↔ real)'. It is clearly distinct from the read/write/status siblings, though it doesn't name or contrast any of them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'at runtime ... no restart needed' implies the situation where this tool is appropriate, but there is no explicit when-to-use/when-not guidance or reference to alternatives such as rws_restart_controller, which is the nearest sibling in intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_set_motorsB
Turn motors on/off via RWS (real controller command)
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry full burden for behavioral disclosure. It only states the basic action of turning motors on/off, without mentioning safety implications, permission requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded and contains no superfluous words, effectively communicating the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description provides adequate context about the basic operation. However, it lacks behavioral details such as safety and reversibility, which are important for a real controller command.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description should add meaning. However, it only repeats the enum values (on/off) without elaboration on what each state entails (e.g., brake behavior, power state). The enum itself is clear, but the description adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Turn motors on/off' and the resource 'motors' via 'RWS (real controller command)' which distinguishes from many sibling tools that handle other functions like reading variables or starting programs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The context of 'real controller command' implies a specific scenario, but no when-not or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_set_speed_overrideC
Set speed override (0-100%) via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| speed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states the basic function, omitting important details like required permissions (e.g., mastership), side effects, or whether the change is instantaneous or gradual.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) with no fluff. It earns its place by stating the core action and range, though it could include additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema), the description is insufficient. It fails to mention prerequisites like mastership or controller state, leaving the agent underinformed about safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should add meaning beyond the schema. However, it does not elaborate on the 'speed' parameter's usage, units, or impact, merely repeating the range already defined in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set'), the target resource ('speed override'), and the valid range ('0-100%'). This effectively distinguishes it from its sibling 'rws_get_speed_override' which reads the value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites, preconditions, or exclusions mentioned. An agent would lack context such as needing mastership or proper controller state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_start_programB
Start RAPID execution on the controller via RWS. Blocks if errors detected — use force=true to override.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| force | No | Skip safety check and force start even with errors (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose one valuable behavior: the call blocks on detected errors and force=true overrides that check. It omits other important traits for a mutation tool, such as mastership requirements, what happens if a program is already running, and whether mode=reset changes program-pointer state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed by the key caveat. 'via RWS' is mildly redundant given the tool name, but there is no filler beyond that.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A controller-mutating operation with no annotations, no output schema and one undocumented enum parameter needs more: preconditions, mastership/auth needs, behavior when already running, and what a successful or blocked start returns are all absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only restates the force parameter, which the schema already documents in full. The mode enum (continue vs reset) is completely undocumented in both schema and description, leaving the highest-impact parameter's semantics unexplained at 50% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Start RAPID execution on the controller via RWS.' That clearly distinguishes it from rws_stop_program and rws_reset_pp without needing the schema. It does not explicitly name those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one conditional usage rule: use force=true when errors block the start. It does not say when to prefer it over rws_reset_pp or rws_restart_controller, nor whether to check rws_execution_state or rws_check_safety first, which 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.
rws_stop_programC
Stop RAPID execution via RWS
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details beyond the basic action. No annotations are provided, so the description carries full burden. It does not disclose side effects, safety considerations, or whether mastership is required, leaving ambiguity about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence), but it is too brief to cover necessary context. It lacks front-loading of key details like when to use or what happens after stopping. It could be improved with additional clarifying information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is minimal but insufficient for a tool with many siblings. It does not explain what 'RAPID execution' entails or how this tool interacts with other stop/reset tools. More context is needed for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema coverage is 100%. The description does not need to add parameter semantics. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Stop') and the resource ('RAPID execution via RWS'). It distinguishes this tool from siblings like 'rws_start_program' and other execution-related tools, though it does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'rs_stop_simulation' or 'rs_reset_simulation'). There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_unload_moduleC
Unload (delete) a RAPID module from a task via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Task name, e.g. 'T_ROB1' | |
| module | Yes | Module name to unload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden for a destructive operation. It says 'delete' but omits whether the unload is reversible, whether the task/module must be idle, whether mastership is required, and what happens on failure — significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the action and target front-loaded; nothing extraneous or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description leaves out safety-relevant context such as preconditions, permission/mastership needs, and result reporting. The schema covers inputs, but the behavioral picture an agent needs before deleting a module is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both params documented (task example 'T_ROB1', module name). The description only echoes that a module is removed from a task, adding no format or constraint 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Unload (delete)') and resource ('a RAPID module') plus the containing scope ('from a task'), which distinguishes it from read-oriented siblings like rws_read_module and rws_get_modules. The 'via RWS' phrasing is mildly redundant but harmless.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when this should be used versus alternatives such as rws_load_module_from_file, rws_write_module, or whether the module must first be stopped/not executing. No prerequisites such as required mastership are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_write_fileC
Write a file to controller filesystem via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It merely says 'write a file', but does not specify overwrite behavior, permissions required, error handling, or side effects. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but it sacrifices informative content. It earns a mid score because it is not verbose, but it should include more details within a compact structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and parameter documentation, the description is woefully incomplete. An agent lacks critical information to correctly invoke the tool, such as parameter semantics and behavioral traits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no explanation for the two parameters ('path' and 'content'). The agent receives no guidance on expected formats, path conventions, or content encoding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('write') and resource ('file to controller filesystem via RWS'), making the basic purpose unambiguous. However, it does not differentiate from sibling tools like 'rws_write_module' or 'rws_write_variable', which could cause confusion for an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives (e.g., when to write a raw file vs. a module or variable), nor does it mention any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_write_ioC
Set an I/O signal value via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| signal | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'Set', but does not mention that setting I/O values may have physical effects, require specific permissions, or be irreversible. Critical context like side effects or error conditions is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one short sentence, but this comes at the expense of valuable information. It is front-loaded but lacks structure to convey necessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two required parameters, no output schema, and no annotations, the description is severely incomplete. It omits return values, error handling, prerequisites, and behavioral context, leaving the agent unable to use the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no meaning to the parameters. It does not explain what 'signal' (name format, path) or 'value' (range, allowed types) represent, forcing the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Set an I/O signal value via RWS' uses a specific verb (Set) and resource (I/O signal value), clearly distinguishing it from sibling tools like rws_read_io (reading) and rs_get_io_signals (listing). It is unambiguous and informative for the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as rws_write_variable or rs_write_config. There is no mention of prerequisites (e.g., mastership) or conditions under which this tool is appropriate, leaving the agent without decision-making information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_write_moduleC
Write RAPID module text via RWS (auto-mastership). Validates RAPID syntax before upload.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| task | Yes | ||
| module | Yes | ||
| skipValidation | No | Skip RAPID syntax validation (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two genuinely useful traits: mastership is acquired automatically and RAPID syntax is validated before upload (which explains the skipValidation parameter). It omits other important behavior for a write operation - whether an existing module is overwritten, whether the module must be unloaded first, and what controller state is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler; the mechanism and the validation step are stated immediately. It is arguably too terse rather than too long, and the shift from "write" to "upload" introduces a minor terminology wobble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive mutation tool with no annotations, no output schema, and 25% parameter coverage, so the description should explain overwrite semantics, error/validation-failure behavior, and return expectations. It covers none of these, leaving the agent under-informed before performing a controller write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% - only skipValidation has a description. The description implies that "code" holds RAPID module text and that validation applies to it, but says nothing about what "task" and "module" identify (task name? module name? must the module already exist?), so the three required parameters remain semantically undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Write RAPID module text via RWS") plus the mechanism, so the action is unambiguous. It does not differentiate itself from the near-identical sibling rs_write_module, leaving the agent to infer the difference between the rs_ and rws_ families.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no exclusions. With a sibling literally named rs_write_module, the absence of any routing rule (which API family to prefer, when validation matters) is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rws_write_variableC
Write a RAPID variable's live value via RWS
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| value | Yes | ||
| module | Yes | ||
| variable | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only indicates a write operation without disclosing behavioral traits such as whether the value is persistent, if mastership is required, or what happens if the variable doesn't exist. Since no annotations are provided, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it lacks useful detail. It is not structured with any highlights or breaks, making it minimally helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of writing a variable via RWS (requires task, module, variable name, and value), the description is severely incomplete. It omits critical context such as the need for mastership, the format of the value (e.g., data type), and potential errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has four required parameters with no descriptions, and the tool description does not clarify their meaning or expected formats. For example, 'value' could be a string representation of any type, but no hints are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (write a variable) and specifies the technology (via RWS). However, it does not explicitly differentiate from sibling tools like rs_write_variable, which may cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like rs_write_variable or rws_write_module. Prerequisites such as mastership or connection state are not mentioned.
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.
63 tool updates
v3.1.0- First observed
rs_check_collisions - First observed
rs_check_safety - First observed
rs_controller_status - First observed
rs_create_path - First observed
rs_create_target - First observed
rs_get_execution_errors - First observed
rs_get_io_signals - First observed
rs_get_modules - First observed
rs_get_path_targets - First observed
rs_get_paths - First observed
rs_get_position - First observed
rs_get_screenshot - First observed
rs_get_station - First observed
rs_get_station_objects - First observed
rs_get_tasks - First observed
rs_list_variables - First observed
rs_pause_simulation - First observed
rs_ping - First observed
rs_read_config - First observed
rs_read_io_signal - First observed
rs_read_module - First observed
rs_read_variable - First observed
rs_reset_simulation - First observed
rs_save_station - First observed
rs_set_sim_speed - First observed
rs_simulation_status - First observed
rs_start_simulation - First observed
rs_stop_simulation - First observed
rs_validate_rapid - First observed
rs_write_config - First observed
rs_write_io_signal - First observed
rs_write_module - First observed
rs_write_variable - First observed
rws_controller_status - First observed
rws_event_log - First observed
rws_execution_state - First observed
rws_get_io_signals - First observed
rws_get_modules - First observed
rws_get_position - First observed
rws_get_speed_override - First observed
rws_get_tasks - First observed
rws_list_files - First observed
rws_load_module_from_file - First observed
rws_load_program - First observed
rws_read_file - First observed
rws_read_io - First observed
rws_read_module - First observed
rws_read_variable - First observed
rws_release_mastership - First observed
rws_request_mastership - First observed
rws_reset_pp - First observed
rws_restart_controller - First observed
rws_save_program - First observed
rws_set_controller_url - First observed
rws_set_motors - First observed
rws_set_speed_override - First observed
rws_start_program - First observed
rws_stop_program - First observed
rws_unload_module - First observed
rws_write_file - First observed
rws_write_io - First observed
rws_write_module - First observed
rws_write_variable
TDQS
Scored across 63 tools
The set exposes two parallel interfaces (rs_* SDK and rws_* RWS) with many near-duplicate operations: get_modules, read_module, write_module, read/write_variable, get_position, I/O reads/writes, controller status, and event logs. The protocol qualifiers help somewhat, but an agent must still choose between closely overlapping tools, making misselection likely.
Tool names use a predictable snake_case convention with clear rs_/rws_ interface prefixes. There are minor deviations from strict verb_noun form, such as rs_controller_status and rws_execution_state, but the pattern is largely consistent and readable.
63 tools is far beyond a well-scoped MCP surface; the dual SDK/RWS split multiplies overlapping capabilities. This is an extreme count mismatch for practical agent selection, even for a broad robotics domain.
Coverage is broad: station inspection/save, RAPID module and variable access, simulation control, paths/targets, config, collision checks, I/O, filesystem operations, and mastership. Minor gaps exist, such as deleting paths/targets or managing tasks/routines, but core RobotStudio workflows are represented.
Maintenance
Related MCP Connectors
Start and manage Reason cloud coding agents, projects and sessions from any MCP client.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
An MCP server that provides access to Agility CMS. See https://mcp.agilitycms.com for more details.
MCP server for AI access to Swagger by SmartBear.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server for ABB RobotStudio and robot controllers, exposing 55 tools via SDK and RWS transports for simulation, programming, and monitoring.531MIT
- AlicenseAqualityDmaintenanceEnables driving Omniverse Kit apps (Isaac Sim, Isaac Lab) over MCP, allowing agents to control simulations, run Python, and call namespace-scoped tools via a single bridge.12MIT
- AlicenseCqualityAmaintenanceEnables MCP clients to inspect and modify SketchUp models through a local authenticated bridge, covering entity creation and editing, geometry, materials, tags, cameras, scenes, transactions, snapshots, and file or view export. It also offers an optional full SketchUp Ruby API execution channel and batch operations for furniture, architectural, and analysis tasks.371MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to watch and drive a running ResInsight, query reservoir simulation models, and render pictures and plots without touching the GUI.GPL 3.0