Skip to main content
Glama

Introduction

pktctl lets an AI agent build, configure and test networks in Cisco Packet Tracer the way a person would, but through a programmatic interface instead of the mouse. You describe the network you want; the agent places the devices, cables them, types the IOS configuration at each console, runs ping from the end hosts and reads the results back, all inside the Packet Tracer window you already have open.

It is a server for the Model Context Protocol (MCP), the open standard that AI clients such as Claude Code, Claude Desktop and Cursor use to call external tools. pktctl gives those clients 72 tools that cover Packet Tracer's logical and physical workspaces, simulation mode, end-device applications and activities, plus direct access to the complete IPC API for anything else.

pktctl talks to Packet Tracer through PTMP, the native protocol Packet Tracer offers to registered external applications. That choice shapes how it behaves:

  • Nothing to keep open inside Packet Tracer. There is no extension window and no polling bridge between the agent and the simulator; a single registration is enough.

  • Fast and precise. Calls round-trip in well under a millisecond, and call_ipc checks every argument against the official API before sending it.

  • Readable failures. Errors come back as typed messages the agent can act on (Device: IPC Cache entry), never as a modal dialog that freezes the application.

  • One self-contained binary. No runtime, interpreter or package manager is needed to run it. On Linux it uses the desktop's X11, Wayland and PipeWire libraries for window captures, which desktop distributions already ship.

pktctl is useful to students practicing CCNA labs, to instructors preparing and checking activities, and to anyone who wants to automate or document network scenarios in Packet Tracer.

An example

Asked for two sites joined by OSPF, with DHCP on each LAN and a web server at headquarters, an agent using pktctl placed and cabled the routers, switches and hosts, configured both routers, requested the DHCP leases and checked the result: OSPF adjacency in FULL state, the remote LAN in the routing table, and ping and traceroute from the branch to headquarters.

Related MCP server: Packet Tracer Visual MCP

Contents

Requirements

Requirement

Notes

Cisco Packet Tracer 9.0.1

Available at no cost from Cisco Networking Academy.

Rust 1.88 or newer

Only to build from source. Install it with rustup.

An MCP client

Claude Code, Claude Desktop, Cursor or any client that runs stdio MCP servers.

pktctl builds on Linux, macOS and Windows. Every live validation so far ran on macOS; the registration paths for the other systems are described in ExApp registration.

Installation

Installation takes five steps. Only the fourth one happens inside Packet Tracer, and it is done once.

1. Install the binary

Prebuilt. Each release carries archives for macOS 11 or newer (Apple Silicon and Intel), Linux with glibc 2.39 or newer (Ubuntu 24.04, Debian 13; x86_64 and ARM64) and Windows. Unpack the one for your system and put pktctl somewhere permanent, such as ~/.local/bin. To check an archive before running it:

shasum -a 256 -c SHA256SUMS --ignore-missing
gh attestation verify pktctl-*.tar.gz --repo TantiE100/pktctl

The attestation proves the archive was built by this repository's release workflow. macOS quarantines binaries downloaded with a browser; clear the flag with xattr -d com.apple.quarantine pktctl, or download with curl, which does not set it. The binaries are not notarized by Apple.

With cargo-binstall, the same prebuilt archive is fetched and installed in one step:

cargo binstall pktctl

From source. With Rust 1.88 or newer, from crates.io:

cargo install pktctl --locked

The development version on main: cargo install --git https://github.com/TantiE100/pktctl pktctl --locked.

Cargo builds pktctl and places it in ~/.cargo/bin/pktctl (%USERPROFILE%\.cargo\bin\pktctl.exe on Windows). To build from a clone instead, run make release; the binary is written to target/release/pktctl.

Either way, check it with pktctl --version.

2. Choose an app id and a secret

Packet Tracer identifies external applications by an id and authenticates them with a shared secret. Pick any reverse-domain id, such as dev.pktctl, and generate a random secret:

openssl rand -hex 24

Keep the secret private: it grants full control of Packet Tracer.

3. Add pktctl to your MCP client

claude mcp add pktctl --scope user \
  -e PKTCTL_APP_ID=dev.pktctl \
  -e PKTCTL_SECRET=your-random-secret \
  -- "$HOME/.cargo/bin/pktctl"

Edit claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows) and restart Claude Desktop:

{
  "mcpServers": {
    "pktctl": {
      "command": "/Users/you/.cargo/bin/pktctl",
      "env": {
        "PKTCTL_APP_ID": "dev.pktctl",
        "PKTCTL_SECRET": "your-random-secret"
      }
    }
  }
}

Most clients accept the same mcpServers block shown for Claude Desktop; in Cursor it goes in ~/.cursor/mcp.json. Use the absolute path to the binary, because clients do not always inherit your shell's PATH.

4. Register pktctl in Packet Tracer

  1. Ask the agent: "Run setup_exapp." pktctl writes the registration file ~/.config/pktctl/pktctl.pta.

  2. In Packet Tracer, open Extensions → IPC → Configure Apps, choose Add, select that file and confirm with Ok.

  3. Quit Packet Tracer normally once (File → Exit). Packet Tracer only saves its list of registered apps when it closes cleanly.

The complete procedure, including a manual alternative, is in ExApp registration.

5. Verify the connection

Ask the agent: "Check the pktctl status." A reply with connected: true, the Packet Tracer version and the device count means everything works. If not, the reply explains what to fix; see Troubleshooting.

What you can do

The tools are grouped by the job they do. A few example requests for each group:

Area

What pktctl handles

Try asking

Topology

Adding, renaming, moving and cabling devices, installing modules, notes and drawings on the canvas

"Add a 2911 router and two 2960 switches and cable them."

IOS

Running any command at a router or switch console and applying configuration blocks, with confirmations answered

"Configure OSPF area 0 on both routers and show the neighbors."

End devices

IPv4 and IPv6 addressing, DHCP, firewalls, Command Prompt, web browser, email, VPN and files

"Give the PCs addresses by DHCP and ping the server from each one."

Servers

DHCP pools, DNS records, web pages, FTP and email accounts

"Publish intranet.lab.local on the server and browse to it from PC1."

Simulation

Simulation mode, PDUs, stepping and the per-hop event list with Packet Tracer's explanations

"Send a ping from PC1 to PC4 in simulation and explain each hop."

Physical workspace

Cities, buildings, closets, racks and where each device sits

"Put the switches in a rack in the wiring closet."

Wireless

Access point security and client association

"Secure the access point with WPA2 and connect the laptops."

Activities

.pka instructions, progress, score and connectivity checks

"How much of this activity is complete, and what is missing?"

Everything else

The full IPC API: 346 classes and 3111 methods, searchable and callable

"Find the IPC method that reads the ARP table of R1."

The complete list of the 72 tools is in docs/tools.md, and docs/coverage.md records how each area was validated.

How it works

AI client  ──MCP over stdio──▶  pktctl  ──PTMP over TCP 39000──▶  Packet Tracer

The MCP client starts pktctl as a child process. pktctl authenticates to Packet Tracer as a registered external application and translates each tool call into one or more IPC calls. When a tool needs something the IPC API does not offer, such as buildings or furniture in the physical workspace, pktctl edits the saved .pkt file and reopens it. The design is described in docs/architecture.md and the wire format in docs/reference/ptmp.md.

Configuration

pktctl reads its settings from environment variables:

Variable

Required

Default

Purpose

PKTCTL_APP_ID

yes

App id registered in Packet Tracer.

PKTCTL_SECRET

yes

Shared secret registered in Packet Tracer.

PKTCTL_ADDR

no

ports 39000 to 39009 on this computer

Address of Packet Tracer's IPC listener. Without it, pktctl finds Packet Tracer on the first of those ports where it accepts the credentials; with it, pktctl uses that address only.

PKTCTL_CALL_TIMEOUT_SECS

no

30

Time limit for a single IPC call.

PKTCTL_PT_HOME

no

usual install folders

Packet Tracer installation, used by setup_exapp.

PKTCTL_SETUP_DIR

no

~/.config/pktctl

Where setup_exapp writes the registration file.

PKTCTL_LOG

no

warn

Log level, written to stderr.

Troubleshooting

What status reports

Cause and fix

Packet Tracer is not reachable

Packet Tracer is closed, or it listens outside ports 39000 to 39009. When 39000 is still taken, for example right after a crash, Packet Tracer moves to 39001; pktctl follows it on its own, and status shows the port in addr. For any other port, check Extensions → IPC → Options and set PKTCTL_ADDR.

rejected app id ...

pktctl is not registered, or PKTCTL_SECRET differs from the registered key. Run setup_exapp, register the new file and quit Packet Tracer normally once.

does not have the necessary privilege

pktctl was registered with an older template. Register the file setup_exapp creates again.

Documentation

The docs/ folder holds the architecture, the feature references, the PTMP wire reference and the development guide. Releases are listed in CHANGELOG.md.

Contributing

Issues and pull requests are welcome. docs/development.md covers the commands, the test layers, the live test suite against a running Packet Tracer and the branch workflow. make check runs the same formatting, lint and test steps as CI.

License

pktctl is released under the MIT License.

Cisco, Packet Tracer and Cisco IOS are trademarks of Cisco Systems, Inc. This project is an independent client and is neither affiliated with nor endorsed by Cisco. It ships no Packet Tracer code, files or documentation: you need your own installation of Packet Tracer for it to talk to anything.

Available Tools

72 tools
activity_instructionsB
Read-only

Read a page of the open activity's instructions, as text and as HTML.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number starting at 1. Defaults to 1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlYesThe page as Packet Tracer stores it, with embedded images replaced by `data:,image-removed` so they do not flood the reply.
pageYes
textYesThe page as readable text.
pagesYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that results come back in two formats (text and HTML), which is modestly useful, but says nothing about pagination behavior, page-size, out-of-range pages, or failure modes.

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

Conciseness5/5

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

A single efficient sentence with the resource and output format front-loaded and no filler. Appropriate size for a one-parameter read tool.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the one parameter is fully documented. The main remaining gap is the absence of any usage condition (e.g., an activity must be open), which keeps it short of a 5.

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

Parameters3/5

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

Schema description coverage is 100% and the single 'page' parameter is already documented in the schema with its default. The description only hints at pagination via 'a page of'; it adds no syntax or edge-case detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (Read) and resource (the open activity's instructions) and notes the dual text/HTML representation. It does not name or differentiate against a sibling, but the resource is distinctive enough to be unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The phrase 'the open activity's instructions' implies an activity must already be open, but this is left to inference rather than stated.

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

activity_statusA
Read-only

Progress of the open activity (.pka): percentage complete, score, assessment items and points, instruction pages, time elapsed or left. For a plain network it only says it is not an activity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileYes
itemsNoAssessment items (the Check Results tree).
pointsNoAssessment points.
is_activityYes
seconds_leftNoSeconds left when the activity has a countdown timer.
score_percentNo
seconds_elapsedNo
percent_completeNo
instruction_pagesNo
password_confirmedNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds one behavioral edge case — that on a non-activity network it returns an 'is not an activity' result rather than failing — which is genuinely useful, though it does not cover failure modes or empty-state behavior 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.

Conciseness4/5

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

Two tight sentences, front-loaded with the primary payload (activity progress) followed by the caveat. Every clause carries information; no filler or repetition of the tool name.

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

Completeness4/5

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

With an output schema present and read-only semantics carried by annotations, the description need not detail return shapes. For a zero-parameter, read-only query tool it is effectively complete, missing only differentiation from the check_activity sibling.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to document. Baseline of 4 applies; the description's listing of returned fields is orthogonal to parameters and does not mislead.

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

Purpose4/5

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

Names a specific resource (the open .pka activity) and enumerates what the tool reports: percentage complete, score, assessment items/points, instruction pages, time elapsed or left. This is a concrete verb+resource statement. It does not, however, distinguish itself from the sibling check_activity, which appears to overlap.

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

Usage Guidelines3/5

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

The clause 'For a plain network it only says it is not an activity' implies when the tool is pointless, giving implicit usage guidance. But it never states when to prefer this over check_activity or status, nor any prerequisites, so routing is left to inference.

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

add_deviceA

Add a device to the logical workspace by model name (see list_models), optionally naming it and placing it at x/y. Routers and switches boot immediately. Returns the device as Packet Tracer now shows it.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNoCanvas x of the device center. Give both x and y, or neither to use the next free grid slot.
yNoCanvas y of the device center.
nameNoName to give the device. Packet Tracer picks one (Router0, PC1, ...) when omitted.
modelYesModel name as listed by `list_models`, for example `2911`, `2960-24TT`, `PC-PT`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
xYes
yYes
kindYes
nameYes
modelYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare it is a non-readonly, non-destructive, closed-world write. The description adds genuine behavioral context beyond that: 'Routers and switches boot immediately' tells the agent the device becomes active on add, which the annotations do not convey. It stops short of stating auth needs or whether a failed add is reversible.

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

Conciseness5/5

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

Three tight sentences with the core action front-loaded, followed by the boot behavior and return note. No filler; every sentence carries information the agent needs.

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

Completeness4/5

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

Given an output schema exists, the description need not detail return values, and it appropriately just notes the device is returned as shown. Combined with the boot-behavior note and full schema coverage, it is nearly complete; only cross-tool routing (remove_device, arrange_devices) is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (model, name, x, y) are already documented in the schema. The description restates the model-name source and optional naming/placement but adds no new syntax or format detail beyond the schema, matching the baseline for full coverage.

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

Purpose5/5

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

States a specific verb (Add) and resource (a device to the logical workspace) with the scope constraint that it is selected by model name. It clearly distinguishes itself from siblings like list_models and list_devices, so an agent can identify the tool without opening the schema.

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

Usage Guidelines4/5

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

It routes the agent to list_models for valid model names and explains the x/y pairing (both or neither). However it gives no exclusions or guidance on when to prefer add_module, connect, or power_cycle_all instead, so usage is clear-context but not fully comparative.

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

add_locationA

Create a place in the physical workspace: a city, a building, a wiring_closet, or furniture to arrange devices on (rack, table, shelf, cable_pegboard, container), with an optional name and position. Cities and closets use Packet Tracer's own buttons; the rest are written into the network file and come back with the temporary copy Packet Tracer now has open, so save with save_network to keep them.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesWhat to create: `city`, `wiring_closet`, `building`, `rack`, `table`, `shelf`, `cable_pegboard` or `container`. Packet Tracer's own API only creates cities and wiring closets; the rest are written into the network file.
nameNoName for the new location. Packet Tracer's default name is used when omitted.
insideNoPath of the city or building to put a wiring closet in, for example `Home City/Corporate Office`. Omit for Intercity. Cities always go in Intercity.
x_percentNoWhere to put it inside its parent, as a percentage of the room's width and height.
y_percentNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileNoThe temporary copy Packet Tracer now has open, when the change went through the network file. Your own file is untouched: save with `save_network` and a path to keep the change there.
locationYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare non-read-only, non-destructive, closed-world. The description adds the critical behavior that cities and wiring closets are created via Packet Tracer's own buttons while other kinds are written into the network file into a temporary copy that requires save_network to persist — exactly the kind of non-obvious side effect an agent needs before calling.

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

Conciseness4/5

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

Front-loaded verb and resource with the kind list immediately after, followed by the persistence caveat. Two sentences with little waste, though the second sentence is dense and could be split for scannability.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and annotations cover the safety profile. The description supplies the unusual persistence behavior and kind semantics; the only gap is the absence of sibling routing or failure conditions for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 80%, so the per-parameter docs already carry most meaning; the description only paraphrases 'an optional name and position'. It adds no syntax or format detail (e.g. inside path form, percent semantics) beyond what the schema already provides.

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

Purpose5/5

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

States a specific verb and resource ('Create a place in the physical workspace') and enumerates the exact kinds it accepts, so an agent can immediately tell this apart from siblings like add_device or remove_location. The scope (locations, not devices or links) is unambiguous.

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

Usage Guidelines3/5

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

It gives contextual guidance ('save with save_network to keep them') which is real usage advice, but never states when to choose this over move_to_location, rename_location, or remove_location, nor any prerequisites. Usage is implied by the enumerated kinds rather than explicitly framed.

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

add_moduleA
Destructive

Install a module (for example HWIC-2T for serial ports) in an empty slot. The device is powered off, the module inserted and the device powered back on, exactly like real hardware, so unsaved configuration is lost. Returns the ports the module added.

ParametersJSON Schema
NameRequiredDescriptionDefault
slotYesEmpty slot path from `list_slots`, for example `0/1`.
deviceYesRouter or switch name.
moduleYesModule model supported by the device, for example `HWIC-2T` or `NIM-2T`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slotYes
deviceYes
moduleYes
cut_linksNo
ports_addedYes
ports_removedYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, but the description goes further by spelling out the exact mechanism and consequence: power off, module inserted, power on, 'so unsaved configuration is lost.' That is the kind of concrete side-effect detail the annotation cannot convey. It stops short of mentioning permissions or failure modes.

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

Conciseness5/5

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

Three tight clauses: what it does, the hardware-emulation side effect, and the return value. Front-loaded with the action and free of filler.

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

Completeness4/5

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

With annotations covering the safety profile and an output schema covering the returned ports, the description adds the essential prerequisite (empty slot) and the destructive consequence (config loss). Complete for the call decision, though it doesn't address whether prior device configuration must be saved first or any dependency on the device already existing.

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

Parameters3/5

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

Schema coverage is 100% and the schema already provides examples for both module and slot, so the schema does the heavy lifting. The description only adds the 'empty slot' constraint, a marginal gain over structured data.

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

Purpose5/5

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

States a specific verb (install) and resource (module) with a concrete example model (HWIC-2T for serial ports) and target context (empty slot). This clearly distinguishes it from the sibling remove_module without needing to open either schema.

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

Usage Guidelines4/5

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

The prerequisite that the slot must be empty and the fact that the device is power-cycled give clear usage context, and the schema points to list_slots for valid slot paths. There is no explicit when-not-to-use or named alternative, but the operating conditions are unambiguous.

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

add_noteA

Write a text note on the logical canvas, for example to label a subnet or a VLAN. Returns the note with its id.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesCanvas x coordinate of the note.
yYesCanvas y coordinate of the note.
textYesText to show, for example `LAN 192.168.10.0/24 (VLAN 10)`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
xYes
yYes
idYes
textYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the agent knows this is a non-destructive local write. The description adds that the note is returned with its id, which is useful confirmation of the mutation's result. It does not state whether placement collides with existing notes or what happens on duplicate coordinates.

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

Conciseness5/5

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

Two short sentences with no filler; the action and scope come first, the return behavior second. Every clause earns its place.

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

Completeness4/5

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

With full schema coverage, an output schema for the return value, and annotations covering the safety profile, the description supplies what the agent needs to call the tool. Only minor gaps remain, such as how notes interact with existing canvas content.

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

Parameters3/5

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

Schema description coverage is 100%, so x, y, and text are already documented in the schema, including a concrete example for text. The description adds no parameter syntax or constraints beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource ('Write a text note on the logical canvas') and clarifies the target surface is the canvas rather than e.g. a device config. It doesn't explicitly differentiate itself from siblings like remove_note or list_notes, but the action is unambiguous.

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

Usage Guidelines3/5

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

'for example to label a subnet or a VLAN' implies the intended use case (annotating/labeling the topology). There is no explicit when-not guidance or naming of alternatives such as list_notes for reading notes back.

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

add_pduA

Send a simple PDU (ICMP echo) from one device to another, like the Add Simple PDU button. In Realtime mode it goes at once; in Simulation mode it waits for simulation_step.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesDevice the ping starts from, for example `PC1`.
destinationYesDevice it is sent to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes`realtime`: sent at once. `simulation`: waits for `simulation_step`.
sourceYes
destinationYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds non-obvious behavioral context the annotations cannot convey: the mode-dependent execution timing (immediate vs. deferred until simulation_step). It does not say what state the PDU changes or how it appears in the simulation.

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

Conciseness5/5

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

Two tight sentences, no filler, with the core action front-loaded before the mode-dependent caveat. Every clause carries information an agent needs.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the mode-specific timing behavior is covered. The only remaining gap is that nothing states the effect (does it create a persistent object in the workspace?) or whether source/destination must be existing devices.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (source, destination) are already documented with examples in the schema. The description conveys the 'one device to another' relationship but adds no format, naming, or edge-case detail beyond what the schema provides. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource — 'Send a simple PDU (ICMP echo) from one device to another' — and anchors it to the familiar 'Add Simple PDU' UI button, so the agent understands exactly which capability this is. It does not name or contrast any sibling tool, so it stops short of the 5 tier.

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

Usage Guidelines4/5

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

Explicitly describes the two usage contexts: it fires immediately in Realtime mode and defers to simulation_step in Simulation mode, which is genuine when-to-use guidance tied to sibling tools. It lacks any when-not-to-use or prerequisite statements.

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

add_server_userC

Add an FTP account (with permissions such as RWDNL) or an email account to a server.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYes
domainNoEmail: the server's mail domain, for example `gamc.bo`.
serviceYes
passwordYes
usernameYes
permissionsNoFTP permissions: any of R(ead) W(rite) D(elete) N (rename) L(ist). Defaults to `RWDNL`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deviceYes
serviceYes
usernameYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds essentially nothing beyond that: no mention of required permissions, idempotency, what happens on duplicate usernames, 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.

Conciseness4/5

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

A single efficient sentence with the verb and both variants front-loaded. Nothing is wasted, though there is very little content to begin with.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. However, for a six-parameter mutation tool with low schema coverage, the description leaves the required parameters and the semantics of the two service modes under-specified.

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

Parameters3/5

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

Schema coverage is only 33%, so the description needs to compensate, and it partially does: the FTP-vs-email branching explains why 'permissions' matters only for FTP and why 'domain' matters only for email, which the raw schema does not express. It still leaves 'device', 'username', and 'password' entirely unexplained.

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

Purpose4/5

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

The description states a specific verb ('Add') and two concrete resources ('FTP account', 'email account') plus the target ('to a server'). It is immediately clear what the tool does, though it gives no hint of how it differs from nearby tools like set_server_service or configure_email.

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

Usage Guidelines2/5

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

There is no when-to-use, when-not-to-use, or alternative-tool guidance. The agent must infer from the sibling list alone whether add_server_user or set_server_service is appropriate.

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

arrange_devicesA

Lay devices out inside a room, building, rack or table of the physical workspace, moving in the ones that are somewhere else. Positions are percentages of the room, which is how Packet Tracer draws them: leave them out for an even grid, set columns and margin_percent to shape it, or give exact spots like [[20, 30], [60, 30]].

ParametersJSON Schema
NameRequiredDescriptionDefault
spotsNoExact spots instead of a grid, as percentages of the room: `[[20, 30], [60, 30]]`, one per device.
columnsNoHow many per row. Defaults to the squarish grid that fits them.
devicesNoDevices to place, in order. Omit to arrange everything already in that location.
locationYesPath of the room, building, rack or table to tidy up, as listed by `list_locations`.
margin_percentNoFree space left around the grid, as a percentage of the room. Defaults to 12.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileNoThe temporary copy Packet Tracer has open when the moves went through the network file, which is what furniture needs; save with `save_network` to keep it.
devicesYes
locationYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false with destructiveHint=false, so the agent knows this mutates layout without destroying anything. The description adds valuable context beyond that: devices located elsewhere are pulled in, and coordinates are percentages as drawn by Packet Tracer, both of which shape expectations about 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.

Conciseness4/5

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

A dense but front-loaded passage: the action and target come first, then the positioning modes. No filler sentences, though it is long enough that a shorter split would aid scanning.

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

Completeness5/5

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

An output schema exists so return values need not be described, and the safety profile is covered by annotations. The description covers the mutation's side effect (pulling devices from elsewhere), the required location path source (`list_locations`), and the coordinate model – nothing essential to correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds relational meaning the schema lacks – that `columns` and `margin_percent` jointly shape the grid and are only relevant when `spots` is omitted. It also reinforces the percentage semantics of `spots`, which the schema states per-field but not globally.

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

Purpose5/5

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

States a specific verb and resource: 'Lay devices out inside a room, building, rack or table', with the added scope 'moving in the ones that are somewhere else'. This clearly separates it from single-device siblings like move_device and move_to_location.

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

Usage Guidelines4/5

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

The description lays out three concrete modes of use – omit positions for an even grid, set `columns`/`margin_percent` to shape it, or supply exact `spots` – which tells the agent how to pick a strategy. It does not explicitly say when to prefer this over move_device or move_to_location, so it falls short of full when/when-not guidance.

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

browse_webA
Read-only

Open a URL in the Web Browser of a PC, laptop or server, like typing it and pressing Go, and return the page Packet Tracer served: its status (ok, timeout, host_not_found, ...), the server's address, the HTML and the text. Names are resolved through the host's DNS server.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesAddress as typed in the browser, for example `http://www.gamc.bo` or `https://192.168.10.10/index.html`. `http://` is added when missing.
deviceYesPC, laptop or server whose Web Browser opens the page.
timeout_secsNoSeconds to wait for the page. Defaults to 30, maximum 300.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
htmlYes
textYesThe page as readable text.
deviceYes
serverNoThe address the name resolved to, when it did.
statusYes`ok`, `not_found`, `timeout`, `host_not_found`, `dns_server_not_found`, ...

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive and openWorldHint=false; the description reinforces this by explaining that URL names resolve through the host's own simulated DNS server, which clarifies why the operation is not truly open-world. It also surfaces the status vocabulary (ok, timeout, host_not_found) and the default/max timeout, adding context beyond the annotations.

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

Conciseness4/5

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

A single dense sentence with the action and return payload front-loaded; nothing is wasted, though it is somewhat long and the DNS clause could be trimmed.

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

Completeness4/5

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

An output schema exists so return-value explanation is largely redundant, yet the description still names the key response fields and error statuses, which is helpful. For a read-only browser-simulation tool the definition is essentially complete.

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

Parameters3/5

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

Schema description coverage is 100%, so all three params (url, device, timeout_secs) are already documented. The description adds only marginal meaning (DNS resolution, status names) and no param syntax beyond what the schema states, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb (open), resource (URL in a device's Web Browser) and explicitly enumerates the return payload (status, server address, HTML, text). This clearly separates it from siblings like screenshot, run_host_command, or set_web_page.

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

Usage Guidelines3/5

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

Usage is implied by the 'like typing it and pressing Go' framing and the DNS resolution note, but there is no explicit when-to-use vs. when-not, and no named alternatives among siblings (e.g. run_host_command or screenshot for other page inspection paths).

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

call_ipcA
Destructive

Call any Packet Tracer IPC method: start at a root or an object uuid and chain steps, like network -> getDevice("R1") -> getPower(). Every step is checked against the official API before anything is sent, with exact argument types; objects come back as a class and uuid you can start the next call from. Prefer the dedicated tools when one fits; this reaches everything else, including changes, so read describe_ipc first.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesWhere the call starts: a root (`network`, `appWindow`, `simulation`, `options`, `hardwareFactory`, `ipcManager`, `multiUserManager`, `userAppManager`, `commandLog`, `systemFileManager`) or the uuid of an object returned by an earlier call.
stepsNoMethods to call one after another, each on the object the previous one returned.

Output Schema

ParametersJSON Schema
NameRequiredDescription
callYesThe call as resolved, for example `network.getDevice("R1").getPower()`.
valueYesThe value. Objects come back as `{ "class", "uuid" }`, enums as `{ "name", "value" }`.
returnsYesDeclared return type of the last method.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=true; the description reinforces this with 'including changes', which the agent needs to know before invoking a mutation path. It also adds behavior beyond the annotations: every step is validated against the official API before anything is sent, argument types are exacted, and returned objects carry a class and uuid usable in the next call. It stops short of describing error/partial-failure behavior in a multi-step chain, which is the one real remaining gap.

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

Conciseness4/5

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

Front-loaded with the core action, then chaining, then validation, then the routing rule — a sensible order with no filler. It is dense (long clauses, backtick examples) but every clause carries information; only the parenthetical example chain could be trimmed.

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

Completeness4/5

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

For a low-parameter but high-power escape hatch, the definition covers the prerequisite (describe_ipc), the safety posture (reaches changes), and the round-trip object contract. An output schema exists, so return values need no explanation, and the two nested-object parameters are schema-documented. Partial-failure semantics in a chained call are the only unaddressed area.

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

Parameters4/5

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

Schema coverage is 100% and the `from`/`steps` fields are well documented in-schema, so baseline would be 3. The description adds genuine meaning on top: the chaining contract ('each on the object the previous one returned'), the root-vs-uuid distinction for the start point, and the class+uuid round-trip that makes multi-step calls possible. It doesn't restate the argument-encoding rules, which the schema already covers.

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

Purpose5/5

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

States a specific verb+resource ('Call any Packet Tracer IPC method'), explains the chaining model with a concrete example (`network` -> getDevice("R1") -> getPower()), and explicitly positions itself against the many dedicated sibling tools ('Prefer the dedicated tools when one fits'). An agent can tell exactly what this is and when it is the right reach.

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

Usage Guidelines5/5

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

Gives an explicit routing rule ('Prefer the dedicated tools when one fits; this reaches everything else, including changes') plus a prerequisite ('read describe_ipc first'). Both the when-to-use and the when-to-use-something-else conditions are stated, not inferred.

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

check_activityB

Run the open activity's connectivity tests and return them with the current completion and score, like Check Results.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
connectivityYes
connectivity_resultsYesOne line per connectivity test, as Packet Tracer reports it.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false with destructiveHint=false, and 'Run ... tests' is consistent with a non-read-only, non-destructive operation, so no contradiction. The description adds that it returns current completion and score, but omits whether running the tests mutates simulation state or has prerequisites.

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

Conciseness4/5

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

One front-loaded sentence with the action and its outcome stated immediately; no padding. The only soft spot is the trailing UI analogy, which is mildly wasteful for an agent reader.

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

Completeness3/5

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

A zero-parameter tool with an output schema and annotations needs little, and the description covers the action and the returned values. However, in an activity/grading context it should state prerequisites (activity open/unlocked) or how the result relates to activity_status, which it leaves out.

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

Parameters4/5

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

The tool takes no parameters, so per the rubric baseline is 4. The description correctly never invents parameter detail, and the empty schema leaves nothing to document.

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

Purpose4/5

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

Specific verb (Run) plus resource (the open activity's connectivity tests) with a clear statement of what is returned (completion and score), which separates it from status-style siblings like activity_status. The trailing 'like Check Results' is a UI reference that adds little for an agent but doesn't obscure the purpose.

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

Usage Guidelines2/5

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

No explicit when-to-use guidance. With siblings such as activity_status, activity_instructions, and unlock_activity, the description never says whether this is a graded check, whether the activity must be open/unlocked first, or how it differs from simply reading activity_status.

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

configure_access_pointA

Set the SSID, security (open, wep, wpa_psk, wpa2_psk), key and SSID broadcast of an access point or wireless router. Clients keep their current association until connect_wireless reconnects them.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoPassphrase for WPA (8-63 characters) or WEP key (10 or 26 hex digits).
ssidYes
deviceYesAccess point or wireless router name.
securityNoopen
broadcast_ssidNoAdvertise the SSID. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ssidYes
deviceYes
securityNo
broadcast_ssidYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the description's key added value is that clients retain their existing association until connect_wireless reconnects them — a genuinely useful, non-obvious side effect. It could go further on defaults/permissions, but this is real context beyond the annotations.

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

Conciseness5/5

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

Two tight sentences with zero filler; the action and its fields are front-loaded, and the follow-up caveat about client reconnection comes second. Every clause earns its place.

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

Completeness4/5

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

With five parameters, an output schema present, and annotations covering the safety profile, the description supplies the essentials: what gets changed and the delayed effect on clients. The main omission is that the security default of 'open' is never flagged as significant, which an agent configuring wireless security arguably needs.

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

Parameters3/5

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

Schema description coverage is 60% (key and broadcast_ssid are documented; ssid, device, security are not), so the schema carries much of the load. The description enumerates the security values and names 'SSID broadcast', which maps to parameters, but adds no format or constraint detail beyond what the schema already encodes.

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

Purpose4/5

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

States a specific verb (Set) plus the exact resource fields (SSID, security, key, SSID broadcast) on an access point/wireless router, so the agent knows precisely what is configured. It is clear but does not explicitly name a sibling to distinguish itself from, e.g., connect_wireless, other than a passing mention in the follow-up sentence.

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

Usage Guidelines3/5

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

The second sentence implies the workflow — configure here, then use connect_wireless to actually reconnect clients — which effectively tells the agent when this tool's effect materializes. However it never states prerequisites, when not to use it, or what alternatives exist for the same goal, so guidance remains implied rather than explicit.

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

configure_dhcp_serverB

Configure the DHCP service of a server: switch it on and create or update pools (gateway, DNS, start address, mask, maximum users). Existing pools with the same name are updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort the DHCP service runs on. Defaults to `FastEthernet0`.
poolsNo
deviceYes
enabledNoSwitch the service on or off. Defaults to on.

Output Schema

ParametersJSON Schema
NameRequiredDescription
portYes
poolsYes
deviceYes
enabledYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare it is a non-read-only, non-destructive, closed-world write. The description usefully adds the idempotency semantics ('existing pools with the same name are updated') and the default-on behavior, but says nothing about whether unspecified pools are preserved or removed, or whether the service restarts.

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

Conciseness4/5

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

Two sentences, front-loaded with the action and then the pool fields and update rule. No filler, though the parenthetical field list is a slightly dense inventory.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and annotations cover safety. However, for a mutation tool whose schema leaves `device`/`port` undocumented, the description should clarify which device identifier is expected and the port default to be fully actionable.

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

Parameters3/5

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

Schema coverage is 50%; the pool fields are well documented but `device` and `port` have no schema description, and the description only loosely covers `enabled` ('switch it on') without mentioning port or device naming. It compensates partially but leaves gaps.

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

Purpose4/5

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

States a specific verb (configure) and resource (DHCP service of a server), and enumerates the sub-actions (enable, create/update pools). It doesn't distinguish itself from the sibling configure_dns_server, 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.

Usage Guidelines2/5

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

No guidance on when to use this versus configure_dns_server, set_server_service, or list_server_services, and no prerequisites or exclusions stated. The agent must infer the context from the name alone.

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

configure_dns_serverB

Switch a server's DNS service on and add A, CNAME or NS records.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYes
enabledNoSwitch the service on or off. Defaults to on.
recordsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
deviceYes
enabledYes
recordsYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description usefully adds the non-obvious dual behavior — it both toggles the DNS service and creates records in one call — but says nothing about whether existing records are merged or replaced, error behavior on duplicate names, or permission requirements.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the core action and resource come first and every clause earns its place.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, but for a three-parameter mutation tool with low schema coverage the description leaves meaningful gaps: the role of `device`, the off-switch semantics of `enabled`, and how added records interact with existing DNS state.

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

Parameters3/5

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

Schema coverage is only 33%, so the description must carry more weight than it does. It clarifies the record types (A, CNAME, NS) matching the enum, but says nothing about the required `device` parameter or that `enabled` can be set to false to switch the service off (description only says 'switch on').

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

Purpose4/5

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

The description names specific verbs (switch on, add) and concrete resources (DNS service, A/CNAME/NS records), so an agent can tell it apart from siblings like configure_dhcp_server. It does not, however, distinguish itself explicitly from set_server_service or configure_host, which operate in the same space.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the very similar set_server_service or configure_dhcp_server siblings, and no stated prerequisites (e.g., whether the device must already exist or the service must be installed). Usage is only implied by the name.

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

configure_emailB

Set up the Email app of a PC, laptop or server: display name, address, user name, password and the incoming (POP3) and outgoing (SMTP) servers. Returns the account as Packet Tracer now has it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesYour Name, for example `Ana`.
emailYesEmail Address, for example `ana@gamc.bo`.
deviceYesPC, laptop or server whose Email app to set up.
passwordYes
usernameYesUser Name on the mail server, usually the part before `@`.
incoming_serverYesIncoming Mail Server (POP3): address or name.
outgoing_serverYesOutgoing Mail Server (SMTP): address or name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
emailYes
deviceYes
usernameYes
incoming_serverYes
outgoing_serverYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so safety and scope are already covered. The description adds only the return-semantics note ('Returns the account as Packet Tracer now has it'), which suggests the operation is idempotent/reflective, but it says nothing about overwriting an existing account or failure modes.

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

Conciseness4/5

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

Two sentences, front-loaded with the action and the configured fields; the parenthetical POP3/SMTP glosses are genuinely useful. Slightly list-heavy but nothing is wasted.

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

Completeness4/5

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

With an output schema present the description need not explain return values, and annotations carry the safety profile, so what remains — what gets configured and where — is covered. The only gap is the absence of any lifecycle context (setup-before-send, overwriting an existing account).

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

Parameters3/5

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

Schema description coverage is 86%, so the schema already documents nearly every field with examples. The description restates the same field list (display name, address, user name, password, POP3/SMTP servers) and adds no format, ordering, or default information beyond it.

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

Purpose4/5

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

States a specific verb ('Set up') and resource ('the Email app of a PC, laptop or server') and enumerates exactly which settings are configured. An agent can distinguish this from send_email/receive_email by the setup verb, though the description never names a sibling to sharpen the contrast.

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

Usage Guidelines2/5

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

No explicit when-to-use, prerequisites, or alternative guidance. It never says, for example, that this must run before send_email/receive_email will work, or how it relates to add_server_user and set_server_service, all of which sit alongside it in the sibling list.

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

configure_hostA

Set the IPv4 configuration of a PC, laptop or server: either DHCP, or a static ip and mask with optional gateway and DNS. Catches classic mistakes (invalid mask, host address equal to the network or broadcast, gateway outside the subnet) before touching Packet Tracer.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoStatic IPv4 address, for example `192.168.10.10`. Required unless `dhcp` is true.
dnsNoDNS server address.
dhcpNoGet the address from a DHCP server instead of setting it statically.
maskNoSubnet mask, for example `255.255.255.0`. Required unless `dhcp` is true.
portNoNetwork port to configure. Defaults to `FastEthernet0`.
deviceYesPC, laptop or server name.
gatewayNoDefault gateway; must be inside the host's subnet.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ipNo
dnsNo
dhcpYes
maskNo
portYes
deviceYes
gatewayNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing pre-flight validation behavior (invalid mask, host equals network/broadcast, gateway outside subnet) that fires before the simulator is touched. It doesn't state idempotency or what an invalid input returns, keeping it short of a 5.

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

Conciseness5/5

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

Two sentences, no filler, with the primary action and its two modes front-loaded and the validation guarantee as supporting detail. Every clause earns its place.

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

Completeness4/5

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

An output schema exists and annotations cover the safety profile, so return values and read/write nature need no explanation here. The description covers both modes and the validation contract; the only minor omission is the port parameter and its FastEthernet0 default, which lives only in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented, including the 'required unless dhcp is true' conditions and the gateway-in-subnet constraint. The description only restates that ip/mask are needed for static mode and gateway/DNS are optional, adding little beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb (set) plus resource (IPv4 configuration) and scopes it to PC/laptop/server. The word 'IPv4' cleanly separates it from the sibling configure_host_ipv6, and the two operating modes (DHCP or static) are stated up front.

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

Usage Guidelines4/5

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

Clearly frames the usage context: choose DHCP or static ip/mask with optional gateway and DNS. It does not, however, name when to prefer this over related siblings such as configure_host_ipv6 or configure_ios, so routing is left partly to inference.

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

configure_host_ipv6A

Set the IPv6 configuration of a PC, laptop or server, like the IPv6 part of IP Configuration: static with an address such as 2001:db8:10::20/64, auto for SLAAC, or off; optional gateway (usually the router's link-local fe80::1) and DNS. Returns the addresses Packet Tracer now has on the port.

ParametersJSON Schema
NameRequiredDescriptionDefault
dnsNoIPv6 DNS server.
modeNo`static` (default), `auto` for SLAAC, or `off`.static
portNoNetwork port to configure. Defaults to `FastEthernet0`.
deviceYesPC, laptop or server name.
addressNoStatic address with its prefix length, for example `2001:db8:10::20/64`.
gatewayNoDefault gateway, usually the router's link-local address such as `fe80::1`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dnsNo
modeYes
portYes
deviceYes
gatewayNo
addressesYesAddresses on the port as `address/prefix`, read back from Packet Tracer.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, closed-world mutation, so the description is not required to restate safety. It does add real behavioral value beyond the annotations: it discloses the post-condition (returns the addresses Packet Tracer now has on the port) and clarifies that `off` simply switches IPv6 off.

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

Conciseness4/5

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

A compact, front-loaded passage that leads with the verb and resource and then enumerates the meaningful modes. It is dense but every clause (modes, gateway, DNS, return value) carries information; only the redundant address/gateway examples are slightly wasteful.

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

Completeness4/5

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

With annotations, full schema coverage, and an output schema covering return values, the description covers what an agent needs. Minor gaps remain: no note on prerequisites such as device power state or whether the change is persistent, and the default port is only in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (including the mode oneOf meanings and the FastEthernet0 default) is already documented structurally. The description's examples (2001:db8:10::20/64, fe80::1) duplicate the schema text rather than extending it, which is the baseline-3 case.

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

Purpose5/5

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

States a specific verb (Set) plus a precise resource and scope (IPv6 configuration of a PC, laptop or server), and anchors it to the familiar IP Configuration UI. The 'IPv6 part' phrasing implicitly separates it from the broader configure_host and configure_ios siblings, so an agent can distinguish it without opening schemas.

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

Usage Guidelines3/5

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

Usage is implied by the scope statement (host-side IPv6 addressing), and the mode examples hint at scenarios, but there is no explicit when-to-use guidance or contrast with alternatives such as configure_host, configure_ios, or configure_access_point. Nothing tells the agent when NOT to reach for this tool.

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

configure_iosA
Destructive

Apply a block of IOS configuration commands to a router or switch, as if typed after configure terminal: the first command enters global configuration and the rest follow the prompt, so interface ... sub-modes work. Stops at the first command IOS rejects, always leaves configuration mode, and runs write memory when save is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNoRun `write memory` afterwards so the configuration survives a reload.
deviceYesRouter or switch name.
commandsYesConfiguration commands in order, for example `hostname R1`, `interface GigabitEthernet0/0`, `ip address 10.0.0.1 255.255.255.0`, `no shutdown`. A leading `enable` or `configure terminal` and a trailing `end` are handled for you.

Output Schema

ParametersJSON Schema
NameRequiredDescription
savedYes
totalYes
deviceYes
appliedYes
resultsYes
completedYes

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing failure semantics (stops at the first rejected command), cleanup behavior (always leaves configuration mode), and the effect of `save` (runs `write memory`). These are exactly the behavioral traits an agent needs before issuing a destructive multi-command mutation.

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

Conciseness5/5

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

One dense but well-ordered sentence plus a short clarification – no filler, and the operational model (enter config, follow the prompt) is front-loaded before the edge-case behavior.

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

Completeness5/5

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

With an output schema available and annotations covering the safety profile, the description supplies everything else an agent needs: how commands are sequenced, failure handling, mode cleanup, and persistence via `save`. Nothing material is missing for a destructive tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates the `save` behavior and the prompting model already documented in the schema, adding little new meaning about individual parameters.

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

Purpose5/5

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

States a precise verb+resource: apply a block of IOS configuration commands to a router or switch. The 'as if typed after `configure terminal`' framing pins down the exact operation and separates it from siblings like configure_host, configure_access_point, or run_cli.

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

Usage Guidelines4/5

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

Gives strong operational context (commands execute in order, sub-modes work, leading enable/configure terminal and trailing end are handled) so an agent knows exactly when this tool applies. It does not, however, explicitly compare itself to run_cli or the other configure_* siblings for exclusion cases.

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

connectA

Cable two ports together. Both ports must exist and be free. With the default auto cable pktctl picks serial, straight or cross the way the CCNA rules do; pass cable to force fiber, rollover, console, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
cableNoCable to use. `auto` picks serial for serial ports, straight between a host or router and a switch, and cross between devices of the same layer.
port_aYesPort on the first device, exactly as `list_ports` shows it, for example `GigabitEthernet0/0`.
port_bYesPort on the second device.
device_aYesFirst device name.
device_bYesSecond device name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
aYes
bYes
cableYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so safety is largely covered. The description adds real operational context beyond that: ports must already exist and be unoccupied, and the default `auto` selection is deterministic. It does not state error behavior or whether an existing link is replaced, which caps it at 4.

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

Conciseness5/5

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

Two sentences, both earning their place: first the action and precondition, second the cable-selection behavior. The action is front-loaded and there is no filler.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and annotations cover the safety profile. The description covers the action, prerequisites and cable semantics, but leaves unstated what happens if a port is busy or whether the call is idempotent, which is the only remaining gap for a mutation tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%; the schema already documents all five parameters, including the auto-selection rules for `cable`. The description's mention of CCNA rules and forcing fiber/rollover/console overlaps with that schema text rather than adding new syntax or format detail, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Cable two ports together') that unambiguously identifies physical link creation and distinguishes it from siblings such as disconnect and connect_wireless. The scope is clear from the first four words.

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

Usage Guidelines4/5

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

Gives a concrete precondition ('Both ports must exist and be free') and explains the default cable behavior, including the escape hatch of passing `cable` to force a type. It does not name an alternative tool or a when-not-to-use condition, so it falls short of a 5.

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

connect_wirelessA

Connect a laptop, PC or other client with a wireless card to a network: SSID, security and key, plus DHCP or a static address. Packet Tracer only associates when a network is loaded, so pktctl takes the network as bytes, sets the client's current profile, opens the result as a temporary copy (your own file is not written) and reports whether it associated and with which access point.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoStatic address. Omit for DHCP.
dnsNo
keyNo
maskNo
ssidYes
deviceYesClient with a wireless card, for example a laptop.
gatewayNo
securityNoopen
bring_access_pointNoMove the access point with this SSID next to the client first when it is out of radio range (Packet Tracer's radios reach about 120 units in the physical workspace).

Output Schema

ParametersJSON Schema
NameRequiredDescription
ipNoAddress of the wireless port; with DHCP, the lease if one arrived.
fileYesThe temporary copy Packet Tracer now has open. Your own file is untouched: save with `save_network` and a path to keep the change there.
ssidYes
deviceYes
diagnosisNoWhen the client did not associate: why, with the distance to each access point broadcasting the SSID.
associatedYes
access_pointNo
moved_access_pointNoThe access point that `bring_access_point` moved next to the client.

TDQS

A3.9/5.0
Behavior4/5

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

Adds real behavior beyond the annotations (readOnlyHint=false, destructiveHint=false): it sets the client's current profile, operates on a temporary copy so the user's own file is not written, and reports association status and the access point joined. That non-persistence guarantee and the returned outcome are exactly the kind of context annotations cannot carry.

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

Conciseness4/5

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

Two sentences, front-loaded with the purpose and then the notable behavior; almost every clause earns its place. Slightly dense but no filler.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and annotations cover the safety profile. The description supplies the crucial non-persistence detail and the loaded-network prerequisite, leaving mainly the underserved ip/mask/gateway/dns parameters as a gap.

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

Parameters3/5

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

Schema coverage is only 33% across 9 parameters, so the description must compensate. It covers ssid, security, key and the DHCP-vs-static distinction (ip 'Omit for DHCP'), but says nothing about mask, gateway, dns, or bring_access_point semantics. Partial compensation only.

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

Purpose5/5

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

States a specific verb and resource ('Connect a laptop, PC or other client with a wireless card to a network') and enumerates the relevant inputs (SSID, security and key, DHCP or static address). The wireless-card scoping naturally separates it from the wired `connect` sibling.

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

Usage Guidelines3/5

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

Implies when it applies (a client with a wireless card, a loaded network) via the prerequisite 'Packet Tracer only associates when a network is loaded', but never names an alternative such as `connect`, `configure_host`, or `wireless_status`, nor states a when-not condition. Usage is inferable but not spelled out.

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

describe_ipcA
Read-only

Explore Packet Tracer's complete IPC API (every class, method, argument and enum of the official framework). Give search to find methods by keyword, class to list everything an object offers, enum to read accepted values, or nothing for the list of roots. Use it before call_ipc for anything the dedicated tools do not cover.

ParametersJSON Schema
NameRequiredDescriptionDefault
enumNoShow the values of one enum, for example `ConnectType`.
classNoShow one class with every method it offers, inherited ones included, for example `Router`.
limitNoMaximum number of search results. Defaults to 40, maximum 200.
eventsNoShow the events an object class raises, for example `LogicalWorkspace`, for `watch_events`. An empty string lists every class that raises events.
searchNoSearch class names, method names and summaries, for example `ssid` or `simulation`.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and closed-world, so safety is covered. The description adds genuine behavioral detail beyond them: it explains that each mode changes what is returned (keyword search, full class listing, enum values, or roots) and frames the tool as read-only introspection never touching live state.

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

Conciseness4/5

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

Front-loaded with the purpose, then a compact enumeration of the four modes, and finally the routing advice. Every sentence earns its place; the mode list is dense but integral to usage.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the description covers the discovery workflow and its handoff to call_ipc. The only gap is the unmentioned `events`/`limit` behavior, which is minor given full schema coverage.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents all five parameters with examples. The description reinforces the search/class/enum modes but omits two parameters entirely (`limit` and `events`), so it does not add meaning beyond the schema and the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource: exploring Packet Tracer's complete IPC API down to classes, methods, arguments and enums. It also enumerates the four modes (search/class/enum/none), so an agent immediately knows what the tool does and how its shape differs from call_ipc.

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

Usage Guidelines4/5

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

Gives clear usage context: 'Use it before call_ipc for anything the dedicated tools do not cover.' This establishes the discovery-before-execution workflow and when this tool applies. It stops short of naming specific alternative tools or stating exclusions for covered operations, so it falls just under the top band.

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

disconnectB
Destructive

Remove the cable plugged into a port.

ParametersJSON Schema
NameRequiredDescriptionDefault
portYesPort name, exactly as `list_ports` shows it.
deviceYesDevice name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
portYes
deviceYes
was_connected_toYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating operation. The description adds a small amount of context by specifying that a cable is removed from a port, but it does not disclose reversibility, side effects on the port or device state, or authorization needs. With annotations covering the safety profile, a 3 is appropriate.

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

Conciseness5/5

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

The description is a single, efficient sentence with no filler. The action and target are front-loaded, and every word earns its place.

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

Completeness4/5

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

Given the tool's simplicity, the presence of an output schema (so return values need not be explained), and annotations that already cover the mutation safety profile, the description is largely complete. A minor gap is that it does not mention the inverse relationship with connect or what happens to the port after disconnection, but these are not essential for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so both the device and port parameters are already documented in the input schema. The description mentions 'cable plugged into a port', which loosely maps to the port parameter, but adds no syntax, format, or usage details beyond what the schema provides. Baseline 3 is correct when the schema does the heavy lifting.

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

Purpose4/5

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

The description states a specific verb (remove) and resource (cable plugged into a port). It clearly distinguishes the action from sibling tools like connect (opposite action) and remove_device (removes a device rather than a cable). However, it does not explicitly name or contrast with any sibling, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as connect or remove_device. There are no prerequisites, conditions, or exclusions stated; usage must be inferred entirely from the tool name and description.

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

drawA

Draw on the logical canvas: a circle (centre and radius) around a subnet or group, a rectangle (two corners) to frame an area, or a line to mark a boundary. color is the outline (red, blue, green, ... or #rrggbb); fill fills circles and rectangles. The drawing is written into the network file, which Packet Tracer reopens from a temporary copy; save with a path to keep it. Returns the id remove_drawing takes.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesCircle: the centre. Rectangle: one corner. Line: where it starts. Canvas coordinates, as in `add_device`.
yYes
fillNoCircle and rectangle: fill them with this colour, named or `#rrggbb`. Left unfilled when omitted.
to_xNoRectangle: the opposite corner. Line: where it ends.
to_yNo
colorNoOutline colour: `red`, `orange`, `yellow`, `green`, `blue`, `purple`, `gray`, `black`, `white`, or a `#rrggbb` value. Defaults to blue.
shapeNo`circle` (default), `rectangle` or `line`.circle
radiusNoCircle: its radius. Defaults to 60.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
fileYesThe temporary copy Packet Tracer now has open: drawings go through the network file. Your own file is untouched: save with `save_network` and a path to keep the drawing there.
fillNo
colorYes
shapeYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false, openWorldHint=false. The description adds the crucial non-obvious behavior: drawings are written into the network file, Packet Tracer reopens from a temporary copy, and the change is only kept if the agent saves with a path. It also states the return value (an id) and its consumer. This is material context an agent cannot get from the annotations.

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

Conciseness5/5

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

Four dense sentences: shapes first, then colour/fill, then persistence semantics, then return value. No filler, and the most consequential constraint (the temp-copy/save behavior) is stated before the return note.

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

Completeness5/5

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

The tool is a mutating canvas operation with an output schema, and the description covers the shape vocabulary, the coordinate conventions, defaults, and the persistence caveat. Nothing needed to invoke it correctly is missing; return-value detail is appropriately brief since an output schema exists.

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

Parameters4/5

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

Schema coverage is 75%, so the baseline is 3, but the description actively compensates: it specifies colour syntax (named palette or `#rrggbb`), the default outline colour (blue), radius default (60), and what x/y/to_x/to_y mean per shape. It largely duplicates schema text rather than extending it, so it stops short of 5.

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

Purpose5/5

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

Opens with a specific verb and resource ('Draw on the logical canvas') and enumerates the three concrete shapes with their geometric meaning. It also names the sibling that consumes this tool's output ('Returns the id `remove_drawing` takes'), making it distinguishable from list_drawings/remove_drawing without opening any schema.

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

Usage Guidelines4/5

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

Each shape is tied to a use case ('ring a subnet or group', 'frame an area', 'mark a boundary'), which tells the agent which variant to select. It also says when to save ('save with a path to keep it'), a real usage condition. It does not, however, state when not to draw or name alternatives in the shape-selection space.

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

fast_forwardA

Press Realtime mode's Fast Forward Time button: timers jump ahead so spanning tree converges, DHCP leases arrive and routing protocols settle at once instead of after 30 seconds or more. Call it after cabling or configuring, before testing connectivity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
doneYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish that this mutates state but is not destructive. The description adds real behavioral context by explaining what actually changes (spanning tree converges, DHCP leases arrive, routing protocols settle) and the time it saves, which is beyond what the annotations convey.

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

Conciseness5/5

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

Two tightly written sentences, with the core action front-loaded and the usage timing following. Every clause earns its place by conveying either effect or timing.

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

Completeness5/5

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

An output schema exists, so return values need no explanation. For a parameterless action tool, the description supplies purpose, effect, and invocation timing, leaving nothing essential missing.

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

Parameters4/5

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

The tool takes zero parameters, so there are no parameter semantics to explain; the baseline for a parameterless tool is 4. Nothing in the description is needed to clarify inputs.

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

Purpose5/5

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

The description names a specific action ('Press Realtime mode's Fast Forward Time button') and states its concrete effect ('timers jump ahead'), which is unambiguous. It is clearly distinguishable from siblings like simulation_mode and simulation_step because it scopes itself to Realtime mode's time-advance behavior.

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

Usage Guidelines4/5

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

It gives explicit sequencing guidance: 'Call it after cabling or configuring, before testing connectivity.' This is clear contextual instruction, though it does not name an alternative tool or state when not to use it, so it stops short of full when/when-not guidance.

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

get_preferencesA
Read-only

Read Packet Tracer's preferences: port labels, link lights, device labels, auto cabling, animation, sound, device dialog tabs, toolbars and more.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
valuesYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe read-only nature is established structurally. The description adds only the scope of preferences returned; with an output schema present, the enumerated categories are partly redundant, and nothing extra is disclosed about auth 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.

Conciseness4/5

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

A single front-loaded sentence that leads with the verb and resource. The trailing 'and more' is mildly vague filler but does not obscure the core meaning.

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

Completeness4/5

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

With annotations covering the safety profile, an existing output schema covering return values, and no parameters, the description gives an agent everything needed to call it correctly. The only soft spot is the undefined 'and more' scope, which the output schema resolves.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. There is no parameter surface for the description to explain, and it correctly avoids inventing input arguments.

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

Purpose4/5

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

States a specific verb (Read) and resource (Packet Tracer's preferences) and enumerates the setting categories covered. It does not name the set_preferences sibling, but the 'Read' verb implicitly distinguishes it as the retrieval counterpart to that mutator.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the read side of preferences and that set_preferences handles mutation, but the description never states when to call it, its relationship to set_preferences, or any conditions. No alternatives or exclusions are named.

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

host_filesA
Destructive

Work with the text files of a PC, laptop or server, the ones its Text Editor opens and dir lists: list, read, write (creates or replaces) or delete a file in C:.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFile name in C:\, for example `notes.txt`. Required except for `list`.
textNoText to write. Required for `write`.
actionNo`list` (default), `read`, `write` or `delete`.list
deviceYesPC, laptop or server.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoThe file's text, for `read`.
filesYesThe files in C:\ after the action.
actionYes
deviceYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds useful specifics: `write` creates or replaces a file, and `delete` removes `name`. This clarifies the destructive behavior beyond the annotation flag without contradicting it. It does not cover permissions or error behavior, but with annotations present that is a modest gap.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that names the resource, scope, and available actions without wasted words. It uses a colon to enumerate actions compactly and is appropriately sized for the tool. Every phrase contributes to identifying the tool's function.

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

Completeness4/5

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

Given that an output schema exists and annotations disclose the safety profile, the description does not need to explain return values. It adequately covers the tool's scope and action set for a host file utility. It could be more complete by mentioning access requirements or action-specific limitations, but the core operational context is present.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains each parameter and action in detail, including defaults and requirements. The description reinforces the action names and C:\ file scope but adds little syntax or semantic detail beyond what the schema already provides. Baseline 3 is appropriate when structured fields carry the parameter documentation.

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

Purpose4/5

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

The description states a clear resource and scope: text files on a PC, laptop or server, specifically files in C:\ that a Text Editor opens and `dir` lists. It enumerates the four actions (list, read, write, delete) so the agent knows what the tool does. It does not name or contrast any sibling tool, so it falls short of full sibling differentiation.

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

Usage Guidelines3/5

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

The description implies usage by defining the tool as working with host text files in C:\ and by listing the available actions. However, it gives no explicit when-to-use or when-not-to-use guidance, and it does not point to alternatives such as run_host_command or other host-configuration siblings.

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

list_devicesA
Read-only

List every device in the open network with its model, kind (router, switch, pc, ...) and canvas position. Use the names to target devices in other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
devicesYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that the scope is 'every device in the open network' and that names are reusable identifiers, which is useful context, but it says nothing about ordering, payload size, or whether an empty network returns an empty list.

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

Conciseness5/5

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

Two sentences, both earning their place: the first defines scope and return shape, the second gives the practical follow-on action. Scope and content are front-loaded with no filler.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. For a zero-parameter read tool the description is essentially complete, with only minor gaps such as ordering/emptiness behavior.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4 per the rubric. Schema description coverage is 100% and there is nothing further the description could add about inputs.

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

Purpose4/5

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

The description gives a clear verb and resource ('List every device in the open network') and even enumerates the returned fields (model, kind, canvas position), so an agent can distinguish it from list_models, list_links or list_ports. It stops short of explicitly naming those siblings as alternatives, which keeps it at a 4.

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

Usage Guidelines3/5

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

'Use the names to target devices in other tools' hints at downstream usage, but there is no statement of when to prefer this tool over sibling listing tools (list_models, list_slots, network_description) or any precondition/exclusion. Usage context is only implied.

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

list_drawingsA
Read-only

List the circles, rectangles and lines drawn on the logical canvas with their ids and centres.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
drawingsYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that the listing covers shapes on the logical canvas with ids and centres, but says nothing about scoping or whether the list can be empty/partial.

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

Conciseness5/5

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

One front-loaded sentence with no filler; the key noun phrase (what is listed) comes first and the returned fields follow.

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

Completeness4/5

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

An output schema exists, so return details need not be repeated, and the description is sufficient for a zero-param read-only listing. It could be marginally stronger by noting the scope of the canvas being enumerated.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies.

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

Purpose5/5

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

States a specific verb (List) and resource (circles, rectangles and lines on the logical canvas), and even names the returned fields. Read alongside siblings like draw and remove_drawing, the intent is unambiguous.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus alternatives such as screenshot or show_workspace, and no prerequisites or exclusions. Usage is only implied by the verb.

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

list_locationsA
Read-only

List the physical workspace: Intercity, cities, buildings, wiring closets and racks, each with its path, position and the devices placed in it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
locationsYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and scope are covered. The description adds that entries carry path, position, and contained devices, but this is largely return-shape information that the output schema already supplies, so the marginal behavioral value is modest.

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

Conciseness4/5

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

A single front-loaded sentence naming the verb and resource first, then the hierarchy. It is compact with no filler, though the long enumerations of levels and fields border on return-value description that overlaps the output schema.

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

Completeness4/5

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

For a zero-parameter, read-only listing tool with an output schema and clean annotations, the description is essentially complete. An agent knows what it returns and that it is safe to call; only an explicit pointer to the sibling alternative is missing.

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

Parameters4/5

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

The tool takes zero parameters, which is the baseline-4 case; there is nothing to disambiguate. Schema description coverage is 100%, so nothing is left undocumented.

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

Purpose4/5

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

States a specific verb ('List') and resource (the physical workspace hierarchy: Intercity, cities, buildings, closets, racks), so an agent can distinguish it from list_devices, list_notes, and list_links. It does not explicitly contrast itself with show_workspace, which also exposes workspace structure, but the hierarchy enumeration is specific enough to route correctly.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: it is a read-only enumeration, so an agent can infer 'use this to discover the location tree.' But there is no explicit when-to-use guidance and no named alternative (e.g., show_workspace) for the overlapping case.

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

list_modelsA
Read-only

List the device models this Packet Tracer can create, straight from its hardware catalog, optionally filtered by kind (router, switch, pc, server, access_point, ...). Set include_modules to also list slot modules such as HWIC-2T or NIM-2T, or give a module kind (interface_card, pt_laptop_module, ...) to list only those modules.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoOnly models of this kind: a device kind such as `router`, `switch`, `pc`, `server`, or a module kind such as `interface_card` or `pt_laptop_module`, which lists modules.
include_modulesNoAlso list the modules (HWIC, NIM, NM cards) that can be installed in slots.

Output Schema

ParametersJSON Schema
NameRequiredDescription
devicesYes
modulesNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and scope are covered. The description adds useful context that results come from a static hardware catalog rather than the active topology, but says nothing about result size, paging, or ordering.

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

Conciseness4/5

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

Two sentences, front-loaded with the core action and followed by the filtering behavior. Slightly clause-heavy in the second sentence but no wasted filler.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and annotations cover the safety profile. Both parameters are addressed and the catalog-vs-live distinction is made, leaving little an agent needs beyond this to call it correctly.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description goes further by giving concrete device-kind and module-kind examples (access_point, interface_card, pt_laptop_module) and, importantly, explaining the interaction: passing a module kind to `kind` lists only modules. That interaction is meaningful semantics beyond the schema.

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

Purpose4/5

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

States a specific verb and resource ("List the device models this Packet Tracer can create") and clarifies the source is the hardware catalog rather than live network state, which implicitly separates it from list_devices/list_slots. It does not explicitly name a sibling, so it stops short of full differentiation.

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

Usage Guidelines3/5

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

Explains the two practical usage modes (filter by kind, or set include_modules/adjust kind to surface modules), which is implied guidance. However, it never states when NOT to use it or points to an alternative such as list_devices for currently instantiated hardware.

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

list_notesA
Read-only

List the text notes on the logical canvas with their ids and positions. Port labels drawn at cable ends are left out unless include_port_labels is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_port_labelsNoAlso list the port labels Packet Tracer draws at each end of a cable (`Gig0/0`, `Fa0/1`).

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description usefully adds that port labels are excluded by default, going beyond the annotations, but says nothing about ordering, volume, or scope limits of the listing.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action and scope, followed by the one conditional caveat. No filler or redundancy.

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

Completeness4/5

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

For a simple read-only list tool with one optional boolean and an output schema that already defines return values, the description covers what an agent needs. Minor omissions (result ordering, whether it covers all pages of the canvas) are not critical here.

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

Parameters3/5

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

Schema coverage is 100% and the sole parameter is fully documented in the schema. The description restates the default behavior of include_port_labels ('left out unless ... is true'), which marginally reinforces rather than extends the schema, so the baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb (List) and resource (text notes on the logical canvas) plus what is returned (ids and positions), which cleanly separates it from add_note and remove_note. It does not, however, explicitly distinguish itself from the nearby list_drawings sibling, which an agent might reasonably confuse it with.

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

Usage Guidelines3/5

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

Usage is only implied by the tool name and the note about port labels; there is no explicit statement of when to call this versus list_drawings or show_workspace. The include_port_labels sentence does convey a conditional behavior, which is a partial substitute for guidance.

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

list_portsA
Read-only

List a device's ports with their state, IPv4 address when they have one, and what each port is connected to. Use it to pick free ports before connect.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYesDevice name as shown by `list_devices`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
portsYes
deviceYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description reinforces that this is a state-inspection read but adds no behavioral detail such as ordering, pagination, or error behavior for unknown devices. Adequate but not rich beyond the annotations.

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

Conciseness5/5

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

Two sentences, no filler, with the purpose front-loaded and the usage hint second. Every clause earns its place by describing distinct returned fields.

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

Completeness4/5

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

An output schema exists, so return-value detail need not be repeated, and annotations cover the read-only nature. The definition is sufficient for correct invocation, with only minor room to note how a device name is discovered or resolved.

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

Parameters3/5

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

Schema description coverage is 100% — the 'device' parameter is already documented in the schema as 'Device name as shown by list_devices.' The description adds no further semantics about this parameter, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List a device's ports') and enumerates what each entry contains (state, IPv4, connections), so an agent knows exactly what is returned. It does not explicitly differentiate from the nearest lookalike sibling (list_slots), so it falls just short of a 5.

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

Usage Guidelines4/5

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

Gives a concrete use case: 'Use it to pick free ports before connect,' which names the sibling tool (connect) whose precondition it serves. It stops short of a 5 because it offers no when-not guidance or statement about ports that are already occupied.

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

list_server_servicesA
Read-only

List the services of a server (DHCP, DNS, HTTP, HTTPS, FTP, SMTP, POP3, NTP, Syslog, TFTP) and whether each one is on.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort whose DHCP service to report. Defaults to `FastEthernet0`.
deviceYesServer name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deviceYes
servicesYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the agent knows this is a safe, local read. The description adds that it reports on/off status for each service, but says nothing about permissions, rate limits, or side effects beyond what the annotations provide.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted words. The resource is stated first, followed by the enumerated services and status detail.

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

Completeness5/5

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

The tool is simple, has only two parameters, full schema coverage, and an output schema. The description names the resource and the full set of services, and annotations cover the safety profile, so nothing an agent needs in order to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented in the schema. The description implies a server target ('of a server') but adds no syntax, defaults, or port semantics beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb ('List') and resource ('services of a server'), and enumerates the exact service types returned. It is easily distinguished from sibling tools like set_server_service or configure_dhcp_server, which mutate rather than list.

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

Usage Guidelines3/5

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

The description implies usage by stating what is listed, but gives no explicit when-to-use guidance or alternatives. It does not say to call it before set_server_service or how it differs from configure_* tools. Adequate but with clear gaps.

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

list_simulation_eventsB
Read-only

Read the simulation event list: where each PDU was, when, which protocol, and whether it was accepted or dropped. With include_decisions, also Packet Tracer's per-layer explanation of each step, the same text as the PDU Details window.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum events to return, newest last. Defaults to 50, maximum 500.
deviceNoOnly events at this device.
protocolsNoOnly these protocols, for example `["ICMP", "ARP"]`. Omit for every protocol.
include_decisionsNoInclude Packet Tracer's explanation of each step (the OSI decisions in PDU Details).

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesEvery event recorded so far.
eventsYes
matchingYesEvents matching the filters, before `limit`.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful content detail by noting that include_decisions surfaces Packet Tracer's per-layer explanation, the same text as the PDU Details window. It says nothing about ordering beyond the schema's hint, pagination limits, or behavior on an empty/raw simulation.

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

Conciseness5/5

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

Two tight sentences with zero filler. The core read purpose and its field set are front-loaded, and the optional decision-text behavior is deferred to the second sentence, which is the right ordering.

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

Completeness3/5

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

An output schema exists, so return-value documentation is unnecessary, and the description adequately covers what the list contains. The remaining gap is routing: with siblings like watch_events and simulation_step present, the description gives no guidance on which one to pick, so the definition is adequate but not complete for selection.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (limit, device, protocols, include_decisions) are already fully documented with defaults and semantics. The description only restates include_decisions at a higher level, adding no syntax or format detail beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

The description gives a specific verb (Read) and resource (simulation event list) and enumerates the fields returned: location, timing, protocol, accepted/dropped. That clearly distinguishes it from state-changing siblings. However, it never contrasts itself with close siblings like watch_events or simulation_step, so an agent must infer the boundary.

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

Usage Guidelines2/5

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

There is no explicit statement of when to use this tool versus watch_events, simulation_step, or simulation_mode. The use case (inspecting a completed simulation log) is only implied by the name and field list. No prerequisites or exclusions are given.

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

list_slotsA
Read-only

List a device's module slots (path, the kind of module each accepts, what is installed) and the module models the device supports.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYesDevice name as shown by `list_devices`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slotsYes
deviceYes
supported_modulesYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description usefully discloses the shape of the returned content (paths, accepted module kinds, installed modules, supported models), but adds nothing about errors, permissions, or device-name validity.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the parenthetical carries real information about the return payload rather than restating the name.

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

Completeness4/5

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

With annotations covering safety, a fully documented single parameter, and an output schema present to describe return values, the description is sufficient to call the tool correctly. Only the lack of routing guidance to sibling tools keeps it from full marks.

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

Parameters3/5

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

Only one parameter, and schema coverage is 100% with the schema already stating 'Device name as shown by list_devices.' The description does not add format or syntax detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('List') and resource ('a device's module slots'), and the parenthetical enumerates what each slot record contains, so the agent knows exactly what it gets back. It does not explicitly differentiate from near-neighbours such as list_ports or list_models, though the scope is clear enough to infer.

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

Usage Guidelines3/5

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

Usage is only implied: the tool is the natural precursor to add_module/remove_module, but the description never states when to call it or what alternative to prefer. No prerequisites or exclusions are given.

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

move_deviceB

Move a device to a new position on the logical canvas.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesNew canvas x of the device center.
yYesNew canvas y of the device center.
nameYesDevice name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
xYes
yYes
kindYes
nameYes
modelYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds no behavioral context beyond that, such as whether coordinates are absolute or relative, whether the move is animated, or whether it requires a running simulation.

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

Conciseness5/5

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

A single front-loaded sentence with zero waste. The verb and resource lead, and no padding follows.

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

Completeness3/5

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

An output schema exists so return values need not be described, and three required params are fully documented in the schema. However, for a canvas-mutating tool with adjacent siblings, the description leaves selection context and coordinate semantics implicit.

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

Parameters3/5

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

Schema coverage is 100% and each parameter is documented as canvas x/y of the device center and device name, so the schema does the heavy lifting. The description adds nothing beyond the schema's own naming, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb (move) and resource (device) with the target surface (logical canvas position). It is clear what the tool does but does not distinguish itself from siblings like arrange_devices or move_to_location, which could also reposition things.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives such as move_to_location or arrange_devices. The agent gets no condition for selecting this tool over repositioning siblings.

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

move_to_locationA

Move a device, or a whole location such as a wiring closet, to another place in the physical workspace, for example a switch into Home City/Corporate Office/Main Wiring Closet. Devices moved into a wiring closet land on its rack or table.

ParametersJSON Schema
NameRequiredDescriptionDefault
intoYesPath of the destination, for example `Home City/Corporate Office/Main Wiring Closet`. Devices moved into a wiring closet land on its rack or table, as Packet Tracer places them.
deviceNoDevice to move, by its name in `list_devices`. Give this or `location`.
locationNoLocation to move, by its path in `list_locations`. Give this or `device`.
x_percentNoWhere to leave it inside the destination, as a percentage of the room's width and height: 50 and 50 is the middle.
y_percentNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileNoThe temporary copy Packet Tracer now has open, when the move went through the network file. Save with `save_network` and a path to keep it.
movedYesThe device name or location name that moved.
now_inYesPath of the location it ended up in.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context that a device moved into a wiring closet lands on its rack or table, but says nothing about reversibility, error conditions, or what happens to existing placement.

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

Conciseness4/5

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

Two tight sentences that front-load the core action and follow with the wiring-closet nuance. Minimal waste, though the closing detail partially duplicates the 'into' schema description.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the description covers both target types and the notable placement rule. It is nearly complete, missing only the mutual-exclusivity rule for device vs location and any error behavior.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already documents 'into', 'device', 'location' and 'x_percent'. The description largely restates that content (destination path, device-by-name, location-by-path, wiring-closet landing) rather than adding new semantics such as coordinate ranges or what happens when both/neither of device and location are supplied.

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

Purpose4/5

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

States a specific verb (move) and resources (a device or a whole location) plus the domain (physical workspace), with a concrete example path. It does not name or differentiate against the sibling move_device, which does similar work for devices, leaving the boundary implicit.

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

Usage Guidelines3/5

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

Usage is only implied through the example ('for example a switch into Home City/Corporate Office/Main Wiring Closet'). There is no explicit when-to-use guidance, no mention of when to prefer this over move_device, and no statement of prerequisites.

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

network_descriptionA

Read the open file's description (the Description button in Packet Tracer), or replace it with text.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoNew description (HTML or plain text). Omit to only read it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
htmlYes
textYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the agent knows this is a local, non-destructive write. The description adds that 'replace' overwrites the existing description, which is useful signal, but it omits whether the prior value is recoverable or whether the operation requires the file to be saved. Modest added value over annotations.

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

Conciseness5/5

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

A single tight sentence with the read case and the write case front-loaded and zero filler. Every clause earns its place.

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

Completeness4/5

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

The tool is simple, has an output schema (so return values need no explanation), and 100% parameter coverage. The description covers both modes adequately. It is only slightly incomplete in not clarifying what happens to the existing description or whether reading returns HTML versus text.

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

Parameters3/5

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

With only one optional parameter and 100% schema description coverage, the schema already documents that `text` accepts HTML or plain text and that omitting it performs a read. The description restates this rather than adding syntax, format, or size constraints beyond what the schema provides, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific dual-mode operation: read the open file's description or replace it with `text`. It also maps the concept to a concrete UI affordance (the Description button in Packet Tracer), which grounds the agent's understanding. It does not explicitly distinguish itself from siblings like describe_ipc, so it falls short of a 5.

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

Usage Guidelines3/5

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

The description implies when each mode applies — providing `text` triggers replacement, omitting it reads — but this is also encoded in the schema's default and parameter docs. There is no explicit statement of when to prefer this tool over alternatives, and no prerequisites or preconditions are given.

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

new_networkA
Destructive

Start an empty network. Unsaved changes are discarded unless save_current_to gives a path to save them first.

ParametersJSON Schema
NameRequiredDescriptionDefault
save_current_toNoSave the current network here first. Without it, unsaved changes are discarded.

Output Schema

ParametersJSON Schema
NameRequiredDescription
clearedYes
saved_previousNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds concrete destructive behavior—unsaved changes are lost—and the exact mitigation via save_current_to, which is valuable context beyond the annotations.

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

Conciseness5/5

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

Two front-loaded sentences with no wasted words; the destructive consequence and mitigation are stated directly.

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

Completeness5/5

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

For a simple one-parameter tool with annotations and an output schema, the description covers the action, destructive behavior, and optional save path. Nothing essential is missing.

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

Parameters3/5

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

The one parameter has full schema description coverage and the description mirrors that text, adding no syntax or format details. Baseline 3 is appropriate because the schema already documents the parameter fully.

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

Purpose5/5

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

States a specific action ('Start') and resource ('empty network'). The word 'empty' differentiates it from open_network, so an agent can select it without opening the schema.

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

Usage Guidelines4/5

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

Explains the key decision point for the optional parameter: use save_current_to to preserve unsaved changes before starting, otherwise they are discarded. It does not explicitly name open_network or other alternatives, but the context for when this tool is appropriate is clear.

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

open_networkA
Destructive

Open a .pkt or .pka file. Unsaved changes in the current network are discarded unless save_current_to gives a path to save them first. Never shows a dialog.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path of a `.pkt` or `.pka` file.
save_current_toNoSave the current network here first. Without it, unsaved changes are discarded.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
devicesYes
saved_previousNo

TDQS

A3.9/5.0
Behavior4/5

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

The destructiveHint annotation already flags this as a data-destroying operation, and the description adds real value beyond it: it specifies exactly what is destroyed (unsaved changes in the current network), how to avoid it, and the non-obvious trait that it 'never shows a dialog', which matters for a headless agent.

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

Conciseness5/5

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

Three short sentences, each carrying distinct information: what it opens, the destructive consequence and its mitigation, and the no-dialog behavior. Nothing is padded and the critical warning is front-loaded after the purpose.

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

Completeness4/5

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

An output schema exists so return values need no explanation, and the description covers destruction, mitigation, and the dialog behavior. The only minor gap is not routing to sibling tools for saving or creating networks.

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

Parameters4/5

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

With 100% schema description coverage, the baseline is 3, and the description adds semantic weight by clarifying that save_current_to must be supplied *before* opening or the current network's changes are lost, reinforcing the schema's default-null warning.

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

Purpose4/5

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

States a specific verb (open) and resource (.pkt/.pka file), which is clearly distinguishable from siblings like new_network and save_network. It stops short of explicitly contrasting with those siblings, but the purpose is unambiguous.

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

Usage Guidelines3/5

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

The conditional 'unless save_current_to gives a path' implies usage context and warns about data loss, but it never names save_network or new_network as alternatives, so an agent must infer when opening is preferable to creating or saving.

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

power_cycle_allA
Destructive

Power cycle every device that is on, like the Power Cycle Devices button but without its confirmation dialog: every device reloads and unsaved configuration on every router and switch is lost. Returns the devices cycled.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
devicesYesDevices that were on and have been switched off and back on.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, but the description goes well beyond them: it discloses that EVERY device reloads, that unsaved configuration on every router and switch is lost, and that there is no confirmation dialog. That is exactly the consequence-level detail an agent needs before firing a destructive bulk operation.

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

Conciseness5/5

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

A single front-loaded sentence with the destructive consequence stated before the trailing return-value note; no wasted words and the most important warning is not buried.

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

Completeness5/5

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

For a zero-parameter, destructive bulk action with an output schema that covers return values, the description supplies everything an agent needs: scope, irreversibility, absence of a confirmation gate, and the response shape. Nothing material is missing.

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

Parameters4/5

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

There are zero parameters and the schema is fully covered, so there is nothing for the description to document; the baseline of 4 for a no-param tool applies.

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

Purpose5/5

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

States a specific verb+resource ('power cycle every device that is on') and pins the scope to on devices only, and it anchors the action to a known UI equivalent ('like the Power Cycle Devices button'), letting an agent distinguish it from per-device power tools like set_power.

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

Usage Guidelines3/5

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

The description implies the trigger (all on devices, bulk reload) and even explains the difference from the GUI button's confirmation dialog, but it never names an alternative tool such as set_power for granular control or states when-not to use this bulk action. Usage is inferable rather than explicit.

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

receive_emailA

Press Receive in the Email app: download the account's new mail over POP3 and return it. Like a real POP3 client, the mail is removed from the server; Packet Tracer does not expose the app's inbox, so keep what this returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYesDevice whose Email app receives, set up with `configure_email`.
timeout_secsNoSeconds to wait for mail. Defaults to 10; an empty mailbox answers after this long.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mailsYes
deviceYes

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing a real side effect (POP3 semantics delete the mail server-side) and a critical operational caveat (the app's inbox is not exposed, so the caller must persist the return value). It also implies the call blocks up to a timeout on an empty mailbox, consistent with the schema's timeout_secs. This is exactly the extra context annotations cannot carry.

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

Conciseness5/5

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

Three tight sentences: the action first, then the protocol/side-effect, then the retention warning. No filler, and the most important caveat is front-loaded rather than buried.

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

Completeness5/5

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

With an output schema present the description need not explain the return shape, and it correctly spends its budget on prerequisites, side effects, and the retention requirement instead. Nothing needed to invoke it safely is missing.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are already well documented there, including defaults and the empty-mailbox timeout behavior. The description adds no parameter-level semantics (e.g., device naming conventions), so the baseline 3 applies.

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

Purpose5/5

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

States a concrete verb+resource (download the account's new mail over POP3) and names the mechanism, which cleanly separates it from send_email and configure_email in the sibling list. An agent can tell exactly what the call produces: the inbox contents for one device.

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

Usage Guidelines4/5

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

It frames the tool as the 'Press Receive' action and ties it to a device that has already been set up via configure_email (echoed in the schema). It gives no explicit when-not-to-use or explicit alternative for reading existing mail, so it stops short of 5.

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

remove_deviceA
Destructive

Delete a device and all of its links from the network.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDevice name as shown by `list_devices`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
removedYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond them: the operation cascades to all links attached to the device, which is a side effect an agent would not infer from the name alone. It still omits reversibility/confirmation expectations.

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

Conciseness5/5

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

A single front-loaded sentence carrying the verb, the resource, and the cascade side effect with zero filler. Nothing to trim and nothing important buried.

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

Completeness4/5

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

For a one-parameter destructive tool with an output schema and full annotation coverage, the description is nearly complete: it conveys purpose and the cascading link removal. The only gap is the absence of any note on confirmability, permission needs, or whether a deleted device can be restored.

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

Parameters3/5

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

Schema coverage is 100% and there is only one parameter, whose schema description already explains the format and points at list_devices as the source of valid values. The description adds nothing to parameter semantics, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (delete) and resource (device), and adds the important scope detail that all of the device's links are removed too. This clearly separates it from sibling tools like remove_module, remove_location, remove_note, and remove_drawing, which operate on different resources.

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

Usage Guidelines3/5

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

The destructive 'delete' verb implies when it would be used, but there is no explicit guidance about when to prefer it over alternatives (e.g. disconnect vs. remove, or rename_device for non-destructive edits) and no stated preconditions such as needing a valid device name.

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

remove_drawingA
Destructive

Remove a circle, rectangle or line from the logical canvas by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote id as returned by `add_note` or `list_notes`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
removedYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this mutates state. The description adds context that the target is a drawing on the logical canvas keyed by id, beyond the boolean flags. Output schema exists, so return value need not be explained. Not a full 5 because it doesn't clarify irreversibility or permission requirements beyond the destructive hint.

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

Conciseness5/5

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

Single sentence, front-loaded with the verb, no filler. Exactly the right length.

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

Completeness4/5

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

Given a simple one-param destructive tool with a full schema, annotations, and an output schema, the description is nearly complete. It could mention irreversibility or handling of missing ids, but the destructiveHint covers the main risk.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema fully documents the 'id' parameter. The description adds the useful scope that id refers to drawings (circle, rectangle, line) on the logical canvas, which is minor added value. Baseline would be 3-4 with full coverage; this is compatible.

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

Purpose4/5

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

States a specific verb (remove) and resource (circle, rectangle, line on logical canvas) scoped by id. Distinguishes from add-drawing operations, though it doesn't explicitly name the sibling toolbar draw tool. Clear enough for selection.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives, nor prerequisites (e.g., must exist first, ownership). Agent must infer context entirely from the name and description.

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

remove_locationA
Destructive

Delete a city, building, wiring closet or rack with everything inside it. Devices must be moved out first (move_to_location); the power units Packet Tracer puts in racks go with it. Packet Tracer has no call for this, so pktctl edits the network as bytes and opens the result as a temporary copy; save with save_network and a path to keep the change.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath of the city, building, wiring closet or rack to delete, as listed by `list_locations`. Everything inside it goes too.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileYesThe temporary copy Packet Tracer now has open. Your own file is untouched: save with `save_network` and a path to keep the change there.
removedYes
power_units_removedNoPower Distribution Devices that were inside and were removed with it.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds substantial context the annotations can't: exactly what is destroyed (everything inside, including Packet Tracer's power units in racks), and the critical fact that the edit is written as bytes into a temporary copy that is discarded unless save_network is called. That persistence caveat is the kind of behavioral disclosure that prevents silent data loss.

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

Conciseness5/5

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

Three front-loaded sentences with no filler: the destructive scope comes first, the precondition second, and the persistence requirement last. Every sentence carries information an agent needs to act correctly.

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

Completeness5/5

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

An output schema exists, so return values need no explanation. Between the destructive scope, the move-out precondition, and the temp-copy/save requirement, the description covers everything needed to call this mutation safely and correctly.

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

Parameters3/5

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

Schema coverage is 100% and the single 'path' parameter is fully documented in the schema, including the list_locations reference and the 'everything inside goes too' warning. The description's restatement of the deletable object types adds little beyond the schema, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('Delete') and precise resources (city, building, wiring closet, rack) with the crucial scope qualifier 'with everything inside it.' An agent can distinguish this from siblings like remove_device and remove_note without opening the schema.

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

Usage Guidelines5/5

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

Explicit precondition ('Devices must be moved out first (move_to_location)') routes the agent to the correct alternative tool when the condition isn't met, and it names save_network + a path as the required follow-up to persist the change. Both when-to-use and the alternative path are spelled out.

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

remove_moduleA
Destructive

Remove the module in a slot, power cycling the device like add_module. Returns the ports that disappeared with it.

ParametersJSON Schema
NameRequiredDescriptionDefault
slotYesSlot path holding the module to remove.
deviceYesRouter or switch name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slotYes
deviceYes
moduleYes
cut_linksNo
ports_addedYes
ports_removedYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation profile is covered. The description adds real value beyond that: it discloses a power-cycling side effect on the device and that the returned ports are those that disappeared, which the annotations and schema do not say.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and scope, with the side effect and return info trailing. Efficient and free of filler, though 'like add_module' is a slightly indirect way to describe the power-cycle behavior.

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

Completeness4/5

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

With annotations covering the destructive profile and an output schema existing (so return values need not be explained), the description supplies the key missing hazard (power cycling) and the return semantics. It omits any prerequisite or error condition (e.g., invalid slot), a minor gap for a two-parameter tool.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (device, slot) are fully documented in the schema with their meaning. The description adds no format or syntax detail beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb+resource ('Remove the module in a slot') with a clear scope tied to a slot path, and names add_module as its counterpart operation. It is readily distinguishable from other remove_* siblings (remove_device, remove_note) by naming the module-in-slot target, though it doesn't explicitly differentiate those siblings.

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

Usage Guidelines3/5

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

The phrase 'like add_module' implicitly frames it as the inverse of add_module, which hints at when to use it, but there is no explicit when/when-not guidance or statement of prerequisites (e.g., slot must hold a module). Usage is inferable rather than stated.

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

remove_noteB
Destructive

Delete a note from the logical canvas by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote id as returned by `add_note` or `list_notes`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
removedYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is an irreversible mutation. The description adds the 'logical canvas' scope but says nothing about what happens if the id is missing, cascade effects, or confirmation requirements, so it adds only modest behavioral value on top of the annotations.

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

Conciseness5/5

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

A single short sentence that front-loads the verb and resource with zero filler. Nothing is wasted.

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

Completeness4/5

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

For a one-parameter destructive tool with a full output schema and explicit destructive annotations, the description covers the essentials an agent needs to invoke it. Only minor gaps remain, such as error behavior on a nonexistent id.

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

Parameters3/5

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

Schema description coverage is 100% and the id parameter already documents its provenance ('as returned by add_note or list_notes'). The description's 'by id' is redundant with the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb (delete) and resource (note) with a scoping qualifier ('from the logical canvas'), which separates it from sibling mutators like remove_drawing and remove_device. It does not explicitly contrast against the closely related remove_* set, but the resource is unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives, nor any prerequisites (e.g., whether the note must exist, or whether list_notes should be consulted first). Usage is only implied by the tool name and description.

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

rename_deviceB

Rename a device. The new name must not be taken by another device.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCurrent device name.
new_nameYesNew, unused device name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
xYes
yYes
kindYes
nameYes
modelYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds one useful behavioral rule — the new name must not collide with an existing device — but says nothing about failure behavior, permissions, or side effects on references to the device.

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

Conciseness5/5

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

Two short sentences, zero filler, with the action stated first and the constraint second. Nothing to trim.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations carry the safety profile. However, for a mutation tool the description omits when-to-use and error/prerequisite context, leaving a modest gap.

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

Parameters3/5

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

Schema description coverage is 100% and the two parameters ('name' as current device name, 'new_name' as unused device name) are fully documented in the schema. The description's uniqueness clause simply restates the constraint already given in the 'new_name' schema description, adding no new meaning.

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

Purpose4/5

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

States a specific verb and resource ('Rename a device'), which is unambiguous and distinct from siblings like remove_device or add_device. It doesn't explicitly contrast with rename_location, but the resource noun makes the target clear enough.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives, and no mention of prerequisites such as the device already existing or being part of the workspace. The uniqueness constraint is a rule, not usage guidance.

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

rename_locationA

Rename a city, building, wiring closet or other location. Packet Tracer has no call for this, so pktctl takes the network as bytes, edits them and opens the result as a temporary copy; your own file is not written, save with save_network and a path to keep the change.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew name, for example `Edificio Central`.
pathYesPath of the location, as listed by `list_locations`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileNoThe temporary copy Packet Tracer now has open, when the change went through the network file. Your own file is untouched: save with `save_network` and a path to keep the change there.
locationYes

TDQS

A4.3/5.0
Behavior5/5

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

The description discloses important behavioral details beyond the annotations: Packet Tracer has no native rename call, pktctl edits the network as bytes and opens a temporary copy, and the user's original file is not written until saved with save_network. This aligns with the non-destructive annotation and gives the agent critical persistence information.

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

Conciseness5/5

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

The description is front-loaded with the purpose and then explains the unusual behavior and required follow-up action. Every sentence contributes necessary information without redundancy.

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

Completeness5/5

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

With a fully described schema, clear annotations, and an output schema present, the description covers the key behavioral and persistence details an agent needs. No important contextual gap remains.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already fully documented in the input schema. The description adds no further parameter meaning, making the baseline score of 3 appropriate.

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

Purpose5/5

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

The description gives a specific verb and resource ('Rename a city, building, wiring closet or other location') and lists concrete location types. It is clearly distinguishable from sibling tools such as rename_device, which operates on a different resource.

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

Usage Guidelines3/5

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

It provides a useful follow-up workflow instruction ('save with save_network and a path to keep the change'), but it does not explicitly state when to use this tool versus alternatives like rename_device or add_location. The usage context is implied rather than clearly bounded.

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

reset_activityA
Destructive

Reset the open activity to its initial network, discarding the work done in it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileYes
itemsNoAssessment items (the Check Results tree).
pointsNoAssessment points.
is_activityYes
seconds_leftNoSeconds left when the activity has a countdown timer.
score_percentNo
seconds_elapsedNo
percent_completeNo
instruction_pagesNo
password_confirmedNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, but the description adds specific context the annotations cannot: what is destroyed ('the work done in it') and the resulting state (initial network). This tells the agent the reset is scoped to activity content rather than, say, the file itself.

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

Conciseness5/5

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

A single sentence with the action and consequence front-loaded; there is no filler, and the destructive effect is stated immediately.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the destructive behavior is disclosed. The only gap is the precondition around activity state (e.g., whether it must be unlocked or a simulation must be stopped), which is left implicit.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly implies no filtering or selection input is needed.

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

Purpose4/5

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

States a specific verb (reset) and resource (the open activity) with a concrete outcome (returns to initial network state). It distinguishes itself implicitly from new_network/open_network/unlock_activity, though it does not name a sibling explicitly.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance and no alternatives are named. The phrase 'the open activity' merely implies a precondition that an activity is loaded; the agent must infer the rest from the sibling list.

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

run_cliA
Destructive

Type one IOS command at the console of a router or switch and return its output, including commands that take time such as ping or traceroute. status tells whether IOS accepted the command. A command still running after timeout_secs is stopped with Ctrl+Shift+6 and comes back with finished: false and the output so far. When IOS asks something ([confirm], [yes/no], Password:) the reply carries question and the console keeps waiting: answer with another run_cli in mode current, an empty command for Enter.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoMode to run the command in. Defaults to `enable`.
deviceYesDevice name exactly as shown by `list_devices`.
commandYesOne IOS command, for example `show ip interface brief`. To answer a question the previous command left open (`question` in its reply), send the answer here with mode `current`; an empty command presses Enter, which confirms `[confirm]`.
passwordNoConsole line password, when the device asks for one at `Password:`.
timeout_secsNoSeconds to wait for the command to finish. Defaults to 30, maximum 300.
enable_passwordNoPrivileged mode password (`enable secret` or `enable password`).

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputYes
statusNo
finishedYes
questionNoThe question the command is waiting on, such as `Proceed with reload? [confirm]`. Answer it with another call in `current` mode; an empty command presses Enter.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses timeout handling (Ctrl+Shift+6 abort, `finished: false` with partial output), the `status` acceptance field, and the multi-turn question/answer protocol. This is exactly the kind of behavior an agent could not infer from readOnlyHint/destructiveHint.

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

Conciseness4/5

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

Front-loaded with the core action, then the timeout and question-handling behavior in dense, purposeful sentences. Every sentence carries information, though the interactive-prompt paragraph is slightly compressed and takes a second read.

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

Completeness5/5

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

With an output schema present, return values need not be spelled out, yet the description still names the key reply fields (status, finished, question) and covers the tricky interactive loop. Nothing needed to call this correctly appears to be missing.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description adds cross-parameter semantics the schema does not: how `command` and mode `current` combine to answer a pending question, and that an empty command sends Enter to confirm a `[confirm]` prompt. That said, it does not clarify the user/enable/global mode distinctions.

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

Purpose5/5

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

States a specific verb and resource ('Type one IOS command at the console of a router or switch and return its output') and scopes it to IOS devices, which cleanly separates it from run_host_command and the configuration-oriented siblings like configure_ios.

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

Usage Guidelines4/5

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

Explains the context of use (single commands, including slow ones like ping/traceroute) and gives an explicit when-to-use rule for the interactive path: answer a pending `question` with another run_cli in mode `current`. It does not name run_host_command as the alternative for non-IOS hosts, so routing between the two 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.

run_host_commandA

Run a command in the Command Prompt of a PC, laptop or server (ping, ipconfig, tracert, nslookup, arp -a) and return its output. Waits until the command finishes; a command still running after timeout_secs (ping -t) is stopped with Ctrl+C and comes back with finished: false and the output so far.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYesPC, laptop or server name as returned by `list_devices`.
commandYesCommand Prompt command, for example `ping 192.168.1.1` or `ipconfig /all`.
timeout_secsNoSeconds to wait for the command to finish. Defaults to 30, maximum 300.

Output Schema

ParametersJSON Schema
NameRequiredDescription
outputYes
statusNo
finishedYes
questionNoThe question the command is waiting on, such as `Proceed with reload? [confirm]`. Answer it with another call in `current` mode; an empty command presses Enter.

TDQS

A4.5/5.0
Behavior5/5

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

Discloses behavior well beyond the annotations: it blocks until completion, defaults to a 30s (max 300s) wait, and an over-running command is stopped with Ctrl+C and returned with `finished: false` plus partial output. This tells the agent exactly what to expect from a long-running or infinite command.

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

Conciseness5/5

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

Two dense sentences, front-loaded with the core action and examples, then the completion/timeout semantics. No filler.

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

Completeness5/5

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

For a potentially long-running, non-read-only execution tool, the description covers purpose, scope, blocking behavior, and timeout outcome, and an output schema exists for return details. Nothing essential is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for `timeout_secs` (the Ctrl+C stop and `finished: false` outcome) that the schema's terse 'maximum 300' does not convey.

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

Purpose5/5

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

States a specific verb (run) and resource (a Command Prompt command on a PC/laptop/server), with concrete examples. The 'PC, laptop or server' scoping implicitly separates it from the network-device CLI path, so an agent can distinguish it from siblings like run_cli.

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

Usage Guidelines3/5

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

The example commands (ping, ipconfig, tracert, nslookup, arp -a) and the `ping -t` note imply typical use, but there is no explicit when-to-use/when-not guidance and the sibling `run_cli` is never named as an alternative. Usage is inferable rather than stated.

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

save_networkA

Save the open network as a .pkt file, without any dialog. Give an absolute path, or omit it to save over the file already open.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoAbsolute path ending in `.pkt`. Omit it to save over the file already open.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
bytesYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only declare that this is not read-only and not open-world. The description adds genuinely useful behavioral context beyond them: the operation runs with no dialog, and omitting the path silently overwrites the currently open file. That overwrite behavior is the key risk an agent needs to know.

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

Conciseness5/5

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

One dense sentence with the core action front-loaded and the path rule following immediately. No filler or repetition.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and a single optional parameter is fully covered. What is missing is only minor: behavior on invalid or relative paths, and the absence of any sibling for saving-as.

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

Parameters3/5

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

Schema coverage is 100% and the single path parameter is fully documented in the schema, including the absolute-path and .pkt requirements. The description restates this rather than adding new meaning such as error behavior on relative paths.

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

Purpose4/5

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

States a precise verb+resource ('Save the open network as a .pkt file') and clarifies it is dialog-free. It is clearly separable from new_network and open_network by the 'save' scope, though it does not explicitly name a sibling to contrast against.

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

Usage Guidelines3/5

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

Gives guidance on the path argument (absolute path vs. omit to overwrite), which implies usage, but says nothing about when to use this tool versus alternatives such as saving under a new name, nor any exclusions or prerequisites.

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

screenshotA
Read-only

Capture Packet Tracer as a PNG image: the logical workspace rendered by Packet Tracer (default), the physical workspace (view: physical, which switches views for a moment), or the window as it is with any dialog open (view: window). Optionally also write it to an absolute .png path.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNo`logical` (default), `physical` (Intercity), `physical_rack` (main wiring closet), or `window`. All but `logical` capture Packet Tracer's own window through the operating system.
save_toNoAlso write the PNG to this absolute path, for example for a lab report.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is known. The description adds valuable behavioral context beyond annotations: it notes that physical view 'switches views for a moment' and that non-logical views capture the OS window, which are side effects not encoded elsewhere.

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

Conciseness5/5

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

A single, front-loaded sentence that packs the core action, view options, and optional save behavior without any filler. Every clause earns its place.

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

Completeness5/5

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

For a simple read-only screenshot tool with two optional parameters, full schema coverage, and no output schema, the description provides everything an agent needs: what is captured, how each view differs, the side effect of physical view, and the optional save path.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful nuance beyond the schema: it clarifies the practical effect of `view: physical` (temporary view switch), the default logical rendering, and the purpose of `save_to` (e.g., for a lab report).

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

Purpose4/5

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

The description names a specific verb ('Capture') and resource ('Packet Tracer as a PNG image'), and enumerates the three view modes. It does not, however, explicitly contrast itself with sibling tools like show_workspace, so a perfect 5 is withheld.

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

Usage Guidelines3/5

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

Usage is implied by the context 'for example for a lab report' and the enumeration of views, but there is no explicit guidance on when to choose this tool over alternatives such as show_workspace 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.

send_emailA

Send an email from the account set up with configure_email and wait for the SMTP server's answer. A recipient the server does not know comes back later as a delivery failure in receive_email.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient address, for example `admin@gamc.bo`.
bodyYes
deviceYesDevice whose Email app sends, set up with `configure_email`.
subjectYes
timeout_secsNoSeconds to wait for the server. Defaults to 30, maximum 300.

Output Schema

ParametersJSON Schema
NameRequiredDescription
toYes
fromYes
deviceYes
subjectYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare it is a non-read-only, non-destructive call, and the description adds real behavioral context: the call blocks on the SMTP server's answer, and a recipient the server rejects is surfaced later as a delivery failure in receive_email. It does not discuss timeout defaults or rate/connection failure modes, but the added detail goes clearly beyond the annotations.

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

Conciseness5/5

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

Two sentences, no filler, and the action plus prerequisite are front-loaded before the failure-handling note. Every clause earns its place.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the mutation's safety profile is covered by annotations. The description supplies the prerequisite and the delayed-failure semantics, which is enough for an agent to call it correctly; only timeout/error behavior is left implicit.

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

Parameters3/5

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

Schema coverage is 60%; 'to', 'device' and 'timeout_secs' are documented in the schema while 'subject' and 'body' are not. The description reinforces the device/account linkage but adds no syntax, format, or constraint detail beyond what the schema already provides, so the baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb and resource ('Send an email') and pins the sending account to the one created by configure_email. It also names the sibling receive_email as the eventual failure channel, so the agent can place it in the workflow without reading further.

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

Usage Guidelines4/5

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

Implies the prerequisite (account must be set up with configure_email) and explains the asynchronous failure path via receive_email. It doesn't spell out when-not to use it, but it is the only send tool among the siblings, so the routing burden is low.

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

set_backgroundA

Paper a physical location (a city, building, room or rack) with a background image, or the logical workspace when no location is given. Takes one of Packet Tracer's own backgrounds (grid_10x10, grid_25x25, grid_50x50, grid_100x100, city, building, intercity, container) or the absolute path of an image; an empty image clears it.

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesOne of Packet Tracer's own backgrounds (`grid_10x10`, `grid_25x25`, `grid_50x50`, `grid_100x100`, `city`, `building`, `intercity`, `container`) or the absolute path of an image file. An empty value clears it.
tiledNoRepeat the image instead of stretching it.
locationNoPath of the physical location to paper, as listed by `list_locations`. Omit to change the logical workspace's background instead.

Output Schema

ParametersJSON Schema
NameRequiredDescription
imageYesThe path Packet Tracer now has.
tiledYes
targetYesThe location that got the background, or `logical workspace`.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare the write/safety profile (readOnlyHint=false, destructiveHint=false), and the description adds non-obvious behavioral context: setting an empty image clears the background, and the accepted value set is enumerated. It stops short of saying the prior background is replaced or whether the change is undoable, so not a 5.

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

Conciseness4/5

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

Two sentences, front-loaded with the action and scope, then the value options and the clearing behavior. Efficient and free of filler, though the background-name enumeration slightly duplicates the schema.

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

Completeness5/5

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

An output schema exists, so return values need not be explained. For a three-parameter, non-nested tool, the description covers target, accepted values, and the edge case of clearing – nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 – the enum list and the empty-clears semantics in the description largely restate the schema's own parameter docs. No extra syntax or format detail (e.g., path constraints for the image file) is added beyond the schema.

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

Purpose5/5

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

States a specific verb and resource ('Paper a physical location ... with a background image') and precisely scopes the target: a physical location, or the logical workspace when no location is given. An agent can distinguish this from neighbors like list_locations or move_to_location without opening the schema.

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

Usage Guidelines4/5

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

Explicitly gives the condition that selects the workspace-vs-location behavior ('or the logical workspace when no location is given'). It does not name an alternative tool or state a when-not-to-use case, but no sibling competes for this exact job, so context is clear.

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

set_host_firewallA

Use the Firewall and IPv6 Firewall apps of a PC, laptop or server: switch each one on or off, add rules (permit or deny ip, icmp, tcp or udp, by remote address and port) and remove them. Returns both switches and the rules in the order the firewall evaluates them.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipv4NoSwitch the IPv4 inbound firewall on or off. Omit to leave it as it is.
ipv6NoSwitch the IPv6 inbound firewall on or off. Omit to leave it as it is.
portNoNetwork port. Defaults to `FastEthernet0`.
deviceYesPC, laptop or server name.
add_rulesNoRules to add, in the order the firewall will evaluate them.
remove_rulesNoRules to remove; they must match an existing rule exactly.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ipv4Yes
ipv6Yes
portYes
deviceYes
ipv4_rulesYesIPv4 rules as the firewall lists them, in order.
ipv6_rulesYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation profile is covered. The description adds that the reply reflects the firewall's evaluation order, but says nothing about permissions needed, reversibility of rule removal, or per-rule atomicity beyond what the schema states, and the return-format sentence is largely redundant with the existing output schema.

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

Conciseness4/5

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

Two sentences, operations front-loaded, no padding. The trailing sentence about return values is somewhat expendable given the output schema, but the size is well matched to the tool's breadth.

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

Completeness4/5

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

For a six-parameter mutation tool with full schema coverage, an output schema, and annotations covering safety, the description supplies an adequate overview of what can be configured. The main gap is operational guidance (rule ordering, removal matching, permission needs), which is minor given the structured metadata.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters (including the nested rule object) are already documented, giving a baseline of 3. The description restates protocol/action/address/port in prose but adds no format or constraint detail beyond the schema (e.g., no guidance on ordering semantics or the exact-match requirement for removals).

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

Purpose4/5

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

States a specific resource (the host's IPv4 and IPv6 Firewall apps) and enumerates the concrete operations: toggling each firewall, adding permit/deny rules, and removing rules. No sibling does firewall management, so confusion risk is low, but the description does not explicitly distinguish itself from neighbors like configure_host, keeping it short of a 5.

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

Usage Guidelines3/5

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

It tells the agent the tool is for a PC/laptop/server's Firewall apps and describes the classes of operation, so usage is implied. However there are no when-to-use/when-not statements, no mention of which parameter combinations are valid, and no routing to an alternative for firewall inspection.

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

set_powerA
Destructive

Switch a device on or off. Switching a router or switch off and on reloads it: configuration that was not saved with write memory is lost. IOS devices come back ready at the prompt.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYes`true` to switch it on, `false` to switch it off.
deviceYesDevice name as returned by `list_devices`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
onYes
deviceYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true, and the description earns additional credit by disclosing the concrete destructive consequence: unsaved configuration is lost unless written with 'write memory'. It also states the post-condition that IOS devices return to the prompt, which is behavior neither the annotations nor the schema convey.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core action, then escalating to the risk and the recovery state. Every sentence carries distinct information with no padding.

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

Completeness5/5

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

For a two-parameter, output-schema-backed tool, the description covers the action, the hazard, and the resulting state. Return values need not be explained since an output schema exists, leaving no meaningful gap.

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

Parameters3/5

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

Schema description coverage is 100%, so both the 'on' boolean and the 'device' name are already fully documented. The description adds no further parameter meaning, which is acceptable given the schema does the work.

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

Purpose4/5

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

States a specific verb and resource ('Switch a device on or off') with unambiguous scope for a single device. It is clearly distinguishable from most siblings, though it never explicitly contrasts itself with power_cycle_all, which is the nearest alternative.

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

Usage Guidelines3/5

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

Usage is implied by the description of what happens when a router or switch is switched off and on, but there is no explicit when-to-use guidance or reference to the sibling power_cycle_all that would select between them. An agent must infer the routing decision itself.

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

set_preferencesA

Change Packet Tracer preferences by name, for example { "values": { "show_port_labels": true } }. Returns every preference afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYesPreferences to change, for example `{ "show_port_labels": true, "disable_auto_cabling": true }`. `get_preferences` lists every name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
valuesYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the mutation/safety profile is covered. The description adds one useful behavioral detail ('Returns every preference afterwards'), but says nothing about persistence, session scope, or whether changes are reversible.

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

Conciseness5/5

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

Two short sentences with the action and an inline example up front, then the return behavior. Nothing is wasted and it is easily parsed.

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

Completeness4/5

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

For a single-parameter mutation with full schema coverage and an output schema, the description is nearly sufficient: action, payload shape, and post-condition are all present. Only the when-to-use framing against get_preferences is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the nested 'values' object is fully documented in the schema (including the get_preferences pointer for valid names). The description's payload example matches but adds no meaning 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.

Purpose4/5

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

States a specific verb and resource ('Change Packet Tracer preferences by name') and gives a concrete payload example, so an agent knows exactly what it does. It does not explicitly name get_preferences as the read-facing counterpart, so sibling differentiation comes only from the schema.

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

Usage Guidelines3/5

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

The 'by name' phrasing and the example imply this is the write side of a get/set pair, and the schema points to get_preferences for the list of valid names. However, the description itself offers no explicit when-to-use condition, prerequisites, or exclusion relative to get_preferences.

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

set_server_serviceB

Switch one service of a server on or off, as in its Services tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoFor DHCP: the port the service runs on. Defaults to `FastEthernet0`.
deviceYes
enabledYes
serviceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
enabledYes
serviceYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-destructive, non-open-world mutation, so the safety profile is covered. The description adds that it toggles exactly one service, but it does not disclose permissions, immediacy of effect, or whether the change is persisted.

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

Conciseness5/5

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

A single front-loaded sentence with no wasted words. The Services tab analogy is useful and compact.

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

Completeness3/5

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

For a simple toggle tool with annotations covering safety and an output schema covering returns, the description is minimally adequate. However, it leaves usage alternatives and the device/port parameter relationships underspecified for a mutation with required parameters.

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

Parameters3/5

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

Schema description coverage is only 25%, so the description must compensate. It implies the server (device), service, and enabled/on-off parameters, but it does not mention the optional port parameter or clarify the service enum values beyond what the schema already lists.

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

Purpose4/5

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

States a specific verb (switch), resource (service), scope (one service of a server), and operation mode (on/off). It is clearly distinguishable from list_server_services and configure_* siblings, but it does not explicitly name or contrast them.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use guidance, no prerequisites, and no alternatives. The Services tab reference implies a UI analogue but does not tell an agent when to choose this over list_server_services or configure_dns_server.

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

setup_exappA

Create the Packet Tracer app registration file (.pta) for pktctl's configured app id and secret, using Packet Tracer's own meta tool, and return the one-time steps to register it. Works while Packet Tracer still rejects pktctl.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
ptaYes
stepsYes
app_idYes
meta_toolYes

TDQS

A4.4/5.0
Behavior4/5

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

With annotations covering the safety profile (readOnlyHint=false, destructiveHint=false), the description adds useful behavioral context: it creates a specific file, uses Packet Tracer's `meta` tool, returns one-time steps, and works even when Packet Tracer rejects pktctl. It does not detail overwrite behavior or failure modes, but goes beyond what annotations alone provide.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary purpose. Every clause earns its place by adding either mechanism, return behavior, or applicability condition. No wasted words.

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

Completeness4/5

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

Given the tool has no parameters, an output schema for return values, and annotations covering safety, the description is nearly complete. It could mention prerequisites (e.g., that pktctl must already have an app id/secret configured), but for an experienced agent the current text is sufficient.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline score is 4. There are no parameters to explain, and the description does not need to compensate for any schema gaps.

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

Purpose5/5

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

The description states a precise verb and resource: 'Create the Packet Tracer app registration file (.pta)'. It also specifies how (using Packet Tracer's own `meta` tool) and what it returns (one-time registration steps). This uniquely distinguishes it from all sibling tools, which handle simulation configuration rather than app registration.

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

Usage Guidelines4/5

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

The description provides clear context for use: it creates the registration file for pktctl's configured app id and secret, and notes 'Works while Packet Tracer still rejects pktctl.' This tells the agent when the tool is applicable, though it does not explicitly name alternatives or exclusions. For a setup-only tool, the implied usage is sufficient.

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

set_web_pageB

Write a page of a server's HTTP service, for example index.html.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPage name, for example `index.html`.
deviceYes
contentsYesHTML contents.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
bytesYes
deviceYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the agent knows the call mutates state but is not flagged destructive. The description adds the useful context that this writes into an HTTP service, but says nothing about overwrite behavior when the page already exists, permissions, or failure modes — the main behavioral question for a file-writing tool.

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

Conciseness4/5

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

A single, front-loaded sentence with no filler and the example placed immediately after the core statement. Efficient, though extremely short given the tool's mutation semantics.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. However, for a three-required-parameter write tool, the description leaves the device parameter's meaning and overwrite semantics unstated, which an agent needs to call it correctly.

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

Parameters3/5

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

Schema coverage is 67%: url and contents are documented in the schema, while device has no description. The description implies 'server' is the target of device but does not name or constrain it, so it only marginally compensates for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource: 'Write a page of a server's HTTP service', with an example (index.html). An agent can distinguish this from sibling set_server_service, though the description never contrasts the two explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives like set_server_service, browse_web, or host_files. There are no prerequisites, no mention of the device needing to be a server, and no exclusions.

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

show_workspaceA

Switch Packet Tracer's main window between the logical and the physical workspace, for example before a screenshot or a class demo.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewYesWhich workspace Packet Tracer should show.

Output Schema

ParametersJSON Schema
NameRequiredDescription
physicalYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already disclose readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the agent knows this mutates local UI state without destroying data. The description reinforces that by framing the action as a window/view switch rather than a content change, but says nothing about whether the visible workspace persists into a saved file or what happens if no network is open.

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

Conciseness5/5

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

A single front-loaded sentence states the action, the two states, and example triggers with zero filler. Nothing here could be removed without losing meaning.

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

Completeness4/5

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

The tool is simple, has an output schema (so return values need no description), and its safety profile is covered by annotations. The only unaddressed items are environmental prerequisites such as requiring an open network, which is a small omission for a view toggle.

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

Parameters3/5

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

With schema description coverage at 100% and a single required enum parameter documented in the schema, the schema already carries the parameter semantics. The description adds no format, persistence, or default information beyond it, so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb ('Switch') and resource ('Packet Tracer's main window'), plus the two target states (logical/physical workspace). An agent immediately knows this is a UI view toggle, not a data operation. It doesn't explicitly contrast with any sibling, but no sibling competes for this behavior, so the minor gap is in explicit differentiation only.

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

Usage Guidelines4/5

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

It provides concrete triggering contexts ('before a screenshot or a class demo'), which is clear when-to-use guidance rather than mere restatement. It stops short of stating any when-not or prerequisites (e.g. needing an open network), so it is not fully exhaustive.

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

simulation_modeB

Switch between Realtime and Simulation mode. Returns the mode, the simulation clock and how many events are recorded.

ParametersJSON Schema
NameRequiredDescriptionDefault
onYes`true` for Simulation mode, `false` for Realtime.

Output Schema

ParametersJSON Schema
NameRequiredDescription
timeYesSimulation clock in milliseconds.
eventsYesEvents recorded so far.
simulationYes
current_eventYesIndex of the event the simulation is at; `back` moves it without deleting events.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already establish that this is a non-readonly, non-destructive, closed-world operation, so the safety profile is covered. The description adds the return contents (mode, simulation clock, recorded-event count), but omits meaningful behavior such as whether switching modes resets or preserves the simulation clock and recorded events.

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

Conciseness5/5

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

Two tight sentences with the action front-loaded and the return summary second. Every word earns its place with no redundancy.

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

Completeness3/5

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

For a simple single-boolean toggle with a full output schema and annotations, the description is adequate but thin. It does not address side effects of switching modes (clock reset, event retention) or point to the sibling tools used to advance or inspect simulation state.

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

Parameters3/5

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

Schema description coverage is 100% for the single boolean 'on' parameter, and the schema already documents that true=Simulation and false=Realtime. The description's mention of switching modes adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource ('Switch between Realtime and Simulation mode') and clarifies the return payload. It is clear on its own, though it does not name or contrast with closely related siblings such as simulation_step or fast_forward.

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

Usage Guidelines2/5

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

The description never says when to use this tool versus alternatives like simulation_step, fast_forward, or watch_events, nor does it state prerequisites or when not to switch modes. Usage must be inferred entirely from the name.

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

simulation_stepA

Advance the simulation (forward, like Capture/Forward), go back, or reset the event list. Needs Simulation mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
timesNoHow many steps for `forward` and `back`. Defaults to 1, maximum 200.
actionNo`forward` (Capture/Forward), `back`, or `reset` (clears the event list).

Output Schema

ParametersJSON Schema
NameRequiredDescription
timeYesSimulation clock in milliseconds.
eventsYesEvents recorded so far.
simulationYes
current_eventYesIndex of the event the simulation is at; `back` moves it without deleting events.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the read/write and safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description adds real context beyond that: it discloses that reset clears the event list and that Simulation mode is required. There is mild tension between 'clears the event list' and destructiveHint=false, but since the cleared state is simulation event data rather than persistent user content, this is a nuance rather than a contradiction.

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

Conciseness4/5

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

Two short sentences, front-loaded with the three possible actions and their meanings, with the prerequisite appended last. No filler, though the parenthetical 'like Capture/Forward' is only meaningful to a user already familiar with the UI.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the description covers the action set and the mode prerequisite adequately for a two-parameter tool. The remaining gap is sibling disambiguation (fast_forward, list_simulation_events), which leaves a small inference burden on the agent.

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

Parameters3/5

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

Schema description coverage is 100%, so both the action enum and the `times` parameter (default 1, max 200) are already fully documented in the schema. The description restates the three action meanings but adds nothing about the step count, so the schema is doing the heavy lifting and baseline 3 applies.

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

Purpose4/5

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

The description names specific actions (advance forward, go back, reset the event list) against a clear resource (the simulation), and the 'Capture/Forward' analogy pins down the exact domain semantics. It does not, however, differentiate itself from the close sibling fast_forward, so an agent still has to guess which stepping tool to pick.

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

Usage Guidelines3/5

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

'Needs Simulation mode' gives a genuine prerequisite for use, which is more than most definitions offer. But there is no guidance on when to prefer this over fast_forward, list_simulation_events, or watch_events, so the usage boundary is only implied.

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

statusA
Read-only

Check whether Packet Tracer is reachable and summarize the open network. When it is not reachable, problem explains what to fix.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
addrNoWhere Packet Tracer answered, for example `127.0.0.1:39001` after a restart.
linksNo
devicesNo
problemNo
connectedYes
pt_versionNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the useful detail that it summarizes the open network and that `problem` covers the unreachable case, but says nothing about latency, failure modes, or partial-reachability behavior.

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

Conciseness5/5

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

Two tight sentences with no waste, front-loading the primary action (reachability check) before the fallback routing to `problem`.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and the description covers both the check and the network summary. Complete enough for a no-arg diagnostic tool, with only minor gaps around failure semantics.

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

Parameters4/5

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

Zero parameters, so the baseline of 4 applies; there is no parameter semantics to add or omit.

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

Purpose4/5

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

States a specific verb and resource: checks Packet Tracer reachability and summarizes the open network. An agent knows exactly what it returns, though it doesn't contrast itself with siblings like network_description or show_workspace that also surface network state.

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

Usage Guidelines3/5

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

Implies usage as a health/reachability probe and points to `problem` for the failure case, but never states when to prefer this over alternatives or any preconditions. Adequate but with clear gaps.

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

unlock_activityA

Give a password-protected activity its password (for its author or instructor) so Packet Tracer reports scores and runs checks. activity_status shows password_confirmed: false when this is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesThe activity's password, as set by its author.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileYes
itemsNoAssessment items (the Check Results tree).
pointsNoAssessment points.
is_activityYes
seconds_leftNoSeconds left when the activity has a countdown timer.
score_percentNo
seconds_elapsedNo
percent_completeNo
instruction_pagesNo
password_confirmedNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations establish it is a non-read-only, non-destructive, closed-world action; the description adds real context beyond that by stating the consequence of unlocking (Packet Tracer reports scores and runs checks) and implying an author/instructor authorization scope. No permissions or failure modes are detailed, so not a 5.

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

Conciseness4/5

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

Two tight sentences, with the action and audience front-loaded and the status check placed second. No filler, though the parenthetical audience clause slightly interrupts the main action.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter mutation with an output schema and annotations covering the safety profile, the description supplies the essential trigger and effect. Return values need not be explained given the output schema, but error/password-mismatch behavior is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is fully described there ('as set by its author'). The description adds no syntax, format, or sourcing 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('give a password-protected activity its password') and its functional payoff (scores reported, checks run). It also references the sibling activity_status, which helps distinguish it, though the phrasing 'give ... its password' is slightly indirect versus a plain 'unlock'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit trigger: use this when activity_status reports password_confirmed: false. That is concrete when-to-use guidance tied to a sibling tool, though it doesn't state when NOT to use it or what happens if the activity is already unlocked.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vpn_clientA

Use the VPN app of a PC, laptop or server against an Easy VPN server: connect with server, group, group_key, username and password and wait for the tunnel, disconnect, or status. Returns whether the tunnel is up and the address the server assigned.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupNoConnect: the group name, as in `crypto isakmp client configuration group`.
actionNo`status` (default), `connect` or `disconnect`.status
deviceYesPC, laptop or server whose VPN app to use.
serverNoConnect: Host IP, the Easy VPN server's address.
passwordNoConnect: that user's password.
usernameNoConnect: user name the server authenticates.
group_keyNoConnect: Group Key, the group's `key`.
timeout_secsNoSeconds to wait for the tunnel. Defaults to 15, maximum 300.

Output Schema

ParametersJSON Schema
NameRequiredDescription
groupNo
deviceYes
serverNo
usernameNo
connectedYes
tunnel_ipNoThe address the server assigned inside the tunnel.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark it as a non-read-only, non-destructive, closed-world operation. The description adds valuable behavioral context beyond the annotations: `connect` blocks and waits for the tunnel, and the result reports whether the tunnel is up plus the assigned address. Per-action side effects are thus disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense but well front-loaded sentence: the general purpose comes first, then the action-specific requirements, then the return value. No wasted sentences, though the parameter list makes it slightly heavy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the safety profile, the description need not expand on returns or permissions. It covers all three actions adequately; only the lack of explicit sibling routing keeps it from being fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema (including the timeout default of 15 and max of 300). The description only groups which params apply to `connect`, matching the schema rather than adding new meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: using a device's VPN app against an Easy VPN server, with the three actions (connect/disconnect/status) named. It is clear what the tool does, though it does not explicitly distinguish itself from the sibling tools literally named `connect` and `disconnect`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what each action does and that `connect` requires server, group, group_key, username and password, which implies when to call each. However, it gives no explicit guidance on when to choose this tool over siblings like `connect` or `connect_wireless`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

watch_eventsA
Read-only

Listen to Packet Tracer's live IPC events for a few seconds and return them: devices and links added or removed, console output, simulation steps, ARP and DHCP activity, and 200 more across 73 classes. Start something (for example with another tool call in parallel, or by hand in Packet Tracer) and see what it triggers. describe_ipc with events lists the classes and names.

ParametersJSON Schema
NameRequiredDescriptionDefault
classYesObject class raising the events, for example `LogicalWorkspace`, `TerminalLine` or `Simulation`. `describe_ipc` with `events` lists them all.
eventsNoEvent names, for example `["deviceAdded", "linkCreated"]`. Omit for every event of the class.
objectNoOnly events from this object, by uuid (as returned by `call_ipc`). Omit for every object.
secondsNoHow long to listen. Defaults to 10 seconds, maximum 120.
max_eventsNoStop after this many events. Defaults to 100, maximum 1000.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventsYes
truncatedYesTrue when `max_events` stopped the watch before `seconds` elapsed.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe, non-mutating read, so the bar is lower. The description adds genuinely useful behavior beyond the annotations: the call blocks for a bounded period, it only reports what is triggered during that window, and it must be run concurrently with an action that produces events. Defaults and caps (10s/120s, 100/1000 events) live in the schema rather than the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with what is returned, then how to drive it, then where to find valid values. The final sentence about describe_ipc partially duplicates the schema text on the class and events fields, which is the only mild redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description is not obliged to explain return values, and annotations cover the safety profile. It supplies the two things an agent could not infer: the need to trigger activity concurrently and the bounded listening window. The only omission is explicit routing away from the similarly named list_simulation_events.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including class, events, object, seconds and max_events is already documented in the schema. The description only reinforces the class/events examples and points at describe_ipc for valid names, adding little beyond the structured fields. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (listen to / return) and resource (Packet Tracer's live IPC events), with concrete scope: a bounded listening window and a sample of the event families captured (deviceAdded, console output, simulation steps, ARP/DHCP). It stops short of explicitly distinguishing itself from the similar-sounding sibling list_simulation_events, so an agent must still infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating guidance: the tool must be paired with something that generates events, either another tool call in parallel or a manual action in Packet Tracer, and points to describe_ipc for enumerating valid classes/event names. It never states when not to use this versus list_simulation_events or call_ipc, so no exclusion guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wireless_statusB
Read-only

Read the wireless settings of an access point, wireless router or client, and for clients which access point they are associated with.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
roleYes`access_point` or `client`.
ssidYes
deviceYes
securityNo
access_pointNo
broadcast_ssidNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context for clients (reporting which access point they are associated with), but it does not discuss permissions, output format, or other operational traits beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. It efficiently states the action, resource, and target device scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read-only operation with one parameter, an output schema, and annotations that cover safety. The description explains what is read and the device scope, so it is largely complete. The main gap is the lack of parameter identifier format, but output schema richness reduces the overall burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It implies the 'device' parameter refers to an access point, wireless router, or client, which gives some semantic meaning. However, it does not specify expected identifier format (name, MAC, etc.) or otherwise fully document the lone parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Read) and resource (wireless settings) and identifies the target devices: access point, wireless router, or client. It also clarifies that for clients it reports the associated access point. It does not explicitly differentiate itself from sibling tools such as configure_access_point or connect_wireless, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what is read but gives no guidance on when to use this tool versus alternatives like configure_access_point or connect_wireless. There is no mention of prerequisites, when-not-to-use, or explicit alternatives, leaving usage context to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 72 tool updatesv0.2.2
    • First observedactivity_instructions
    • First observedactivity_status
    • First observedadd_device
    • First observedadd_location
    • First observedadd_module
    • First observedadd_note
    • First observedadd_pdu
    • First observedadd_server_user
    • First observedarrange_devices
    • First observedbrowse_web
    • First observedcall_ipc
    • First observedcheck_activity
    • First observedconfigure_access_point
    • First observedconfigure_dhcp_server
    • First observedconfigure_dns_server
    • First observedconfigure_email
    • First observedconfigure_host
    • First observedconfigure_host_ipv6
    • First observedconfigure_ios
    • First observedconnect
    • First observedconnect_wireless
    • First observeddescribe_ipc
    • First observeddisconnect
    • First observeddraw
    • First observedfast_forward
    • First observedget_preferences
    • First observedhost_files
    • First observedlist_devices
    • First observedlist_drawings
    • First observedlist_links
    • First observedlist_locations
    • First observedlist_models
    • First observedlist_notes
    • First observedlist_ports
    • First observedlist_server_services
    • First observedlist_simulation_events
    • First observedlist_slots
    • First observedmove_device
    • First observedmove_to_location
    • First observednetwork_description
    • First observednew_network
    • First observedopen_network
    • First observedpower_cycle_all
    • First observedreceive_email
    • First observedremove_device
    • First observedremove_drawing
    • First observedremove_location
    • First observedremove_module
    • First observedremove_note
    • First observedrename_device
    • First observedrename_location
    • First observedreset_activity
    • First observedrun_cli
    • First observedrun_host_command
    • First observedsave_network
    • First observedscreenshot
    • First observedsend_email
    • First observedset_background
    • First observedset_host_firewall
    • First observedset_power
    • First observedset_preferences
    • First observedset_server_service
    • First observedset_web_page
    • First observedsetup_exapp
    • First observedshow_workspace
    • First observedsimulation_mode
    • First observedsimulation_step
    • First observedstatus
    • First observedunlock_activity
    • First observedvpn_client
    • First observedwatch_events
    • First observedwireless_status

TDQS

B3.4/5.0

Scored across 72 tools

Disambiguation4/5

Most tools target a clearly distinct resource and action, and descriptions often guide the agent toward the right tool. A few overlaps remain, such as set_server_service versus configure_dhcp_server/configure_dns_server, and add_device versus add_module, which could cause occasional misselection.

Naming Consistency4/5

The set is predominantly consistent snake_case with verb_noun naming (e.g., add_device, list_ports, configure_ios). Minor deviations like status, screenshot, draw, connect, and disconnect are still readable and predictable, so the pattern holds strongly.

Tool Count1/5

With 72 tools, the server far exceeds the recommended 3–15 range and lands in the rubric's extreme mismatch tier (50+ tools). Even though the domain is broad, this volume creates a heavy selection and maintenance burden for an agent.

Completeness5/5

The surface covers network creation, device and module lifecycle, cabling, logical and physical workspace, activities, simulation, server services, email, wireless, VPN, firewall, CLI and host commands, files, preferences, screenshots, and IPC escape hatches. Generic tools like call_ipc, run_cli, and run_host_command close remaining gaps, so no major dead ends are apparent.

Maintenance

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers