Skip to main content
Glama

Run a read-only command

run_command
Read-only

Runs one read-only terminal command on a Packet Tracer device and returns its output, letting students inspect device state or test reachability while configuration changes stay with them.

Instructions

Run one read-only command on a device's terminal and return its output. IOS devices (routers, switches) accept 'show ...', 'ping' and 'traceroute'. End devices (PCs, servers) accept 'ipconfig', 'ping', 'tracert', 'arp -a', 'nslookup' and 'netstat'. Configuration commands are refused: the student makes the changes, the tutor only looks. In hint-only mode, 'show running-config' and 'show startup-config' are refused too.

Input Schema

NameRequiredDescriptionDefault
deviceYesDevice name exactly as shown on the canvas.
commandYesA single command, e.g. 'show ip route' or 'ping 192.168.1.1'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, and the description earns credit beyond that: it enumerates which command families are allowed per device class, discloses that configuration commands are refused, and adds the non-obvious mode-dependent restriction that 'show running-config'/'show startup-config' fail in hint-only mode. That is exactly the kind of behavioral context annotations cannot express.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the core action, then platform allowlists, then refusal semantics. Every sentence carries actionable information 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?

Covers the two parameters, both platform families, refusal boundaries, and a mode-specific caveat, which is strong for a tool with no output schema. What is missing is any sense of the response shape (raw text vs structured, error format on refusal), though 'return its output' gives the agent a rough expectation.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description adds real meaning by telling the agent what kind of string 'command' must be for each device type, which the schema only illustrates with two generic examples. It does not address the 'device' parameter beyond the schema's exact-name requirement, but that is already well documented.

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 ('run one read-only command on a device's terminal and return its output') and immediately constrains scope by device type. Among siblings (get_device_state, diagnose, tutor_hint) this is clearly the only command-execution tool, so an agent can pick 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?

Gives concrete acceptance criteria per platform (IOS vs end devices) and states explicitly what is refused, including the hint-only mode exception. It never routes the agent to a sibling tool (e.g., 'use diagnose to interpret output' or 'use get_device_state instead of show commands'), so the when-not-to-call-this-tool case is only implied.

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