Skip to main content
Glama
Gigaclank

rs3005p-mcp

by Gigaclank

rs3005p-mcp

An MCP server that lets AI agents control an RS PRO RS-3005P (or RS-6005P) digital programmable DC power supply over its USB / RS232 serial interface.

It implements the documented RS Series Remote Control Syntax V2.0 (KORAD-compatible) and exposes voltage/current control, live measurements, output and over-current-protection switching, and panel-memory save/recall as MCP tools.

Supported hardware

Model

Voltage

Current

Remote interface

RS-3005P

0–30 V

0–5 A

USB + RS232

RS-6005P

0–60 V

0–5 A

USB + RS232

The non-P variants (RS-3005D / RS-6005D) have no remote interface and cannot be driven by this server.

Serial settings (fixed by the firmware): 9600 baud, 8 data bits, no parity, 1 stop bit, no flow control.

Related MCP server: ScopeMCP

Install

uv venv
uv pip install -e .

Run

The server speaks MCP over stdio:

uv run rs3005p-mcp

Claude Code / Claude Desktop config

{
  "mcpServers": {
    "rs3005p": {
      "command": "uv",
      "args": ["run", "rs3005p-mcp"],
      "cwd": "C:/path/to/rs3005p-mcp"
    }
  }
}

Tools

Tool

Purpose

list_serial_ports

Discover the COM/tty port the supply is on.

connect

Open the port, pick the model, verify with *IDN?.

disconnect

Close the connection.

get_identification

Read the *IDN? string.

get_safety_profile

Read the active safety envelope (read-only).

list_devices

List device profiles in the library + which is active.

select_device

Switch active profile (widening needs confirm_widen).

set_voltage

Set the voltage setpoint (range + safety validated).

set_current

Set the current limit (range + safety validated).

ramp_voltage

Ramp voltage to a target within the slew limit.

power_up

Bring the DUT to its profile's nominal operating point.

get_setpoints

Read configured voltage & current setpoints.

measure

Read actual output voltage & current.

set_output

Enable/disable the output terminals.

set_ocp

Arm/disarm over-current protection.

get_status

Decoded status: output, CV/CC mode, OCP.

get_state

Full snapshot (setpoints + measurements + status).

save_settings

Store panel settings to memory slot 1–5.

recall_settings

Recall panel settings from memory slot 1–5.

Safety profiles (protecting attached devices)

To stop an agent from over-driving the device wired to the terminals, supply a device-profile library at launch. It defines a safe envelope (voltage / current / power ceilings, output gating, slew limit) per device; the server rejects any agent request that would leave it. Profiles are set by the operator at startup and cannot be changed by any tool.

rs3005p-mcp --profile devices.json --device 24v-sensor

RS3005P_DEVICE/--device is only the default; an agent can switch among the curated devices at runtime with select_device (widening the envelope requires confirm_widen=true) and devices.json edits hot-reload on the next connect/select_device — no re-registration. No tool can create or modify a profile's limits; the file stays operator-curated.

See docs/safety.md and examples/devices.example.json. With no profile the server runs limited only by hardware (30 V / 5 A) and says so on every connect.

A typical agent flow:

  1. list_serial_ports → find the port.

  2. connect(port="COM4") → verifies identity, applies RS-3005P limits.

  3. set_voltage(5.0), set_current(0.5).

  4. set_output(True).

  5. measure() → live readings.

Development

uv pip install -e ".[dev]"
uv run pytest

Tests run against an in-memory device emulator (tests/conftest.py), so no hardware is required. See docs/ for the protocol reference and architecture notes.

License

MIT.

Available Tools

14 tools
connectA

Open a serial connection to the power supply and verify it responds.

Args: port: Serial port name, e.g. COM4 or /dev/ttyUSB0. model: One of the supported models (sets the voltage/current limits). Defaults to RS-3005P (0-30 V, 0-5 A). baudrate: Serial baud rate; the manual specifies 9600.

Returns the device identification string and the active output limits.

ParametersJSON Schema
NameRequiredDescriptionDefault
portYes
modelNoRS-3005P
baudrateNo

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the return value but omits potential side effects (e.g., behavior if already connected), error handling, or timeout details.

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 concise, well-structured with Args and Returns sections, and front-loaded with the primary purpose. Every sentence adds value.

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?

Given no output schema and no annotations, the description covers parameters and return value adequately. However, it lacks mention of error conditions, prerequisites, or state changes, leaving some gaps.

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 0% schema description coverage, the description compensates by detailing port format, model defaults and effect on voltage/current limits, and baudrate default. This adds significant meaning 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?

The description explicitly states the tool opens a serial connection and verifies response, with clear verb and resource ('Open a serial connection to the power supply'). It distinguishes from siblings like disconnect or get_identification.

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 explains the tool's purpose as establishing a connection, which is clearly the prerequisite for other operations. It provides examples and defaults but does not explicitly state when not to use it or alternatives.

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

disconnectA

Close the serial connection to the power supply.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations; description does not disclose side effects, error behavior if called without connection, or state transitions.

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, all words essential, front-loaded with verb and object.

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?

Adequate for a simple tool but lacks context on disconnection effects or error handling given sibling tool complexity.

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

Parameters4/5

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

No parameters; description adds no extra info beyond schema, but baseline for 0-param tools is 4.

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?

Description states verb 'Close' and resource 'serial connection to the power supply', clearly distinguishing from siblings like 'connect'.

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?

Implied usage as inverse of 'connect', but no explicit guidance on prerequisites or scenarios to avoid.

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

get_identificationA

Return the instrument identification string (*IDN?).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

The description discloses the SCPI command, adding context beyond the name. However, with no annotations, it does not mention any behavioral aspects like idempotency, speed, or lack of side effects. For a simple read operation, this is adequate but minimal.

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

Conciseness5/5

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

The description is a single sentence, front-loading the purpose with no extraneous information. Every word is necessary and earned.

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?

Given no parameters and an existing output schema, the description sufficiently covers the tool's behavior. It states the return value is a string (the identification string), which is complete for this simple query.

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 no parameters, so the schema coverage is 100% (trivially). The description adds no parameter info, which is acceptable since none exist. Baseline of 4 applies as there is nothing to explain.

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 clearly states the tool returns the instrument identification string with the specific SCPI command `*IDN?`. The verb 'Return' and resource 'instrument identification string' are unambiguous, and it distinguishes itself from sibling tools like get_state, get_status, etc., which serve different purposes.

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

Usage Guidelines4/5

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

While no explicit when-to-use or alternatives are given, the tool's purpose is self-evident as a standard query for instrument identity. The context of sibling tools implies it should be used after connection, but no exclusions are provided. This is a minor gap for a straightforward tool.

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

get_setpointsA

Return the configured voltage and current setpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It accurately states the return value but does not disclose idempotency, side effects, or potential errors. Adequate but minimal.

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

Conciseness5/5

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

Single sentence, no unnecessary words. Front-loaded with verb and resource.

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 zero parameters and no output schema, the description adequately explains what is returned. However, it could specify that these are configured (not measured) values, which is implied but not explicit.

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?

No parameters exist, so schema coverage is 100%. The description does not need to add parameter details, but it could hint at the return format.

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 uses the specific verb 'Return' and resource 'configured voltage and current setpoints', clearly distinguishing it from sibling tools like get_state or get_identification.

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 tool versus alternatives such as measure (which returns actual values) or get_status. The description lacks context about prerequisites or exclusions.

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

get_stateA

Return a full snapshot: setpoints, live measurements and status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must disclose behaviors. It clearly indicates a read operation ('Return a full snapshot') but lacks information on performance, error conditions, or prerequisites.

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 sentence with no wasted words, front-loaded with the action, and efficient for a simple 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?

Given no parameters and no output schema, the description is largely complete for a snapshot tool, though it could mention if a connection is required or specify the source device.

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?

No parameters exist in the input schema, and schema coverage is 100%. The baseline for zero parameters is 4, and the description does not need to add parameter information.

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 uses a specific verb 'Return' and clearly defines the resource as 'a full snapshot' that includes setpoints, live measurements, and status, which distinguishes it from sibling tools like get_setpoints and get_status.

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 use for comprehensive state retrieval but does not explicitly state when to use it versus alternatives, nor does it mention conditions like requiring a prior connection.

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

get_statusA

Return decoded device status: output state, CV/CC mode, OCP state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It does not state whether the tool is read-only, safe to call repeatedly, or requires prior connection. The term 'decoded' hints at processing but lacks clarity on side effects or data freshness.

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, well-structured sentence that front-loads the purpose and provides specific details. 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 simplicity (no params, no output schema), the listing of three return components is adequate. However, it could mention that status is from the currently connected device, which is implied by sibling tools but not explicit.

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 has zero parameters and 100% schema description coverage. The description adds no parameter info but is sufficient since there are none. Baseline for 0 params is 4.

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 clearly states the verb 'Return' and the resource 'decoded device status', specifying three concrete components: output state, CV/CC mode, OCP state. This distinguishes it from siblings like get_state or get_identification.

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 is provided on when to use this tool vs alternatives such as get_state or get_setpoints. There is no mention of prerequisites, recommended contexts, or exclusions.

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

list_serial_portsA

List serial ports available on this machine.

Use this to find the port the power supply is on (it enumerates as a USB virtual COM port, e.g. COM4 on Windows or /dev/ttyUSB0 on Linux).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. While listing ports is inherently safe, the description does not explicitly state side effects, permissions, or other behavioral traits, leaving room for ambiguity.

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 concise sentences: the first states the core action, the second adds context for use. No wasted words or 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?

Given the tool's simplicity (no parameters, clear purpose) and the presence of an output schema, the description is complete. It explains the tool's purpose and provides a usage example.

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 has no parameters, and schema coverage is 100%, so baseline 4 is appropriate. The description adds no additional parameter info, which is acceptable.

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 clearly states the tool lists serial ports available on the machine, with a specific verb and resource. It distinguishes well from sibling tools that operate on connected devices.

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 advises using this tool to find the port where the power supply is connected, providing context. However, it does not explicitly state when not to use it or compare to alternatives beyond that.

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

measureA

Read the actual output voltage (V) and current (A) at the terminals.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It correctly identifies a read operation but does not explicitly state non-destructiveness or other behavioral traits like required device state.

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 that is front-loaded and contains no wasted words. It efficiently conveys the core function.

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?

The tool is simple with no output schema. The description covers the measurement purpose but lacks details on return format, units explicitly, or any conditions under which readings might be unavailable.

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 has zero parameters, so the schema coverage is 100%. The description adds no parameter details, which is appropriate as none exist. Baseline for 0 parameters is 4.

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

Purpose5/5

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

The description clearly states the tool reads actual output voltage and current at the terminals. It distinguishes from sibling tools that set values or read other parameters.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The usage is implied by the context of sibling tools, but no alternatives or prerequisites are mentioned.

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

recall_settingsB

Recall panel settings from memory slot (1-5).

ParametersJSON Schema
NameRequiredDescriptionDefault
slotYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose whether the operation is destructive, changes device state, or requires specific permissions. It only states the action without behavioral context.

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

Conciseness4/5

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

The description is one sentence, front-loaded with the key action and parameter. It is efficient, leaving no wasted words.

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

Completeness2/5

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

The description is minimal and does not explain what 'panel settings' are, the effect of recalling them (e.g., applied immediately? returned as data?), or error handling. With no output schema, more context is needed for an agent to use it correctly.

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

Parameters3/5

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

The description adds the valid range (1-5) for the 'slot' parameter, which is not enforced in the schema. However, it does not explain the meaning of the slots or any default behavior. Schema coverage is 0%, so this partial addition is adequate but not comprehensive.

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 clearly states the verb 'Recall' and the resource 'panel settings', specifying the memory slot (1-5). This distinguishes it from sibling tools like 'save_settings', which does the opposite.

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 tool versus alternatives. It does not explain prerequisites, when not to use it, or mention related tools like 'save_settings'.

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

save_settingsA

Store the current panel settings into memory slot (1-5).

ParametersJSON Schema
NameRequiredDescriptionDefault
slotYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. It only states 'Store the current panel settings' without disclosing whether saving overwrites existing settings in the slot, if the panel must be in a specific state, or any side effects like clearing previous settings. This lack of detail limits transparency.

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, two-part sentence that efficiently conveys the tool's purpose and the slot range. It is front-loaded and contains no extraneous words, making it easy to parse.

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

Completeness3/5

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

For a one-parameter tool with no output schema, the description covers the core action but omits contextual details like return values, error handling, or whether saving is destructive. It is minimally adequate but could be more complete for a novice agent.

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 schema has 0% description coverage for the 'slot' parameter. The tool description adds crucial semantic context by indicating the slot range '(1-5)', which is not present in the schema. This helps the agent understand valid input values, though it does not explain what happens with invalid slots.

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 explicitly states 'Store the current panel settings into memory slot (1-5)', specifying the verb 'store', the resource 'panel settings', and the target 'memory slot'. It clearly distinguishes from sibling tools like 'recall_settings' which loads settings, and other tools that set individual parameters.

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 is provided on when to use this tool versus alternatives like 'recall_settings' or the various set commands. The description does not mention prerequisites or context for saving settings, leaving the agent to infer usage from the name.

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

set_currentA

Set the output current limit, in amps (0-5 A).

In constant-current operation this is the current the supply holds the output to; rejected if outside the model's range.

ParametersJSON Schema
NameRequiredDescriptionDefault
ampsYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It states the effect (set current limit) and rejection condition, but omits important details: whether changes take effect immediately, if they persist, return values, or side effects like output state changes. More context is needed for a write 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?

Two concise sentences, front-loaded with the main purpose. No unnecessary words or repetition. Every sentence adds value.

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?

Given the simplicity of the tool (one param, no output schema, no annotations), the description covers the core functionality but lacks completeness on success indicators, error behavior, and immediate effects. It is adequate but not thorough.

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 single parameter 'amps' has 0% schema coverage. The description adds unit (amps) and range (0-5 A), which is helpful but incomplete—it doesn't specify data type (float vs integer), precision, or step size. For a single param, more detail would improve clarity.

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 clearly states the verb 'Set' and the resource 'output current limit', with a specific range (0-5 A). It distinguishes from sibling tools like set_voltage and set_ocp by specifying it's for constant-current operation.

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

Usage Guidelines3/5

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

The description mentions that the value is rejected if outside the model's range, providing a basic condition for when-not-to-use. However, it lacks explicit guidance on when to use this tool versus alternatives like set_voltage or set_output, and does not specify prerequisites such as output state.

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

set_ocpA

Arm (True) or disarm (False) over-current protection.

When armed, the output is cut off if the current reaches the setpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes

TDQS

A3.8/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It discloses that arming cuts output when current reaches setpoint, but does not mention side effects like immediate disarming behavior, persistence across cycles, or whether a fault state is cleared.

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 core action, and no wasted words. Every sentence adds value.

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 boolean tool with no output schema, the description is largely complete: it explains parameter meaning and behavior. Minor omissions (e.g., no mention of return value or immediate effect) prevent a perfect score.

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 0%, so description adds meaning. It maps the boolean 'enabled' to arm/disarm and explains the functional consequence. This compensates well for the sparse 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?

The description clearly specifies that the tool arms (True) or disarms (False) over-current protection, and explains the effect when armed. It uses a specific verb-resource pair and distinguishes from sibling tools like set_current and set_output.

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 provides no guidance on when to use this tool vs alternatives, no prerequisites, and no mention of device state requirements. It does not help the agent decide contextually.

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

set_outputB

Enable (True) or disable (False) the output terminals.

Enabling makes the terminals live at the configured setpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes

TDQS

B3.2/5.0
Behavior3/5

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

Description explains effect (terminals live at setpoints) but omits side effects, safety, or revertibility. No annotations to supplement.

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 concise sentences with key information front-loaded. No unnecessary words.

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?

Adequate for a simple tool but lacks usage guidance and behavioral depth for safe 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?

Parameter 'enabled' is explained as True=enable, False=disable, which adds value over raw schema. No default or format details.

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 clearly states the tool enables or disables output terminals, distinguishing it from sibling tools that set parameters like voltage or current.

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 tool versus connect/disconnect or set_* tools. No prerequisites or context provided.

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

set_voltageA

Set the output voltage setpoint, in volts.

Rejected if outside the connected model's range (e.g. 0-30 V on RS-3005P).

ParametersJSON Schema
NameRequiredDescriptionDefault
voltsYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description must carry burden. Mentions rejection if outside range but omits other behaviors like whether it requires device connection or 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?

Two concise sentences with no wasted words, clearly front-loaded with the purpose.

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?

Given no output schema or annotations, the description covers basic purpose and a constraint, but does not mention prerequisites like device connection or that it's a setpoint (not actual output).

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 0% schema coverage, description explains the 'volts' parameter (unit, range example), adding value beyond the schema type.

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 clearly states the action (set output voltage setpoint) and the unit (volts). It distinguishes from siblings like set_current by specifying voltage.

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

Usage Guidelines3/5

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

No explicit guidance on when to use vs alternatives (e.g., set_output). Implied usage but lacks exclusions or context for the choice.

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. 14 tool updatesv0.1.0
    • First observedconnect
    • First observeddisconnect
    • First observedget_identification
    • First observedget_setpoints
    • First observedget_state
    • First observedget_status
    • First observedlist_serial_ports
    • First observedmeasure
    • First observedrecall_settings
    • First observedsave_settings
    • First observedset_current
    • First observedset_ocp
    • First observedset_output
    • First observedset_voltage

TDQS

A3.9/5.0

Scored across 14 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: connection management, configuration, measurement, status queries, memory operations, and output control. No two tools overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., set_voltage, get_state, list_serial_ports), making them predictable and easy to distinguish.

Tool Count5/5

14 tools cover the essential operations for a programmable power supply without being excessive. Each tool serves a clear purpose, and the count is well-scoped for the domain.

Completeness4/5

The tool set covers core operations: connection, configuration, measurement, status, memory, and protection. Minor omissions like a factory reset or calibration tool are present but not critical for typical use.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that enables AI agents to operate an oscilloscope through high-level tools like signal capture and measurement, abstracting vendor-specific SCPI commands.
    18
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that connects AI assistants to the Owon DS1102 oscilloscope, enabling waveform capture, measurement retrieval, and remote control of scope settings.
    GPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for controlling B&K Precision and Manson bench power supplies, enabling voltage/current setting, output switching, and power cycling.
    8
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for reading and controlling an OWON SPE6103 programmable DC power supply over USB serial, with safety checks and verified SCPI commands.
    MIT