Skip to main content
Glama

logic-mcp

Vendor-neutral MCP server for logic analyzers. Cursor (or any MCP client) can capture from hardware, open a trace file, decode a bus, and reconstruct a display framebuffer.

DreamSourceLab / DSView, Saleae, and VCD are plugins, not the product name.

Cursor ── stdio MCP ── logic-mcp
                         ├─ in-process: mock / sigrok_cli / dslogic
                         └─ ipc / dsview ── Unix socket ── vendor process
                              └─ LogicCapture → bus decode → DCS log / PNG

What it does

  • Live instrument control — scan, configure, start/stop/wait, export.

  • Offline files — open a capture (DSView CSV today; Saleae CSV / VCD are stubs).

  • Bus decode — Intel 8080 / MCU 8080 parallel is implemented; SPI, I2C, UART are stubs with roles reserved.

  • Upper decode — MIPI DCS / ST7789 command log + optional PNG reconstruction.

Vendors attach in either way:

  1. In-process — Python InstrumentBackend registered on logic_mcp.instruments.

  2. IPC — a long-lived process speaking logic_mcp.instrument.v1 on a Unix socket (patched DSView, or the reference hub logic-mcp-instrument).

MCP tool names stay vendor-neutral. Do not add dsview_set_rate-style tools.

Related MCP server: mcp-sigrok

Status

Layer

Implemented

Stub / placeholder

Instruments

mock, ipc, dsview, sigrok_cli, dslogic

saleae_live

Capture files

DSView / libsigrok4DSL CSV

Saleae CSV, VCD

Buses

i8080

spi, i2c, uart

Devices

mipi_dcs + st7789 profile

other panels via extra YAML

Requirements

  • Python 3.11+

  • uv (recommended) or pip

  • Optional: sigrok-cli on PATH (or SIGROK_CLI) for live sigrok_cli / dslogic

  • Optional: DSView rebuilt with the patch in vendor/dsview (listens on $XDG_RUNTIME_DIR/logic-mcp/dsview.sock)

Install

git clone https://github.com/dengtaowei/logic-mcp.git
cd logic-mcp
uv sync --extra dev
uv run pytest

Cursor MCP

Add to Cursor MCP settings. Point --directory at your clone:

{
  "mcpServers": {
    "logic": {
      "command": "uv",
      "args": ["--directory", "/path/to/logic-mcp", "run", "logic-mcp"]
    }
  }
}

The server speaks MCP over stdio. It returns JSON summaries, not raw sample dumps.

Then open Agent chat and talk to the model; you do not run decode scripts. First session (ST7789 over 8080): examples/README.md.

Workflows

Offline CSV

capture_open(path) → bus_decode(protocol, channel_map)
                  → display_analyze          # command log
                  → display_reconstruct      # command log + PNG

channel_map is required. Values are CSV column names or 0-based indices. A DSView export named RS,CS,RD,WR,DB0…DB7 maps like examples/channel_maps/i8080_dsview.json (dc → RS, not CS).

PNGs land under out/ (or LOGIC_MCP_OUT).

Full config in MCP (mock / sigrok)

instrument_open(backend) → instrument_configure → instrument_capture
→ bus_decode → interpret

CaptureRequest fields: sample_rate_hz, channels, duration_s xor sample_count, optional trigger, extra. There is no channel_count; pass the channel name list.

Config in the vendor GUI (DSView)

Human sets rate, channels, and trigger in DSView. MCP only arms:

instrument_open("dsview") → instrument_start → instrument_wait → instrument_export

hello.configure=false means the GUI owns sample rate and channels. instrument_capture without sample_rate_hz is valid on those backends.

Instrument backends

id

Transport

Config owner

Notes

mock

in-process

MCP

Always available; for tests and the reference hub

sigrok_cli

in-process subprocess

MCP

Portable probe via sigrok-cli

dslogic

in-process subprocess

MCP

sigrok_cli filtered to DreamSourceLab drivers. USB is exclusive: close DSView first.

ipc

Unix socket

advertised by hub

Default $XDG_RUNTIME_DIR/logic-mcp/instrument.sock

dsview

Unix socket

GUI

Default $XDG_RUNTIME_DIR/logic-mcp/dsview.sock. Needs the vendor/dsview patch.

saleae_live

—

—

Unimplemented (Logic 2 Automation API)

Reference hub (wraps an in-process backend behind the socket):

uv run logic-mcp-instrument --socket "$XDG_RUNTIME_DIR/logic-mcp/instrument.sock"
# optional: --backend mock --gui-owned

IPC methods, framing, and states: src/logic_mcp/instrument/PROTOCOL.md.

MCP tools

Inventory: protocol_list, session_status.

Instrument: instrument_list, instrument_scan, instrument_open, instrument_close, instrument_capabilities, instrument_configure, instrument_capture, instrument_start, instrument_stop, instrument_wait, instrument_export.

Decode: capture_open, protocol_roles, bus_decode, interpret, display_analyze, display_reconstruct.

Extending

Entry points in pyproject.toml:

Group

What to implement

logic_mcp.instruments

InstrumentBackend + ConnectedInstrument

logic_mcp.captures

CaptureFormat → LogicCapture

logic_mcp.buses

BusDecoder + channel roles

logic_mcp.devices

upper decoder (e.g. MIPI DCS)

Out of process: listen on the Unix socket and implement hello / status / start / stop / wait / export (and configure / capabilities if you own config). Python reference: logic-mcp-instrument.

When a vendor’s own GUI/SDK must be patched, put a unified diff under vendor/<id>/ (pinned upstream commit + series). Do not copy their whole tree. First example: vendor/dsview.

Panel YAML (profiles/st7789.yaml, or LOGIC_MCP_PROFILES): width, height, offsets, extra DCS opcodes.

Environment

Variable

Purpose

LOGIC_MCP_OUT

Artifact directory (default ./out)

LOGIC_MCP_PROFILES

Extra panel YAML directory

LOGIC_MCP_INSTRUMENT_SOCK

Default ipc socket

LOGIC_MCP_DSVIEW_SOCK

Default dsview socket

SIGROK_CLI

Path to sigrok-cli if not on PATH

License

MIT for logic-mcp.

Patches under vendor/ are against other projects and keep that project’s license. vendor/dsview is GPLv3+ (DreamSourceLab DSView).

Available Tools

19 tools
bus_decodeBus DecodeB

Create a DecodeJob on the open capture. Same waveform can have several jobs (e.g. SPI + I2C).

ParametersJSON Schema
NameRequiredDescriptionDefault
t_maxNo
t_minNo
job_idNo
optionsNo
protocolYes
channel_mapYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It does convey that this is a creation operation and that jobs are additive (multiple can coexist per waveform), which is a genuine behavioral fact. It omits error behavior for a missing open capture, idempotency, sync/async execution, and permission requirements, making disclosure 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?

Two short sentences with no filler; the core action is front-loaded and the second sentence adds a non-obvious behavioral fact about multiple jobs. Every word earns its place.

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?

For a tool with 6 parameters, nested objects (channel_map, options), and zero schema documentation, this description is too thin. The output schema covers return values, but an agent cannot reliably construct a valid channel_map or interpret time bounds without external probing, sibling calls, or trial.

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

Parameters2/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, but it mentions no parameter details. The SPI/I2C example only weakly hints that protocol is a bus-protocol identifier; channel_map structure and values, t_min/t_max semantics, options, and job_id are 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?

States a clear verb and resource: 'Create a DecodeJob on the open capture.' The SPI/I2C example clarifies it's a per-protocol decode action. It doesn't explicitly name or contrast siblings like protocol_list or interpret, so the boundary is inferred rather than stated.

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?

'On the open capture' implies the prerequisite that a capture must already be open, and 'Same waveform can have several jobs' signals that repeated calls are expected for stacking decodes. However, no alternatives, exclusions, or when-not-to-use conditions are given, leaving that decision to inference.

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

capture_openCapture OpenA

Load a capture/trace file. Returns capture_id and channels. Pin maps belong on bus_decode.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
format_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 must carry behavior disclosure. It communicates the load operation and returned capture_id/channels, but it does not mention side effects, supported file formats, error behavior, or whether loading replaces an existing capture. This is partial but not comprehensive 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 three short sentences and every sentence adds value: what it loads, what it returns, and where pin maps belong. There is no redundant filler or repetition of schema details.

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 do not need full restatement. Still, given no annotations and zero parameter documentation, the description leaves format_id semantics and possible stateful effects unexplained. It is adequate for a simple call with just path, but not fully complete.

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

Parameters2/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 explain the parameters. It weakly implies that path is a file path, but it does not clarify format_id at all, including when it should be provided or what formats it accepts. The optional parameter remains ambiguous.

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 clear verb and resource: 'Load a capture/trace file.' It also names the return values and explicitly routes pin-map work to bus_decode, which distinguishes it from the sibling tool of the same domain.

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 makes the loading use case clear and gives an explicit exclusion by stating 'Pin maps belong on bus_decode.' It does not explicitly contrast with instrument_capture, but the sibling names and 'Load a capture/trace file' make the intended context evident.

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

display_analyzeDisplay AnalyzeC

Sugar: interpret MIPI DCS + command_log sink for a display profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
profileNost7789
col_offsetNo
row_offsetNo
max_commandsNo
decode_job_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/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 of disclosing side effects, read-only status, or state changes. It only restates the operation and does not say whether the tool reads a previous capture, produces artifacts, modifies state, or how it handles invalid DCS data.

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 a single compact sentence with no padding, and the core verb and resource appear early. The unexplained 'Sugar:' prefix is a minor structural blemish, but the overall text is appropriately sparse.

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?

This is a complex tool with seven optional parameters, no annotations, no schema descriptions, and several close siblings. The description is far too incomplete: it does not clarify what inputs are needed, what output is produced, or how display_analyze differs from display_reconstruct and interpret.

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

Parameters2/5

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

With 0% schema description coverage across seven parameters, the description needed to explain width, height, offsets, max_commands, and decode_job_id. It only gestures at 'display profile' and 'command_log sink', leaving the meaning and relationship of the numerical parameters mostly 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 names a specific verb (interpret), a resource (MIPI DCS + command_log sink), and a target (display profile), so it is not a tautology. However, it does not distinguish itself from sibling tools like 'interpret' or 'display_reconstruct', both of which could plausibly handle display data.

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 about when to use this tool versus alternatives such as interpret, display_reconstruct, or bus_decode. The 'Sugar:' prefix may imply a convenience wrapper, but the description never states the conditions that should lead an agent to pick this tool over its siblings.

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

display_reconstructDisplay ReconstructC

Sugar: interpret MIPI DCS + command_log + framebuffer sinks.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
heightNo
out_dirNo
profileNost7789
col_offsetNo
row_offsetNo
max_commandsNo
decode_job_idNo
max_intermediate_framesNo
save_intermediate_framesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior itself, but it only says 'interpret' without explaining side effects, safety, output format, or processing behavior. It gives a vague sense of reading/decoding data sources but does not tell the agent what will happen when the tool is invoked.

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

Conciseness2/5

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

The description is short, but it is cryptic rather than clear, and the leading 'Sugar:' token wastes the front-loaded position. A one-line description can be excellent, but this one sacrifices useful structure and meaning for brevity.

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

Completeness1/5

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

For a complex tool with 10 parameters, no parameter descriptions, and no annotations, this description is severely incomplete. The output schema exists, but the agent still lacks enough context to know what input data is expected, what the tool does, or how to choose parameters correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning for any of the 10 parameters. Parameters like width, height, profile, offsets, and max_commands are left entirely unexplained by both schema and description, so an agent cannot know how to set them.

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

Purpose3/5

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

The description names a verb ('interpret') and resources ('MIPI DCS + command_log + framebuffer sinks'), so it is not a pure tautology. However, the 'Sugar:' prefix is cryptic and the description never states that the tool reconstructs display frames or what output it produces, making it hard to separate from the sibling 'interpret'.

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 about when to use this tool versus alternatives like 'interpret', 'display_analyze', or 'bus_decode'. The description only implies some kind of decoding/interpretation role, but no conditions, 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.

instrument_capabilitiesInstrument CapabilitiesA

Sample rates, channel names, trigger support for the open instrument.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/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 of behavioral disclosure. It only lists the information returned and does not state that the tool is a read-only query with no side effects, nor does it mention any requirements like an open instrument. An agent cannot infer safety or mutation behavior from this description alone.

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. It states the key content immediately and is appropriately concise for a tool with no parameters.

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 has an output schema (not shown but indicated) and the description covers the content of the response. However, it does not mention what happens if no instrument is open or whether the operation fails under certain conditions. For a simple zero-parameter query, this is nearly complete but leaves a small gap.

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 the schema is an empty object with 100% coverage, so there is nothing to explain. The description adds value by specifying what the returned data covers (sample rates, channels, trigger), but parameter semantics are trivially satisfied. 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 what the tool does: it provides sample rates, channel names, and trigger support for the open instrument. It specifies a distinct resource ('the open instrument') and the kind of information returned, which differentiates it from siblings like instrument_list (which lists instruments) or instrument_scan (which scans for instruments).

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 tool is used after opening an instrument ('for the open instrument'), but it does not explicitly state when to use it vs. alternatives, nor does it mention any exclusions or prerequisites. It lacks guidance on when not to use it (e.g., when no instrument is open) or which sibling to use instead for other needs.

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

instrument_captureInstrument CaptureC

Run a blocking capture into the session. GUI-owned backends (dsview) do not need sample_rate_hz.

ParametersJSON Schema
NameRequiredDescriptionDefault
extraNo
out_dirNo
channelsNo
timeout_sNo
duration_sNo
sample_countNo
trigger_edgeNo
sample_rate_hzNo
trigger_channelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

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

No annotations exist, so the description must carry behavioral transparency. It does communicate that the capture is blocking and writes into the session, and it notes a backend-specific exception for sample_rate_hz. However, it does not disclose effects on existing session state, required instrument state, or timeout/failure behavior, leaving significant behavioral uncertainty.

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

Conciseness3/5

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

The description is economically worded and front-loaded with the primary action. No filler exists, and the dsview note is relevant. However, for a 9-parameter tool this brevity crosses from concise to underspecified.

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?

With 9 parameters, no annotations, and 0% schema coverage, the description is insufficient; it does not outline the capture workflow, prerequisites, or how parameters combine. It mentions blocking and session but not how the result is stored or returned. The output schema exists but does not cover this workflow context.

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

Parameters2/5

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

Schema coverage is 0% while there are 9 parameters; the description only adds semantic value for sample_rate_hz via the dsview note. Other parameters like extra are completely unexplained, and the description does not clarify how duration_s, timeout_s, and sample_count interact. Param names are self-descriptive but this does not compensate for the low coverage.

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 uses a specific verb ('Run') and object ('blocking capture') and states the destination ('session'), making the tool's core function clear. It does not explicitly name sibling tools, but the blocking qualifier and session target help disambiguate from instrument_start or instrument_wait. It lacks direct sibling differentiation, so not 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 explicit when-to-use or when-not-to-use guidance is provided. It does not mention that the instrument must be opened or configured first, nor when one would prefer instrument_start/instrument_wait over this single blocking call. The only usage-adjacent note concerns sample_rate_hz for dsview, which is a parameter constraint, not tool-selection guidance.

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

instrument_closeInstrument CloseA

Release the open instrument. Does not delete the last LogicCapture.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It usefully states that the last LogicCapture is not deleted, which sets expectations about non-destructiveness, but it does not describe other side effects, state changes, or error conditions related to closing an instrument.

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 two sentences with no wasted words. It leads with the core action and immediately adds the most important caveat, making it easy to parse and act on.

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 tool with an output schema present, the description is largely sufficient. The main gap is the lack of usage context relative to sibling tools, but the operation is simple and the non-deletion caveat covers the key behavioral 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?

The tool has zero parameters, so parameter semantics are not a concern. The description correctly adds no parameter information because none exists, and the empty input schema is self-explanatory.

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 action on a specific resource: 'Release the open instrument.' It is distinct from sibling open/stop tools through the word 'release' and the caveat about not deleting LogicCapture, though it does not explicitly name a sibling for 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?

There is no guidance on when to call this tool versus alternatives like instrument_stop or instrument_open. The phrase 'Release the open instrument' implies closure after use, but no explicit conditions, prerequisites, or exclusions are provided.

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

instrument_configureInstrument ConfigureA

Set live capture params (rate, channels, duration or samples, trigger). Does not start yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
extraNo
channelsNo
timeout_sNo
duration_sNo
sample_countNo
trigger_edgeNo
sample_rate_hzYes
trigger_channelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

There are no annotations, so the description carries the full behavioral burden. It does disclose the key side effect (mutating capture configuration) and explicitly clarifies that it does not start capture, which is important. However, it does not mention prerequisites like an open instrument, whether previous settings are overwritten, or how configuration interacts with a running capture.

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 plus a short behavioral caveat. Every phrase contributes information, and the primary verb and resource are front-loaded. There is no repetition of the title or filler content.

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?

With 8 parameters, no annotations, and zero schema description coverage, the description carries heavy weight. It provides the core semantic model and an important non-start clarification, but it omits lifecycle preconditions, the meaning of timeout_s and extra, and the relationship to instrument_start/capture. It is adequate for basic selection but not fully complete for every invocation workflow.

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 0%, so the description must add parameter meaning on its own. It successfully maps semantic families to the schema: rate→sample_rate_hz, channels, duration/samples→duration_s/sample_count, and trigger→trigger_edge/trigger_channel. It stops short of explaining timeout_s and extra, and units or mutual exclusivity are left to inference, but the main parameters are clarified well.

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 ('Set') with a concrete resource ('live capture params') and enumerates the exact field families: rate, channels, duration or samples, trigger. It actively distinguishes itself from capture/start tools by adding 'Does not start yet.' This makes its purpose unmistakable and separates it from siblings like instrument_start and instrument_capture.

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 it should be used for configuring before starting a capture, and explicitly warns that it does not start anything. However, it does not state when to call it relative to instrument_open, instrument_capture, or instrument_start, nor does it name alternatives. The usage context is implied by the sibling set rather than clearly defined.

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

instrument_exportInstrument ExportC

Ask the vendor hub to export the last capture and load it into the session.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
formatNocsv
out_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It mentions 'ask the vendor hub' and 'load it into the session,' but does not explain side effects, session mutation semantics, data flow, error behavior, or whether this is a safe read-like operation.

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 a single concise sentence with no filler and leads with the core action. However, the brevity comes at the cost of crucial detail, preventing a higher score.

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

Completeness1/5

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

Three parameters are present but entirely undocumented, usage guidance is absent, and behavioral details are minimal. Even though an output schema exists, the description does not provide enough surrounding context for an agent to invoke the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters: path, format, or out_dir. The agent receives no information about what values are valid or what each parameter controls.

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 provides a specific verb ('export') and a clear resource ('the last capture'), and adds what happens afterward ('load it into the session'). This distinguishes it from siblings like instrument_capture, though it does not explicitly name or contrast with alternatives.

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 guidance on when to use this tool versus alternatives. The phrase 'last capture' implies it should be used after a capture exists, but no exclusions, prerequisites, or comparisons to sibling tools such as instrument_capture or capture_open are provided.

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

instrument_listInstrument ListA

List live-capture backends (id, vendor, status, available, options_schema).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'List' implies a read-only operation, and the description names the output fields, but it provides no additional behavioral context such as whether the list is dynamically scanned, cached, or requires an active session. It is not misleading, but it is minimal.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and resource, then lists the exact fields returned. Every word is useful, and there is no fluff or repetition.

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 listing tool with an output schema, the description is sufficiently complete. The output schema covers the return structure, and the description names the key fields. No additional information is needed for an agent to invoke 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?

The input schema has zero parameters, so the description does not need to explain parameter behavior. The baseline for a no-parameter tool is 4, and there is nothing further 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?

The description uses a specific verb 'List' and a specific resource 'live-capture backends', and enumerates the fields returned (id, vendor, status, available, options_schema). This clearly states what the tool does, though it does not explicitly differentiate it from sibling tools like instrument_scan.

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 alternatives such as instrument_scan or capture_open. The usage is only implied by the word 'list', but no context or exclusions are provided to help an agent choose this tool correctly.

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

instrument_openInstrument OpenB

Open a live backend (mock, dslogic, sigrok_cli, …). Returns device + capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault
extraNo
backendYes
device_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 that this opens a backend and returns device plus capabilities, but it does not mention that opening may create a persistent stateful resource, whether it replaces an existing session, or that it should be paired with instrument_close. For an open operation, this is a significant gap.

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

Conciseness5/5

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

A single sentence that front-loads the action, includes useful examples, and states the return value. Every part is relevant and there is no filler.

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 output schema covers return values, and the command is invocable with the required backend parameter thanks to the examples. Still, with zero schema coverage on extra and device_id and no lifecycle guidance, the description is only minimally complete for an agent that needs to use the full parameter set.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only compensates for the backend parameter by listing examples. It provides no meaning for extra or device_id, such as how device_id selects a device or what extra can configure, so two of three parameters remain effectively undocumented.

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 ('Open') and resource ('live backend'), gives concrete backend examples (mock, dslogic, sigrok_cli), and states the return value ('device + capabilities'). This clearly distinguishes it from sibling tools like instrument_scan or instrument_capabilities.

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 provides clear context for the operation, so an agent can infer it is for opening a live backend. However, it does not explicitly name alternatives or state when not to use this tool, leaving the agent to figure out the boundary against siblings like instrument_list and instrument_scan.

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

instrument_scanInstrument ScanB

Discover analyzers. Omit backend to scan every implemented backend that is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
backendNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the behavioral burden. It only says 'Discover' and explains the omitted-backend default; it does not disclose side effects, connection requirements, runtime cost, or failure modes. This is sparse transparency for a tool that may scan multiple backends.

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, no filler, and the key default behavior is front-loaded. Every phrase contributes useful meaning.

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 tool with one optional parameter and an output schema, this is close to minimally adequate: the agent knows the basic purpose and the default invocation. Still, it lacks backend value guidance and explicit context for choosing this tool over its many sibling tools.

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

Parameters2/5

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

Schema description coverage is 0%, so the prose must clarify the backend parameter. It explains the omission behavior, but it does not state what valid backend values look like, what formats are accepted, or what happens when a specific backend is 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?

The description opens with 'Discover analyzers,' a specific verb and resource, so an agent understands the core action without needing to infer it from the tool name. It does not explicitly differentiate this from sibling tools such as instrument_list or protocol_list, but the focus on analyzers and available backends is reasonably distinct.

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 gives a useful conditional cue: omit the backend parameter to scan every implemented backend that is available. However, it does not state when to prefer this tool over its many siblings, nor does it give exclusions or alternatives.

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

instrument_startInstrument StartB

Start capture on the open instrument. DSView uses whatever the GUI already configured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully states that the tool relies on GUI configuration rather than parameters, but it does not disclose blocking behavior, failure modes, whether an existing capture is stopped or replaced, or other side effects. For a trigger-style action this is a significant gap.

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

Conciseness5/5

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

The description is two short sentences with no filler. The core action is front-loaded, and the second sentence adds essential context about the GUI-driven configuration.

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 output schema exists and there are zero parameters, which reduces some completeness demands. Still, the description does not connect to prerequisite or companion tools such as instrument_open or instrument_stop, nor does it clarify behavior if no instrument is open or a capture is already running. It is adequate but not fully complete for integration.

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 is empty, so the baseline is 4. The description reinforces that all settings are inherited from the GUI and no arguments need to be supplied, which adds useful context even though there are no parameters 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?

The description clearly identifies the action as 'start capture' on an open instrument, giving a specific verb and resource. However, it does not differentiate itself from the sibling tool instrument_capture, whose name suggests a similar or overlapping operation.

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 mentions that the instrument must be open and that configuration comes from the DSView GUI, but it provides no guidance on when to use this tool versus instrument_capture or other instrument_* siblings. No exclusions, prerequisites beyond 'open instrument', or alternative routing are given.

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

instrument_stopInstrument StopB

Stop an in-progress capture.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/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 of behavioral disclosure. It only states the basic action without explaining side effects, whether data is preserved or discarded, idempotency, or behavior when no capture is in progress. This is minimal transparency.

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

Conciseness5/5

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

The description is a single sentence with no filler words or redundant detail. It is front-loaded and appropriately sized for such a simple tool.

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 zero-parameter tool with an output schema, this is minimally viable: the core action is clear. However, it lacks useful context about preconditions, behavior when no capture is active, and how stopping relates to the broader capture lifecycle, leaving clear 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?

The tool has zero parameters and the input schema is empty, so there is nothing for the description to clarify. The baseline of 4 for zero-parameter tools applies; no additional parameter semantics are 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?

The description uses a specific verb ('Stop') and a clear resource ('an in-progress capture'), making the action unambiguous. It implicitly distinguishes itself from sibling tools like instrument_start and instrument_capture, though it does not explicitly name alternatives.

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 about when to call this tool, what preconditions exist (e.g., a capture actively in progress), or how it relates to sibling tools like instrument_start or instrument_close. The agent must infer usage entirely from the tool name and one-line description.

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

instrument_waitInstrument WaitA

Block until capture completes or timeout_s.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeout_sNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It clearly discloses that the tool blocks (synchronous) and that it either completes when capture finishes or times out after timeout_s. This covers the core behavioral trait. However, it does not state what happens on timeout (e.g., error, return value), which remains a minor gap given the output schema exists.

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 sentence, no fluff, and the core action is front-loaded. The conditional phrase 'or timeout_s' efficiently captures the entire behavior. 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?

The tool is simple with a single parameter and an output schema (though not shown). The description covers the essential behavior and parameter sufficiently for an agent to invoke it correctly in a typical flow. A minor omission is not stating what the return value is or timeout handling, but that may be addressed by the output schema. Overall, adequate.

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 explicitly mentions 'timeout_s' and ties it to the wait duration, adding meaning beyond the bare name and default. However, it does not elaborate on units (though the suffix 's' implies seconds) or edge cases (e.g., negative values). The description partially compensates but not 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?

The description states a specific verb ('Block') and a clear resource ('capture') with a precise condition ('completes or timeout_s'). This distinguishes it from siblings like instrument_start or instrument_stop, which initiate or terminate actions, whereas this is a waiting operation. 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 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. It does not mention that it should follow instrument_start or instrument_capture, nor does it suggest any exclusion scenarios. Context must be inferred from the name and siblings, but no explicit direction is provided.

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

interpretInterpretC

Run an upper decoder on a DecodeJob. Default sink is command_log. Add framebuffer for PNG.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinksNo
widthNo
heightNo
job_idNo
decoderNomipi_dcs
out_dirNo
profileNo
col_offsetNo
row_offsetNo
max_commandsNo
decode_job_idNo
max_intermediate_framesNo
save_intermediate_framesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal two useful behaviors ('Default sink is command_log' and 'Add framebuffer for PNG'), but fails to mention whether the operation mutates state, requires prior decoding, what side effects occur, or what the output actually contains.

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

Conciseness2/5

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

The two sentences are free of fluff and front-load the primary verb, which is good. But for a tool with 13 undocumented parameters and no annotations, this is severe under-specification rather than appropriately concise prose; it omits essential structure and context.

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

Completeness1/5

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

For a complex 13-parameter tool with zero annotation coverage and zero schema descriptions, the description is far too thin. It leaves the meaning of 'upper decoder', the purpose of most parameters, and the operational context entirely to inference, even though an output schema exists to cover return values.

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

Parameters1/5

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

Schema description coverage is 0% across 13 parameters, and the description adds almost no parameter-level meaning. It alludes to sink and framebuffer concepts but never maps them to the schema's sinks, width, height, decoder, out_dir, profile, offsets, or limits, leaving the agent to guess the roles of nearly all parameters.

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

Purpose3/5

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

The description states a specific action ('Run an upper decoder') on a specific resource ('DecodeJob'), which gives a basic anchor. However, 'upper decoder' is domain jargon that is not explained, and there is no distinction from sibling tools like bus_decode or display_reconstruct, leaving the exact purpose ambiguous.

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 usage context is provided: the description never says when to use this tool versus alternatives, nor mentions prerequisites or typical scenarios. The only guidance is the default sink and a framebuffer tip, which are behavioral hints, not usage guidance.

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

protocol_listProtocol ListA

List instrument backends, capture adapters, bus decoders, upper decoders, profiles, sinks.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'List' and the absence of parameters transparently signal a non-mutating discovery call, but the description does not explicitly state side-effect freedom, potential I/O latency, or failure behavior. This is adequate for a parameterless read-only tool, but not rich.

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

Conciseness5/5

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

A single sentence that is front-loaded with the verb and lists all output categories. There is no filler, repetition, or unnecessary context.

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 a parameterless schema, a declared output schema, and a simple enumeration purpose, the description covers what an agent needs to invoke the tool correctly. It names every category the listing covers, and the output schema handles return-value expectations.

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, and the schema confirms this with an empty properties object and 100% schema coverage, so the baseline is 4. The description correctly focuses on the enumerated output categories rather than parameter details, since there are no parameters 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 opens with the verb 'List' and names a concrete resource set: instrument backends, capture adapters, bus decoders, upper decoders, profiles, and sinks. This clearly separates it from action-oriented siblings like bus_decode or capture_open. It could name protocol_roles explicitly, but the resource list is specific 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?

The description implies a discovery/enumeration use case but never states when to call this tool versus alternatives. It gives no exclusions, prerequisites, or contrast with related siblings such as protocol_roles, which might also surface protocol-related information. An agent must infer the intended context from the word 'List' alone.

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

protocol_rolesProtocol RolesC

Channel roles and options_schema for a bus decoder.

ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states the subject matter and does not say whether the operation is read-only, whether it mutates state, or what side effects or errors are possible.

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

Conciseness3/5

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

The description is one short sentence and easy to scan, which is good, but it is under-specified for a tool definition. It is concise by omission rather than by dense, deliberate content.

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?

For a tool with one required parameter and an output schema, the description is too thin to support confident selection and invocation. It omits usage context, parameter semantics, and any behavioral guarantees, leaving the agent to guess.

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

Parameters2/5

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

With 0% schema description coverage, the description should explain the 'protocol' parameter. It only implies that protocol identifies a bus decoder, without stating valid values, format, or examples.

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

Purpose3/5

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

The description names specific content ('channel roles and options_schema') and the resource ('bus decoder'), so an agent can roughly identify what the tool covers. However, it lacks a verb that states the operation (get/return/configure), making it read more as a label than a purpose. It doesn't explicitly differentiate from siblings like protocol_list or bus_decode.

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 given about when to use this tool over sibling tools such as protocol_list or bus_decode. There are no context signals about prerequisites, alternatives, or scenarios where this tool is the right choice.

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

session_statusSession StatusC

Open capture plus all decode/interpret jobs and artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/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 states 'Open' which implies an action, but the title suggests read-only status retrieval. The description doesn't disclose side effects, whether it initiates processes, or authentication requirements. It mentions aggregating capture, decode/interpret jobs, and artifacts but not whether this is a safe query.

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

Conciseness3/5

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

The description is a single short sentence, so it's concise, but it lacks structure and clarity. The verb 'Open' is front-loaded and misleading, and the sentence doesn't build logically to convey the tool's purpose as a status query.

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?

For a no-parameter tool with an output schema, the description should clarify its role among siblings. It doesn't explain that it aggregates status of capture, decode, and interpret processes, nor that it's a query operation. Given the surrounding tools (capture_open, bus_decode, interpret), the description is insufficient for an agent to correctly select and use this tool.

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 zero parameters and 100% schema coverage, the baseline is 4. The description adds context about what the status covers (capture, decode/interpret jobs, artifacts), which is helpful even though no parameters exist to explain.

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

Purpose2/5

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

The description says 'Open capture plus all decode/interpret jobs and artifacts,' which lists resource categories but uses the ambiguous verb 'Open.' Given the title 'Session Status,' a read operation is implied, but the description could be confused with capture_open, which likely opens a capture. It doesn't clearly state that the tool retrieves session status.

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

Usage Guidelines1/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. It doesn't mention that it's for viewing current session state, nor does it differentiate from capture_open, bus_decode, or interpret. There's no context on prerequisites or typical usage scenarios.

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. 19 tool updatesv0.3.0
    • First observedbus_decode
    • First observedcapture_open
    • First observeddisplay_analyze
    • First observeddisplay_reconstruct
    • First observedinstrument_capabilities
    • First observedinstrument_capture
    • First observedinstrument_close
    • First observedinstrument_configure
    • First observedinstrument_export
    • First observedinstrument_list
    • First observedinstrument_open
    • First observedinstrument_scan
    • First observedinstrument_start
    • First observedinstrument_stop
    • First observedinstrument_wait
    • First observedinterpret
    • First observedprotocol_list
    • First observedprotocol_roles
    • First observedsession_status

TDQS

C2.9/5.0

Scored across 19 tools

Disambiguation3/5

Most tools map to distinct workflow phases, but instrument_capture vs instrument_start plus wait, and display_analyze vs display_reconstruct, have closely overlapping responsibilities. protocol_list and instrument_list also both touch backends, so an agent could misselect without careful reading.

Naming Consistency3/5

The instrument_* family is consistently named and object_verb names like capture_open and bus_decode are readable, but interpret is a bare verb and instrument_capabilities, protocol_roles, and session_status are noun-style rather than action-style. This mixed convention is understandable but not fully predictable.

Tool Count3/5

19 tools sits in the 16-25 heavy band, though the logic-analyzer workflow is broad enough to justify many of them. Some consolidation is possible, especially around capture/start and the display sugar tools, without losing core capability.

Completeness4/5

The server covers the full capture-to-decode pipeline: discovery, opening instruments, configuration, capture, decode, upper decoding, display reconstruction, and session status. Minor gaps like explicit decode-job teardown or saved artifact handling are present but agents can generally work around them.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server for BusPirate 6 hardware security testing. Exposes UART, SPI, I2C, 1-Wire, power supply, GPIO, and logic analyzer operations as tools.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that exposes all functionality of sigrok-cli as MCP tools, enabling hardware initialization, signal acquisition, and protocol decoding for logic analyzers.
    19 PyPI
    2
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Local MCP server for building an agent-facing integration around DreamSourceLab DSView. Enables native logic capture, protocol decode, and analysis with artifact management for I2C, SPI, and UART.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to launch and manage an owned Mindustry runtime, create logic fixtures, configure processors with mlog programs, observe live memory values, and verify program replacements with digest preconditions.
    15 npm
    1
    -