Skip to main content
Glama
uni-t-uts-mcp

uni-t-uts-mcp

by Reid-n0rc

scpi_command

Destructive

Send raw SCPI commands to a spectrum analyzer when no dedicated tool exists. Blocked safety-denylisted commands run only with confirm set to true; queries must use scpi_query.

Instructions

Send a raw SCPI command (no reply expected) to the analyzer. Escape hatch for commands without a dedicated tool. Commands that reset the instrument, change network settings, lock the panel or write files are refused unless confirm=true. Queries are refused; use scpi_query.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "command": "<command>"
    },
    "name": "scpi_command"
  }
}

Input Schema

NameRequiredDescriptionDefault
commandYesSCPI command, e.g. ':FREQuency:CENTer 1 GHz'
confirmNoSet true to allow a command on the safety denylist (e.g. *RST). Only with the user's approval.
instrumentNoWhich instrument to use (a name from list_instruments). Default: the `default` instrument, or the only one configured

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false and destructiveHint=true, and the description adds substantial value on top: it enumerates the refused command categories (reset, network changes, panel lock, file writes) and the confirm override. It does not say what a refusal looks like (error vs. silent no-op) or confirm the return behavior beyond 'no reply expected', which is the 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.

Conciseness5/5

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

Three tight sentences, front-loaded with the action, then scope, then safety gate. No sentence is redundant and the most actionable constraint (the denylist and confirm) is placed early.

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

Completeness4/5

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

For a destructive, parameterized command tool with full schema coverage and clear annotations, the definition covers purpose, safety gating, and the query alternative. The only omission is the observable outcome of a refused command and whether success yields any confirmation.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters are already documented, including the confirm denylist note and the instrument default. The description reinforces the confirm semantics but adds no syntax or format detail beyond what the schema already carries, so baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource ('Send a raw SCPI command ... to the analyzer') and immediately positions it against the sibling query tool by noting 'no reply expected' and 'use scpi_query' for queries. An agent can distinguish it from scpi_query without inspecting 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 Guidelines5/5

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

It explicitly frames the tool as an 'escape hatch for commands without a dedicated tool', names the excluded case (queries) and its alternative, and gives the exact condition for the escape path (confirm=true with the user's approval). Both when-to-use and when-not-to-use are covered.

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