Skip to main content
Glama
es617

dbgprobe-mcp-server

by es617

Debug Probe MCP Server

MCP License: MIT Python Debug Probe

A stateful debug probe Model Context Protocol (MCP) server for developer tooling and AI agents. Works out of the box with Claude Code, VS Code with Copilot, and any MCP-compatible runtime. Communicates over stdio and drives on-chip debug probes (J-Link first, OpenOCD and pyOCD planned) to flash, debug, and inspect embedded targets.

Example: Let Claude Code list attached J-Link probes, connect to your nRF52840, flash a new firmware, read memory, and reset the target — all conversationally.

Demo

Video walkthrough — connecting to a J-Link probe, flashing firmware, loading ELF and SVD for symbol-aware debugging, RTT logging, and breakpoints.


Why this exists

If you've ever typed J-Link Commander commands by hand, copy-pasted memory addresses between a datasheet and a terminal, re-flashed the same firmware 20 times during a debug session, and juggled multiple tool windows — this is for you.

You have a microcontroller on a debug probe. You want an AI agent to interact with it — connect, flash firmware, read/write memory, reset, halt, resume. This server makes that possible.

It gives any MCP-compatible agent a full set of debug probe tools. The agent calls these tools, gets structured JSON back, and reasons about what to do next — without you manually driving JLinkExe for every operation.

What agents can do with it:

  • Flash and iterate — build firmware, flash it, reset, check behavior — all in one conversation

  • Inspect memory — read peripheral registers, check RAM contents, verify flash writes

  • Debug interactively — halt, step, set breakpoints, inspect state, resume

  • Automate test flows — flash → reset → read output → validate

  • Multi-probe setups — connect to multiple probes simultaneously, each with its own session


Related MCP server: io.github.microhenrio/openocd-mcp

Who is this for?

  • Embedded engineers — faster iteration: flash, debug, inspect memory conversationally

  • Hobbyists and makers — interact with microcontrollers without learning JLinkExe command syntax

  • QA and test engineers — automated flash-and-test sequences across multiple boards

  • Researchers — systematic exploration of embedded systems, register inspection


Quickstart (Claude Code)

pip install dbgprobe-mcp-server

# Register the MCP server with Claude Code
claude mcp add dbgprobe -- dbgprobe_mcp

# Or with explicit J-Link path
claude mcp add dbgprobe \
  -e DBGPROBE_JLINK_PATH=/Applications/SEGGER/JLink/JLinkExe \
  -- dbgprobe_mcp

Then in Claude Code, try:

"List attached debug probes, connect to the J-Link, and read 16 bytes from address 0x20000000."


Supported backends

Backend

Status

Probe hardware

J-Link

Working (v0)

SEGGER J-Link (EDU, EDU Mini, PLUS, PRO, etc.)

OpenOCD

Planned

ST-Link, CMSIS-DAP, and many others

pyOCD

Planned

CMSIS-DAP, ST-Link, J-Link (via pyOCD)

The server is backend-agnostic — tool names (dbgprobe.*) stay the same regardless of which probe you use.

Install the SEGGER J-Link Software Pack. The server auto-detects JLinkExe on PATH or in common install locations:

  • macOS: /Applications/SEGGER/JLink/

  • Linux: /opt/SEGGER/JLink/, /usr/bin/

  • Windows: C:\Program Files\SEGGER\JLink\

Or set DBGPROBE_JLINK_PATH to point to the executable directly.

This project is not affiliated with or sponsored by SEGGER. J-Link is used because it's widely available and well-supported.


Tools

Category

Tools

Probe

dbgprobe.probes.list, dbgprobe.connect, dbgprobe.erase, dbgprobe.disconnect, dbgprobe.reset, dbgprobe.halt, dbgprobe.go, dbgprobe.step, dbgprobe.status, dbgprobe.flash, dbgprobe.mem.read, dbgprobe.mem.write, dbgprobe.breakpoint.set, dbgprobe.breakpoint.clear, dbgprobe.breakpoint.list

Introspection

dbgprobe.connections.list

ELF

dbgprobe.elf.attach, dbgprobe.elf.info, dbgprobe.elf.lookup, dbgprobe.elf.symbols

SVD

dbgprobe.svd.attach, dbgprobe.svd.info, dbgprobe.svd.read, dbgprobe.svd.write, dbgprobe.svd.set_field, dbgprobe.svd.update_fields, dbgprobe.svd.list_peripherals, dbgprobe.svd.list_registers, dbgprobe.svd.list_fields, dbgprobe.svd.describe

RTT

dbgprobe.rtt.start, dbgprobe.rtt.stop, dbgprobe.rtt.read, dbgprobe.rtt.write, dbgprobe.rtt.status

Plugins

dbgprobe.plugin.list, dbgprobe.plugin.template, dbgprobe.plugin.load, dbgprobe.plugin.reload

Tracing

dbgprobe.trace.status, dbgprobe.trace.tail

See docs/tools.md for full schemas and examples.


Install (development)

# Editable install from repo root
pip install -e ".[test]"

# Or with uv
uv pip install -e ".[test]"

MCP is a protocol — this server works with any MCP-compatible client. Below are setup instructions for the most common ones.

Add to Claude Code

# Standard setup
claude mcp add dbgprobe -- dbgprobe_mcp

# With default target device
claude mcp add dbgprobe \
  -e DBGPROBE_JLINK_DEVICE=nRF52840_xxAA \
  -- dbgprobe_mcp

# Debug logging
claude mcp add dbgprobe -e DBGPROBE_MCP_LOG_LEVEL=DEBUG -- dbgprobe_mcp

Add to VS Code / Copilot

Add to your project's .vscode/mcp.json (or create it):

{
  "servers": {
    "dbgprobe": {
      "type": "stdio",
      "command": "dbgprobe_mcp",
      "args": [],
      "env": {
        "DBGPROBE_JLINK_DEVICE": "nRF52840_xxAA"
      }
    }
  }
}

Adjust env to match your target — set DBGPROBE_JLINK_DEVICE to your chip, or remove it to specify the device at connect time.

Add to Cursor

Add to your project's .cursor/mcp.json (or create it). Cursor does not support dots in tool names, so DBGPROBE_MCP_TOOL_SEPARATOR must be set to _:

{
  "mcpServers": {
    "dbgprobe": {
      "command": "dbgprobe_mcp",
      "args": [],
      "env": {
        "DBGPROBE_JLINK_DEVICE": "nRF52840_xxAA",
        "DBGPROBE_MCP_TOOL_SEPARATOR": "_"
      }
    }
  }
}

Environment variables

Server

Variable

Default

Description

DBGPROBE_BACKEND

jlink

Debug probe backend. Future: openocd, pyocd.

DBGPROBE_MCP_LOG_LEVEL

WARNING

Python log level (DEBUG, INFO, WARNING, ERROR). Logs go to stderr.

DBGPROBE_MCP_TRACE

enabled

JSONL tracing of every tool call. Set to 0, false, or no to disable.

DBGPROBE_MCP_TRACE_PAYLOADS

disabled

Include memory data payloads in traced args (stripped by default).

DBGPROBE_MCP_TRACE_MAX_BYTES

16384

Max payload chars before truncation (only when TRACE_PAYLOADS is on).

DBGPROBE_MCP_TOOL_SEPARATOR

.

Character used to separate tool name segments. Set to _ for MCP clients that reject dots in tool names (e.g. Cursor).

DBGPROBE_MCP_PLUGINS

disabled

Plugin policy: all or comma-separated plugin names (e.g. nrf52,stm32).

Variable

Default

Description

DBGPROBE_JLINK_PATH

auto-detect

Explicit path to JLinkExe (or JLink.exe on Windows).

DBGPROBE_JLINK_GDBSERVER_PATH

auto-detect

Explicit path to JLinkGDBServerCLExe.

DBGPROBE_JLINK_DEVICE

(none)

Default target device string (e.g. nRF52840_xxAA). Can be overridden per-session.

DBGPROBE_INTERFACE

SWD

Debug interface: SWD or JTAG.

DBGPROBE_SPEED_KHZ

4000

Interface clock speed in kHz.

DBGPROBE_GDB_TRACE

disabled

Log all GDB RSP packets to file. Set to 1, true, or yes to enable.

DBGPROBE_GDB_TRACE_FILE

/tmp/gdb_trace.log

Path for GDB RSP trace log (only when GDB_TRACE is on).


ELF Support

Attach an ELF file to a session to enable symbol-aware debugging:

  • Symbol lookup — resolve function names to addresses and vice versa

  • Breakpoints by namebreakpoint.set(symbol="main") instead of raw addresses

  • Auto-enriched responsesstatus, step, and halt include symbol + symbol_offset when an ELF is attached

  • Flash integration — flashing an .elf auto-attaches it; flashing .hex/.bin auto-reloads a previously attached ELF; sibling .elf files are suggested via hints

> "Attach the ELF, set a breakpoint on main, run, and show me where it halted."

The agent calls elf.attach, breakpoint.set(symbol="main"), go, then status — and gets back "halted at main+0" instead of a raw hex address.


SVD Support

Attach an SVD (System View Description) file to a session to enable register-level peripheral access:

  • Named register readssvd.read("GPIO.OUT") returns the raw value and all decoded fields with enum names

  • Field-level readssvd.read("GPIO.PIN_CNF[3].PULL") returns the field value and enum name ("PullUp")

  • Safe field writessvd.set_field("GPIO.PIN_CNF[3].PULL", "PullUp") does read-modify-write

  • Batch field updatessvd.update_fields("GPIO.PIN_CNF[3]", {"DIR": "Output", "PULL": "PullUp"}) — one read, one write

  • Raw register writessvd.write("GPIO.OUT", 0x01) — full register, no RMW

  • Discovery — list peripherals, registers, fields; describe with enums

  • Auto-decode on mem.read — when an SVD is attached and mem.read hits a known register address, the response includes decoded fields

> "Attach the SVD, read GPIO.PIN_CNF[3], and set PULL to PullUp."

The agent calls svd.attach, svd.read("GPIO.PIN_CNF[3]"), then svd.set_field("GPIO.PIN_CNF[3].PULL", "PullUp") — and gets back decoded field values instead of raw hex.


RTT (Real-Time Transfer)

Start, stop, read, and write to SEGGER RTT channels. The agent can stream target log output and send data to the device — useful for debugging firmware that prints over RTT instead of UART.

> "Start RTT and show me the output."

For repetitive flows — read device ID, run a self-test sequence, validate calibration — you can package them as plugins: Python modules that expose custom tools the agent can call directly. Enable with DBGPROBE_MCP_PLUGINS=all. See the nrf52_info example.


Tracing

Every tool call is traced to .dbgprobe_mcp/traces/trace.jsonl and an in-memory ring buffer (last 2000 events). Tracing is on by default — set DBGPROBE_MCP_TRACE=0 to disable.

Use dbgprobe.trace.status and dbgprobe.trace.tail to inspect the trace without reading the file directly.


Try without an agent

You can test the server interactively using the MCP Inspector:

npx @modelcontextprotocol/inspector python -m dbgprobe_mcp_server

Roadmap / TODO

  • OpenOCD backend — support ST-Link, CMSIS-DAP, and other probes via OpenOCD subprocess

  • pyOCD backend — native Python probe access via pyOCD library

  • Multi-core support — target specific cores on multi-core SoCs

  • Cortex-A/R support — ARM-mode breakpoints (kind=4); currently Thumb-only (Cortex-M)


Known limitations

  • Single-client only. The server handles one MCP session at a time (stdio transport).

  • RTT channel 0 only. RTT support is limited to channel 0 (terminal). Multi-channel RTT is a future enhancement.

  • Flash clears breakpoints. Flashing new firmware invalidates breakpoints (the code at those addresses may have changed). The session stays alive but breakpoints are cleared.

  • Cortex-M only. Breakpoints use Thumb-mode (kind=2). Cortex-A/R targets (ARM-mode, kind=4) are not yet supported.

  • Instruction-level step only. dbgprobe.step single-steps one CPU instruction. Source-level stepping (step into/over/out) is not supported.


Safety

This server connects an AI agent to real debug hardware. That's the point — and it means the stakes are higher than pure-software tools.

Plugins execute arbitrary code. When plugins are enabled, the agent can create and run Python code on your machine with full server privileges. Review agent-generated plugins before loading them.

Writes affect real hardware. A bad memory write or flash operation can brick a device, wipe calibration data, or trigger unintended behavior. Consider what the agent can reach.

Use tool approval deliberately. When your MCP client prompts you to approve a tool call, consider whether you want to allow it once or always.

This software is provided as-is under the MIT License. You are responsible for what the agent does with your hardware.


License

This project is licensed under the MIT License — see LICENSE for details.

Available Tools

41 tools
dbgprobe.breakpoint.clearC

Clear a breakpoint at a target address.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesAddress of the breakpoint to clear (e.g. 0x08000100 or "0x8000100").
session_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only states 'Clear a breakpoint' but does not disclose error behavior, success/failure response, or side effects. Insufficient for a mutation tool.

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

Conciseness4/5

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

Single sentence, no wasted words. Highly concise, but could include more context without sacrificing brevity.

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 two required params, no output schema, and no annotations, the description is too sparse. Missing return value info, error handling, and usage 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 description coverage is 50% (address described, session_id not). Description adds no further meaning beyond the schema. Does not explain the role of session_id or address format variations beyond schema hint.

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 (clear) and the resource (a breakpoint at a target address). It effectively distinguishes from siblings like dbgprobe.breakpoint.set and dbgprobe.breakpoint.list.

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. No mention of prerequisites (e.g., breakpoint must exist) or context (e.g., session must be active).

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

dbgprobe.breakpoint.listB

List all active breakpoints for a session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

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 disclosing behavior. However, it only states 'List all active breakpoints' and does not mention any side effects, permission requirements, or whether the list is read-only. The description adds minimal behavioral context beyond the obvious.

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

Conciseness5/5

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

The description is a single, efficient sentence with no redundant words. It is appropriately front-loaded and conveys the essential purpose without any elaboration, which is suitable for a simple list operation.

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 tool's simplicity (one param, no output schema, no annotations), the description is minimally adequate. However, it could be improved by mentioning that the session must be active or that the list reflects current breakpoints set via dbgprobe.breakpoint.set. Without that, the agent may lack sufficient 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?

With 0% schema description coverage and no elaboration in the description, the parameter 'session_id' is left without any added meaning or constraints. The description does not explain what constitutes a valid session_id (e.g., from dbgprobe.connect or dbgprobe.connections.list), which is critical for correct usage.

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 'List' and clearly identifies the resource as 'active breakpoints for a session'. It distinguishes this tool from its siblings (e.g., dbgprobe.breakpoint.set, dbgprobe.breakpoint.clear) by specifying the action of listing, which is unique among breakpoint operations.

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 versus alternatives, such as when to list breakpoints vs. setting or clearing them. It also lacks context about prerequisites (e.g., needing an active session) or scenarios where it should not be used.

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

dbgprobe.breakpoint.setA

Set a breakpoint at a target address or symbol name. Software breakpoints (default) are handled by the debug probe and work on both flash and RAM. Hardware breakpoints use the CPU's FPB and are limited in number (typically 4-6). If 'symbol' is provided and an ELF is attached, resolves the symbol to an address.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoSymbol name to resolve to an address (requires ELF attached).
addressNoAddress to set the breakpoint at (e.g. 0x08000100 or "0x8000100").
bp_typeNoBreakpoint type: 'sw' (software, default) or 'hw' (hardware).
session_idYes

TDQS

A3.8/5.0
Behavior3/5

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

Discloses important behaviors: software breakpoints work on flash and RAM, hardware limited to 4-6, symbol resolution requires an ELF. However, lacks details on error conditions (e.g., invalid address) and assumes an active session without stating consequences if session is invalid.

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

Conciseness5/5

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

Three succinct sentences with no redundant information. Key information is front-loaded: the action and then details about breakpoint types and symbol resolution.

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 breakpoint-setting tool with no output schema, it covers the essential behavioral and parameter context. Could mention that the breakpoint is set immediately or if it returns an ID, but overall sufficient given sibling tools and no annotation support.

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 75% (missing session_id description). The description adds context for symbol resolution and hw/sw differences, slightly enhancing the schema's parameter descriptions, but does not fully compensate for the missing session_id description.

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?

Clearly states the verb 'Set a breakpoint' and the target resource ('address or symbol name'). Distinguishes from sibling tools like clear and list by explaining the breakpoint types and symbol resolution.

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?

Provides guidance on when to use software vs hardware breakpoints and symbol vs address, but does not explicitly state when to use this tool versus other breakpoint tools or provide exclusion criteria. Usage is implied rather than explicit.

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

dbgprobe.connectA

Establish a debug probe session. Returns a session_id and the resolved configuration (backend, executable paths, defaults applied). The target is halted after connecting — this is inherent to the debug probe connection. Use dbgprobe.go to resume execution if needed. For symbol-aware debugging, attach an ELF file with dbgprobe.elf.attach after connecting — this enables breakpoints by function name and address-to-symbol resolution in status/step/halt responses. For register-level peripheral access, attach an SVD file with dbgprobe.svd.attach.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceNoTarget device string (e.g. nRF52840_xxAA). This is the TARGET chip on the board, not the debug probe MCU. The probe name (e.g. OB-nRF5340) refers to the debugger, not the target. Overrides DBGPROBE_JLINK_DEVICE.
backendNoBackend to use (default from DBGPROBE_BACKEND env var).
probe_idNoSerial number of the probe to connect to.
interfaceNoDebug interface (default from DBGPROBE_INTERFACE, typically SWD).
speed_khzNoInterface speed in kHz (default from DBGPROBE_SPEED_KHZ, typically 4000).

TDQS

A4.7/5.0
Behavior4/5

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

Discloses that the target is halted after connecting, which is a key behavioral trait. Mentions return values (session_id and resolved configuration). No annotations provided, so description carries the burden; it could mention behavior on failure or disconnection, but overall sufficiently transparent.

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?

Extremely concise, two sentences in the first paragraph covering purpose and return value. Second paragraph provides targeted usage guidance. No redundant information, every sentence serves a purpose.

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 complexity (5 parameters, no output schema but describes return), the description is complete. It covers what the tool does, what the agent should expect, and how it relates to sibling tools. No gaps left for an agent to misinterpret.

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?

Input schema has 100% coverage with descriptions for all 5 parameters. Description adds extra context by clarifying that 'device' refers to the target chip, not the probe, and mentions environment variable defaults. This adds 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?

Clearly states 'Establish a debug probe session' with specific verb and resource. Differentiates from siblings by pointing to dbgprobe.elf.attach for symbol-aware debugging and dbgprobe.svd.attach for register-level access, as well as dbgprobe.go for resuming execution.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use this tool (to connect and halt) and when to use alternatives (dbgprobe.go to resume, dbgprobe.elf.attach for symbols, dbgprobe.svd.attach for peripherals). Also clarifies that after connecting, the target is halted.

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

dbgprobe.connections.listA

List all open probe sessions with their status, backend, device, and config. Useful for recovering session IDs after context loss.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations present, so description carries full burden. It states the output fields but omits prerequisites (e.g., whether a debugger connection is needed) or edge cases like empty results.

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

Conciseness5/5

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

Two sentences, no fluff. Front-loaded with the action and key output fields. 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?

For a parameterless tool without output schema, the description provides enough context: what it lists and why useful. Minor gap on prerequisites or availability, but overall complete.

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, and schema coverage is 100%. Description adds value by explaining the tool's purpose and output, which compensates for the lack of parameter descriptions.

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 clearly states 'List all open probe sessions' with specific fields (status, backend, device, config), distinguishing it from siblings like `dbgprobe.probes.list` and `dbgprobe.connect`.

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?

Explicit use case given ('recovering session IDs after context loss'), but no when-not-to-use or alternative tools mentioned. Still, context is clear.

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

dbgprobe.disconnectC

Close a debug probe session and release resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.8/5.0
Behavior2/5

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

The description says 'release resources' but does not specify what resources are released (e.g., file handles, hardware connections) or whether the operation is safe to call multiple times. With no annotations, the description lacks sufficient behavioral detail.

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 very concise—one sentence with no filler. It is front-loaded with the core purpose, but could still add useful detail without becoming verbose.

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?

Given a simple tool with one parameter and no output schema, the description is incomplete. It fails to explain the session_id parameter or any post-conditions, leaving the user without enough context to use the tool properly.

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?

The only parameter, session_id, is not explained in the description. With 0% schema description coverage, the description should provide context (e.g., where to obtain the session_id, expected format), but it does not.

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 ('Close a debug probe session') and the result ('release resources'), with a specific verb and resource. It distinguishes from sibling tools like dbgprobe.connect, which is the opposite action.

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. For example, it does not mention that it should be called after finishing a session or before disconnecting, nor does it provide context about prerequisites or consequences.

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

dbgprobe.elf.attachA

Parse an ELF file and attach it to a session. Enables symbol-based breakpoints (by function name), address-to-symbol resolution in status/step/halt responses, and symbol search. Re-attaching replaces the previous ELF.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the ELF file.
session_idYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so description carries burden. It mentions re-attaching replaces previous ELF, a key behavior, but lacks details on side effects, permission requirements, or state changes beyond that.

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

Conciseness5/5

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

Three concise sentences, front-loaded with the main action. Each sentence adds unique value with no redundancy.

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?

No output schema, and description omits error conditions, return values, prerequisites (e.g., session must exist), and edge cases like invalid ELF files.

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 50% with only 'path' having a minimal description. The tool description adds no additional meaning to parameters beyond what schema provides, leaving 'session_id' 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?

Description clearly states it parses an ELF file and attaches to a session, enabling symbol-based debugging. It distinguishes from siblings like dbgprobe.elf.info or dbgprobe.elf.lookup by focusing on attachment.

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

Usage Guidelines3/5

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

The description implies usage before setting breakpoints or requiring symbol resolution, but does not explicitly state when to avoid it (e.g., if already attached) or provide alternatives.

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

dbgprobe.elf.infoA

Get ELF metadata for a session: file path, symbol count, entry point, sections. Returns null if no ELF is attached.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided; description carries burden. Discloses null return when no ELF attached, which is good. Does not disclose if the operation is read-only or requires a connected session, but it is implied by context.

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 plus a note about null return. No wasted words, front-loaded with main 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?

Lists fields returned (file path, symbol count, entry point, sections) but no types or structure. No output schema, so description should be more detailed. Given 1 param and no output schema, it is moderately 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 has one parameter (session_id) with 0% description coverage. The overall description does not explain session_id beyond its name; no format or semantics added. The description fails to compensate for missing schema descriptions.

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?

Clearly states verb 'Get' and resource 'ELF metadata for a session', and lists specific fields returned. Distinguishes from siblings like dbgprobe.elf.symbols (symbol enumeration) and dbgprobe.elf.lookup (symbol lookup).

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

Usage Guidelines3/5

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

Implies usage when ELF metadata is needed, but lacks explicit when-to-use or when-not-to-use guidance compared to alternatives. Does not mention alternatives like dbgprobe.elf.symbols for detailed symbol info.

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

dbgprobe.elf.lookupA

Bidirectional symbol lookup. Provide 'symbol' for name-to-address, or 'address' for address-to-name+offset. Exactly one is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoSymbol name to look up (returns address).
addressNoAddress to resolve (e.g. 0x08000100 or "0x8000100").
session_idYes

TDQS

A4.2/5.0
Behavior3/5

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

Discloses the bidirectional lookup behavior and requirement. With no annotations, the description carries the full burden; it could mention error cases (e.g., if both or none provided) or return format.

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

Conciseness5/5

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

Two sentences, no waste, front-loaded with the core concept. 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?

Covers the essential functionality for a simple 3-param tool. Could hint at return format, but not necessary given low complexity and no output schema.

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?

Adds meaning beyond schema by explaining the direction of lookup for 'symbol' and 'address'. The schema descriptions are basic, so this adds value. session_id is not mentioned in description but is covered by 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 states 'Bidirectional symbol lookup' and explains the two modes (symbol-to-address, address-to-name+offset). This distinguishes it from siblings like dbgprobe.elf.symbols which lists all symbols.

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

Usage Guidelines4/5

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

Explicitly states 'Exactly one is required' and explains the mapping for each input. However, it does not explicitly differentiate when to use this vs. dbgprobe.elf.symbols for listing.

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

dbgprobe.elf.symbolsB

Search or list ELF symbols. Optional substring filter, optional type filter (FUNC, OBJECT, NOTYPE, etc.), default limit 50.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoSymbol type filter (e.g. FUNC, OBJECT).
limitNoMax results (default 50).
filterNoCase-insensitive substring filter on symbol name.
session_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It mentions a default limit of 50 and optional filters, implying a read-only operation. However, it does not explicitly confirm read-only nature, state any side effects, or discuss authentication, rate limits, or output details. The information is adequate but not comprehensive.

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 that conveys the essential information. Every part is necessary: the action, the resource, the optional filters, and the default limit. There is no redundancy or wasted 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?

Given the tool has 4 parameters and no output schema, the description covers the main functionality and three of the four parameters (session_id is only mentioned implicitly). It does not describe the return format, error conditions, or pagination. While sufficient for basic understanding, it leaves gaps that could affect an agent's ability to fully interpret results or handle edge cases.

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 description adds value beyond the input schema by clarifying that the 'filter' parameter is case-insensitive and providing example type values ('FUNC, OBJECT, NOTYPE, etc.'). It also states the default limit of 50, which is not in the schema. Schema description coverage is 75% (3 of 4 params described), and the extra details justify a score above the baseline of 3.

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's purpose: 'Search or list ELF symbols.' It specifies the resource (ELF symbols) and the action (search or list). However, it does not explicitly differentiate from sibling tools like 'dbgprobe.elf.lookup', which might have a similar but distinct purpose. The name and context imply listing multiple symbols, but lack of explicit distinction prevents a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention situations where it should or should not be used, nor does it reference sibling tools. The only usage hints are the optional filters, but no context for choosing this over 'dbgprobe.elf.lookup' or others.

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

dbgprobe.eraseA

Erase target flash. With no address params: full chip erase (unlocks secured/read-protected devices like Nordic APPROTECT). With start_addr and end_addr: erase only that range. If session_id is provided, erases through the active GDB session (preferred — no USB contention). Without session_id, uses JLinkExe directly (for session-less erase, e.g. unlocking a secured device before connect).

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceNoTarget device string (e.g. nRF52840_xxAA). Only for session-less erase.
backendNoBackend to use (default from DBGPROBE_BACKEND env var). Only for session-less erase.
end_addrNoEnd address for range erase (e.g. 0x00080000 or "0x80000"). Required if start_addr is set.
probe_idNoSerial number of the probe. Only for session-less erase.
interfaceNoDebug interface (default from DBGPROBE_INTERFACE). Only for session-less erase.
speed_khzNoInterface speed in kHz (default from DBGPROBE_SPEED_KHZ). Only for session-less erase.
session_idNoSession ID for session-based erase (preferred). Omit for session-less erase.
start_addrNoStart address for range erase (e.g. 0x00040000 or "0x40000"). Omit for full chip erase.

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses that full chip erase unlocks secured devices, that session-less uses JLinkExe directly, and that session-based avoids USB contention. Could mention that erase is irreversible and time-consuming, but adequate.

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 action, well-structured with parenthetical caveats. No wasted words; every sentence 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?

Covers main modes and use cases for an 8-parameter tool without output schema. Mentions unlocking secured devices and USB contention. Could mention need for caution or that erase is destructive, but sufficient for agent invocation.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all 8 parameters. The description adds value by explaining the conditional logic: session_id for session-based, other params for session-less, and start_addr/end_addr relationship. This goes beyond what schema alone provides.

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

Purpose5/5

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

The description clearly states it erases target flash, distinguishes between full chip erase and range erase, and explains two modes (session-based and session-less). It is specific and distinct from sibling tools like dbgprobe.flash.

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

Usage Guidelines4/5

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

Explicitly tells when to use session-based (preferred, no USB contention) vs session-less (for unlocking secured devices before connect). Also explains when to provide address params for range erase vs omit for full chip erase. Lacks explicit mention of when not to use, but context is clear.

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

dbgprobe.flashA

Program a firmware image to the target. Supports .hex, .elf (address auto-detected) and raw .bin (requires explicit addr). Optionally verify and reset after flashing. If session_id is provided, tears down GDB, flashes, and restarts (preferred). Without session_id, uses JLinkExe directly (session-less, no debug session needed).

ParametersJSON Schema
NameRequiredDescriptionDefault
addrNoBase address for .bin files (e.g. 0x08000000 or "0x8000000"). Not needed for .hex/.elf.
pathYesPath to firmware file (.hex, .elf, .bin).
deviceNoTarget device string (e.g. nRF52840_xxAA). Only for session-less flash.
verifyNoVerify after programming (default: true).
backendNoBackend to use (default from DBGPROBE_BACKEND env var). Only for session-less flash.
probe_idNoSerial number of the probe. Only for session-less flash.
interfaceNoDebug interface (default from DBGPROBE_INTERFACE). Only for session-less flash.
speed_khzNoInterface speed in kHz (default from DBGPROBE_SPEED_KHZ). Only for session-less flash.
session_idNoSession ID for session-based flash (preferred). Omit for session-less flash.
reset_afterNoReset and run after programming (default: true).

TDQS

A4.2/5.0
Behavior3/5

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

No annotations exist, so the description bears full responsibility. It discloses key behaviors (format support, auto-detection, optional verify/reset, two modes) but omits details on destructive overwrite or error handling, which is acceptable for a flashing tool.

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 efficiently convey all essential information: purpose, format support, and mode behavior. No redundant or unnecessary words, achieving high density of useful guidance.

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 10 parameters, no output schema, and no annotations, the description adequately covers modes, parameters, and behavior. It lacks details on output or error responses, but the core functionality is well-explained.

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

Parameters4/5

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

With 100% schema coverage, the baseline is 3. The description adds value by explaining the relationship between addr and file format, the conditional use of session_id, and defaults for verify/reset_after, exceeding schema-provided info.

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 flashes firmware to a target, specifies supported file formats (.hex, .elf, .bin) with address handling, and distinguishes between session-based and session-less modes, making it distinct from sibling debug probe operations.

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

Usage Guidelines4/5

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

It explains when to use session_id (preferred) vs. session-less and when addr is required (.bin only), providing clear context. It lacks explicit alternatives or when-not-to-use scenarios, but the guidance is sufficient.

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

dbgprobe.goC

Resume target execution (run/go).

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.3/5.0
Behavior1/5

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

With no annotations provided, the description should disclose behavioral traits (e.g., required state, side effects, error cases). It only gives the basic action, adding no transparency.

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 extremely concise (one sentence), but this brevity comes at the cost of missing essential details. It is not well-structured for agent use.

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 debug tool with one parameter and no output schema, the description is incomplete. It does not mention prerequisites (e.g., target must be halted) or what happens on success/failure.

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 to the session_id parameter. It does not explain what session_id refers to or how to obtain it.

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

Purpose4/5

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

The description clearly states the action 'Resume target execution (run/go)', which distinguishes it from sibling tools like halt, step, and reset. However, it lacks explicit differentiation.

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 (e.g., after a halt). The agent is left to infer context from the action itself.

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

dbgprobe.haltC

Halt the target CPU.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.5/5.0
Behavior1/5

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

No annotations are present, so the description bears full responsibility. It only states the basic action without disclosing side effects, such as whether breakpoints remain active, if the CPU state is saved, or if any cleanup is needed. The minimal description fails to add beyond the tool name.

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, clear sentence with no wasted words. However, it lacks any structure (e.g., no sections) and could benefit from expanded context while remaining concise.

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?

Given the tool's role in a debug probe suite and the absence of an output schema, the description provides insufficient information. It does not explain return values, error conditions, or the effect on the target system, making it inadequate for an agent to use 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?

The input schema has 0% description coverage for the single required parameter 'session_id'. The description does not clarify what 'session_id' refers to, how to obtain it, or its 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 'Halt the target CPU' uses a specific verb and resource, clearly indicating the action and target. It effectively distinguishes from sibling tools like 'dbgprobe.go' (resume) and 'dbgprobe.step' (single step).

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 such as 'reset', 'step', or 'breakpoint.set'. There is no mention of prerequisites, context, or exclusions.

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

dbgprobe.mem.readA

Read memory from the target. Returns data in the requested format: 'hex' (hex string), 'base64', or 'u32' (array of 32-bit words, little-endian). If an SVD file is attached and the read is exactly one register wide, the response includes decoded SVD field names and values.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format (default: hex).
lengthYesNumber of bytes to read.
addressYesStart address (e.g. 0x20000000 or "0x20000000").
session_idYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It does not explicitly state that the operation is non-destructive or whether it affects target state. However, 'read' implies safety, and the SVD decoding note adds useful context.

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, each providing essential information. No redundancy. The key verb ('Read') and resources are front-loaded.

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 output schema, the description adequately explains return data and special SVD behavior. It does not cover error conditions (e.g., invalid address), but for a debug read tool, this is sufficient.

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

Parameters4/5

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

Schema coverage is 75%, and the description adds value beyond the schema by explaining default format ('hex'), the meaning of each format option, and the condition for SVD field decoding. It clarifies how the format parameter affects output.

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 'Read memory from the target', specifies return formats ('hex', 'base64', 'u32'), and mentions special SVD behavior. This distinguishes it from siblings like dbgprobe.svd.read (structured register reads) and dbgprobe.rtt.read (RTT reads).

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

Usage Guidelines4/5

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

The description provides clear context for raw memory reads versus SVD-based reads, but does not explicitly state when not to use it or name alternatives. The purpose is clear enough for an agent to infer usage.

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

dbgprobe.mem.writeB

Write data to target memory. Provide data in one of: 'hex' (hex string), 'base64', or 'u32' (array of 32-bit words, little-endian).

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoData as hex string or base64 string.
formatNoInput format (default: hex).
addressYesStart address (e.g. 0x20000000 or "0x20000000").
data_u32NoData as array of 32-bit unsigned integers.
session_idYes

TDQS

B3.4/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 potential side effects, authorization needs, or failure modes. For a write operation, it is critical to know if it can crash the target or require specific permissions.

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 purpose, then data format details. No waste, efficient and clear.

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?

No output schema, but description does not mention return value or success indication. Missing context about preconditions (active session) and failure conditions (invalid address or session). Incomplete for a write 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?

Schema coverage is 80% (session_id missing description). The description adds value by clarifying that 'u32' format expects an array of little-endian 32-bit words, which is not fully captured in the schema's parameter descriptions.

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 writes data to target memory and specifies the supported data formats (hex, base64, u32). It distinguishes from sibling dbgprobe.mem.read by verb 'Write' and resource 'target memory'.

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 vs alternatives like dbgprobe.flash or dbgprobe.erase. The sibling list includes related write operations but the description does not differentiate them.

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

dbgprobe.plugin.listA

List loaded plugins with their tool names and metadata. Each plugin may include a 'meta' dict with matching hints like device_name_contains or description — use these to determine which plugin fits the connected device. Also returns whether plugins are enabled and the current policy. Plugins require DBGPROBE_MCP_PLUGINS env var — set to 'all' for all or 'name1,name2' to allow specific plugins. If disabled, tell the user to set this variable when adding the MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses env var dependency, enabled/policy info, and meta structure. No side effects or safety issues are relevant for a read-only list.

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?

Reasonably concise with structured info: listing, meta hints, env var, disabled handling. Could be slightly tighter but not verbose.

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 zero parameters and no output schema, the description fully covers what the agent needs: return content, interpretation, environmental requirements, and user guidance on disabled state.

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 baseline 4 applies. Description adds no param-specific info, which is appropriate.

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

Purpose5/5

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

The description clearly states it lists loaded plugins with tool names and metadata, including meta dict hints, enabled status, and policy. It distinguishes from sibling plugin tools like load, reload, template.

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

Usage Guidelines5/5

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

Explicitly tells when to use: to list plugins and determine which fits the connected device via meta hints. Also explains the env var requirement and how to handle disabled state.

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

dbgprobe.plugin.loadB

Load a new plugin from a file or directory path. Requires DBGPROBE_MCP_PLUGINS env var to be set.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to a .py file or directory containing __init__.py.

TDQS

B3.4/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 fails to mention side effects (e.g., overwriting existing plugins), error conditions, or the outcome of loading a plugin, which is critical for an agent to understand the tool's impact.

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 consists of two short, focused sentences. It front-loads the primary action and then adds the prerequisite, with no unnecessary words or repetition.

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?

Given the absence of an output schema and annotations, the description is too minimal. It does not explain the plugin loading lifecycle, potential errors, or the effect on the debugger state, leaving gaps in the agent's understanding.

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 input schema already covers the 'path' parameter with a clear description. The tool description adds no additional meaning beyond what the schema provides, and schema description coverage is 100%, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Load'), the resource ('a new plugin'), and the source ('from a file or directory path'). It also mentions a necessary environment variable, making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description mentions a prerequisite (DBGPROBE_MCP_PLUGINS env var) but does not differentiate from sibling tools like dbgprobe.plugin.list or dbgprobe.plugin.reload, leaving the agent without guidance on when to use this tool over alternatives.

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

dbgprobe.plugin.reloadA

Hot-reload a plugin by name. Re-imports the module and refreshes tools. Requires DBGPROBE_MCP_PLUGINS env var to be set.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the loaded plugin to reload.

TDQS

A4/5.0
Behavior3/5

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

Discloses the effect (re-imports module and refreshes tools) and requirement, but omits potential side effects like disruption to debug session or state preservation. No annotations to compensate.

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?

Description is two sentences, front-loaded with action, and contains no wasteful 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?

For a single-parameter, straightforward action, the description covers purpose, effect, and prerequisite. Lack of output schema is fine; could specify success confirmation but not essential.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no extra meaning beyond the schema's parameter description. The parameter is straightforward.

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 clearly states the action ('Hot-reload') and the resource ('plugin by name'). It distinguishes from sibling tools like dbgprobe.plugin.load by specifying 'reload' and 'refreshes tools'.

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?

Description mentions a prerequisite (DBGPROBE_MCP_PLUGINS env var) and implies use when a plugin is already loaded, but does not explicitly contrast with dbgprobe.plugin.load or provide when-not-to-use scenarios.

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

dbgprobe.plugin.templateA

Return a Python plugin template. Use this when creating a new plugin. Optionally pre-fill with a device name. Save the result to .dbgprobe_mcp/plugins/.py, fill in the tools and handlers, then load with dbgprobe.plugin.load.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_nameNoDevice name to pre-fill in the template.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description fully shoulders the burden. It describes the return of a template and optional pre-filling. It implies no side effects, though it could be more explicit about being non-destructive. The post-processing steps are noted.

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, no fluff, front-loaded with the main purpose, and includes actionable next steps. Every word earns its place.

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

Completeness5/5

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

For a simple tool with one optional parameter and no output schema, the description fully covers purpose, usage, and post-processing. Sibling tools are diverse, and this description clearly sets it apart.

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

Parameters3/5

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

Schema coverage is 100% (one parameter fully described). The description says 'Optionally pre-fill with a device name,' which adds minimal new meaning beyond the schema description. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states 'Return a Python plugin template' and specifies it is for creating a new plugin. This clearly identifies the tool's action and resource, and distinguishes it from sibling tools like load, list, and reload.

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 says 'Use this when creating a new plugin' and provides step-by-step instructions (save to path, fill, load). It does not explicitly mention alternatives or when not to use, but the context is clear enough.

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

dbgprobe.probes.listA

List attached debug probes. Returns vendor/backend-specific info (serial number, description). For J-Link, enumerates via JLinkExe.

ParametersJSON Schema
NameRequiredDescriptionDefault
backendNoBackend to query (default from DBGPROBE_BACKEND env var).

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description adds some behavioral context: it is a read operation that returns probe info, and for J-Link it uses JLinkExe. However, it does not disclose potential side effects, idempotency, or required permissions. The disclosure is adequate but not thorough.

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 with two sentences, front-loading the core purpose and return info. No unnecessary words or redundancy. It is well-structured for quick comprehension.

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 description covers the main purpose and return types (serial number, description). Without an output schema, it does not specify the exact structure, which would be helpful but not critical for a simple list tool. It is mostly complete for its 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?

The input schema has 100% coverage for the single optional 'backend' parameter. The description adds value by explaining that J-Link enumerates via JLinkExe, hinting at backend-specific behavior. This enriches the schema description.

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 'list' and the resource 'attached debug probes'. It specifies the output includes vendor/backend-specific info like serial number and description, and mentions J-Link enumeration via JLinkExe. This distinguishes it from sibling tools which are unrelated debug operations.

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 lacks explicit guidance on when to use this tool versus alternatives. It mentions J-Link enumeration but does not indicate situations where one backend is preferred or state prerequisites. No exclusions or comparisons to sibling tools are provided.

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

dbgprobe.resetA

Reset the target. Modes: 'soft' (default) — software reset and resume, 'hard' — hardware reset, 'halt' — reset and halt at first instruction.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoReset mode (default: soft).
session_idYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It describes reset behavior per mode: soft resets and resumes, hard resets hardware, halt resets and halts. Could add more about state persistence or prerequisites, but adequate for basic understanding.

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, well-structured, front-loaded with verb and resource. No superfluous words, earns its place in the description.

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

Completeness4/5

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

No output schema, but description suffices for tool selection. Lacks info on prerequisites (e.g., must be connected) or return behavior, but given sibling tools and context, agent can infer. Could be more complete for invocation.

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 covers mode with enum and default; description adds semantic meaning ('software reset and resume'). Session_id is required but not explained; schema coverage is 50% but description compensates with mode details.

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 it resets the target, with three distinct modes. It distinguishes from sibling tools like halt, go, or step, specifying exactly what this tool does.

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

Usage Guidelines4/5

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

It explains when to use each mode (soft, hard, halt) with brief behavior. No explicit when-not-to-use or alternative tools, but the mode descriptions provide sufficient context for selection.

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

dbgprobe.rtt.readA

Read buffered RTT data from the target. Returns data as text (UTF-8 by default) or hex. Non-blocking — returns whatever is buffered, waiting up to timeout seconds for initial data.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoMax seconds to wait for data if buffer is empty (default 0.1).
encodingNoOutput encoding: 'utf-8' (default) or 'hex' for binary data.utf-8
session_idYesSession ID from dbgprobe.connect.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description adequately discloses key behaviors: non-blocking, returns buffered data, waits up to timeout for initial data, and encoding options. However, it does not specify if the read is destructive (clears buffer) or the exact return format beyond text/hex.

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 with no wasted words. Front-loads purpose and key details. Efficient and easy to parse.

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 output schema, the description covers the essential aspects: what is read, encoding, blocking behavior, and timeout. It is nearly complete, though it could mention prerequisites like needing an active RTT session or clarifying that the tool consumes the buffer.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds marginal value by clarifying the timeout is for initial data waiting, but this is similar to the schema description. No additional semantics beyond what schema provides.

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

Purpose5/5

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

The description clearly states the tool reads buffered RTT data from the target, specifies output formats (UTF-8 or hex), and distinguishes itself from sibling tools like dbgprobe.rtt.write by focusing on reading.

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

Usage Guidelines4/5

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

The description provides clear context (non-blocking, returns buffered data, waits up to timeout) but does not explicitly state when to use vs alternatives or when not to use. It implies usage after starting RTT, but lacks explicit exclusion criteria.

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

dbgprobe.rtt.startA

Start RTT (Real-Time Transfer) on a connected session. Connects to the JLinkGDBServer RTT telnet port and begins buffering target output (channel 0). Optional address hint for the RTT control block in target RAM.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoOptional RTT control block address in target RAM. Accepts integer or hex string (e.g. '0x20000000'). If omitted, JLinkGDBServer auto-searches for 'SEGGER RTT'.
session_idYesSession ID from dbgprobe.connect.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It mentions connecting to a telnet port and buffering output, but lacks details about idempotency, whether it can be called multiple times, error conditions, or side effects like blocking behavior. Basic transparency but incomplete.

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 consists of two concise sentences. The first sentence front-loads the purpose, and the second adds the optional parameter detail. No fluff or redundant information.

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

Completeness4/5

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

Given the tool's simplicity (start RTT), the description is mostly complete: it explains the action, connection method, and optional address. However, it lacks mention of return values (no output schema) or prerequisites like verifying the session is active or that RTT is enabled in firmware. Could also hint at post-conditions like using rtt.read.

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

Parameters3/5

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

Schema description coverage is 100%, providing detailed parameter info (e.g., address accepts integer or hex string). The tool description adds minimal extra context beyond 'Optional address hint'. For session_id, the schema description is minimal; the tool description does not elaborate. Baseline 3 is appropriate as schema does most of the work.

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 'Start RTT' and the resource 'connected session', and explains the action: connects to JLinkGDBServer RTT telnet port and buffers target output (channel 0). This distinguishes it from sibling tools like dbgprobe.rtt.stop, read, write, and 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 provides context that a connected session is needed (session_id from dbgprobe.connect) but does not explicitly state when to use this tool versus alternatives, when not to use it, or any prerequisites beyond the session. Sibling tools are not referenced for guidance.

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

dbgprobe.rtt.statusA

Return RTT status: active, bytes buffered, total read/written.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID from dbgprobe.connect.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It indicates a read operation but does not disclose potential side effects or requirements like session validity. Acceptable for a simple status tool.

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

Conciseness5/5

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

Single sentence, front-loaded with 'Return RTT status', no wasted words. Efficient and to the point.

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 status retrieval tool with one parameter, the description lists returned fields, compensating for lack of output schema. Could mention that an active session is required, but overall sufficient.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter session_id. Description does not add extra meaning beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool returns RTT status and lists specific fields (active, bytes buffered, total read/written). It distinguishes itself from siblings like dbgprobe.status and other RTT tools.

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 vs. alternatives like dbgprobe.status or other RTT tools. The description does not mention prerequisites or conditions.

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

dbgprobe.rtt.stopC

Stop RTT and disconnect from the telnet port.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID from dbgprobe.connect.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must convey behavioral traits. It states the core action but does not disclose side effects (e.g., data loss), prerequisites (active session), or what happens on failure.

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 irrelevant details. It is front-loaded and efficient, though could be expanded slightly for completeness.

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 that stops a specific connection, the description lacks prerequisites (must have active RTT session) and error conditions. It is minimally functional but incomplete for reliable agent use.

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 only parameter 'session_id' is fully described in the schema ('Session ID from dbgprobe.connect'), achieving 100% coverage. The tool description adds no additional meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the action 'Stop RTT and disconnect from the telnet port,' which distinguishes it from sibling tools like dbgprobe.rtt.start and dbgprobe.disconnect. However, it does not explicitly differentiate from all siblings.

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 dbgprobe.disconnect or dbgprobe.rtt.start. The agent must infer usage from the name and context.

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

dbgprobe.rtt.writeA

Write data to the target via RTT channel 0. Input is text (UTF-8 by default) or hex-encoded bytes.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData to write. Text (UTF-8) or hex string depending on encoding.
newlineNoAppend '\n' to the data (default false). Convenience for terminal input.
encodingNoInput encoding: 'utf-8' (default) or 'hex'.utf-8
session_idYesSession ID from dbgprobe.connect.

TDQS

A3.5/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 full burden of behavioral transparency. It mentions the encoding options and RTT channel, but fails to disclose potential side effects (e.g., whether writes block, error conditions, or if the target must be running).

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 extremely concise with two sentences, front-loading the core purpose. Every word adds value, and there is no redundant information.

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 description covers the basic operation but omits details like return value, error handling, and prerequisites beyond the session_id parameter. For a simple write tool, this is adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds some context beyond the schema by explaining the encoding interdependency and the convenience of the newline parameter, but it largely reiterates the schema descriptions.

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 'Write' and the resource 'data to the target via RTT channel 0'. It distinguishes from siblings like dbgprobe.rtt.read (reading) and dbgprobe.mem.write (memory write) by specifying RTT channel 0.

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 does not explicitly state when to use this tool versus alternatives or when not to use it. Usage is implied by the tool name and sibling context (e.g., rtt.read for reading, rtt.start for starting RTT), but no direct guidance is provided.

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

dbgprobe.statusA

Query target state. Returns whether the target is running or halted, and if halted, the current PC and stop reason (e.g. breakpoint hit).

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, description carries burden. It discloses return information (running/halted, PC, stop reason) but does not explicitly state it is read-only or safe. No side effects mentioned, but likely harmless.

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 purpose, no wasted words. Clearly structured for quick parsing.

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, description provides basic return info but lacks details about response format or additional fields. Acceptable for a simple query tool but could be more 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?

The only parameter, session_id, is not described beyond its type string. Schema coverage is 0%, so description should clarify its purpose (e.g., which debug session). It adds no value 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 clearly states the tool queries target state and returns running/halted status, PC, and stop reason. It uses specific verbs and resources, distinguishing it from sibling actions like go and halt.

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

Usage Guidelines3/5

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

The description implies usage when needing target state but provides no explicit guidance on when to use this tool versus alternatives like checking breakpoints or memory. No exclusions or context are given.

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

dbgprobe.stepA

Single-step one instruction. Target must be halted first. Returns the new PC and stop reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

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 discloses that the tool advances by one instruction, requires a halted target, and returns PC and stop reason. However, it omits potential side effects (e.g., whether breakpoints are temporarily disabled) and doesn't explain the format or range of stop reasons.

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 extremely concise: two sentences, front-loaded with the action. Every word adds value, with no redundancy or fluff.

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

Completeness4/5

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

Given a single parameter and no output schema, the description covers the core functionality, precondition, and return value. It could be improved by explaining what 'stop reason' encompasses and potential errors, but it is adequate for an experienced debugger user.

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?

The schema has one parameter (session_id) with no description. The tool description does not explain what session_id represents or how to obtain it. With 0% schema description coverage, the description should compensate but fails to clarify the parameter's purpose.

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 ('Single-step one instruction'), specifies the precondition ('Target must be halted first'), and indicates the outputs ('Returns the new PC and stop reason'). It effectively distinguishes from sibling tools like dbgprobe.go (which runs continuously) and dbgprobe.halt (which stops execution).

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 explicitly states the condition for use ('Target must be halted first'), which serves as a when-to-use guideline. It doesn't mention when not to use or alternatives, but the context makes it clear that stepping is for single instruction advancement only.

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

dbgprobe.svd.attachA

Parse an SVD file and attach it to a session. Enables named register reads/writes, field-level access, and auto-decode on mem.read. Re-attaching replaces the previous SVD.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the SVD file.
session_idYes

TDQS

A4/5.0
Behavior3/5

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

Without annotations, the description must disclose behavioral traits. It mentions enabling named register reads/writes, field-level access, auto-decode on mem.read, and re-attach behavior. However, it does not disclose potential errors (e.g., invalid file), required authentication, or rate limits. The core behavior is clear but could be more detailed.

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 with two sentences. The first sentence states the core action; the second adds key capabilities and re-attach behavior. No redundant information. The critical information is front-loaded.

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

Completeness4/5

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

Given the tool's moderate complexity (file parsing and session attachment) and absence of output schema, the description covers the essential effects. It explains what the tool enables and how re-attachment works. However, it does not mention that the session must be active and connected, which is a minor gap. Sibling tools indicate many SVD operations that depend on this attachment.

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

Parameters3/5

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

Schema coverage is 50%: 'path' is described, 'session_id' is not. The description adds context by explaining that attaching an SVD enables register operations, which clarifies the purpose of the parameters. However, 'session_id' is only implied by 'attach it to a session'. More explicit param descriptions would improve this dimension.

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 'Parse and attach' and the resource 'SVD file'. It explains the enabling of register reads/writes and field-level access, which distinguishes it from other svd.* tools that operate after attachment. The purpose is specific and unambiguous.

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 implies that this tool should be used before other SVD operations like svd.read, svd.write, etc., by stating it enables them. It also notes re-attaching replaces previous SVD. However, it does not explicitly mention prerequisites (e.g., session must exist) or when not to use it. No explicit alternative is needed as there is only one SVD attachment tool.

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

dbgprobe.svd.describeB

Detailed description of a peripheral, register, or field. Includes description, access type, reset value, and enum values as appropriate.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget: 'PERIPHERAL', 'PERIPHERAL.REGISTER', or 'PERIPHERAL.REGISTER.FIELD'.
session_idYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It mentions the included information (description, access type, reset value, enum values) which implies a read-only operation. However, it does not explicitly state that it is non-destructive or whether it requires any special permissions. The behavioral traits are partially transparent.

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, well-formed sentence that captures the essential purpose without any superfluous words. It is front-loaded and efficient.

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 that there is no output schema, the description should ideally provide more context about the return format or structure. While it lists what the description includes, it does not mention whether it returns a JSON object or text, or how detailed the description is. For a tool that provides detailed information, the missing output schema makes the description somewhat incomplete.

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 only 50%: the 'target' parameter has a description, but 'session_id' has none. The tool description does not add any additional meaning for 'session_id', leaving its purpose unclear. It slightly compensates for 'target' by confirming the pattern, but overall fails to fully explain the parameters.

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

Purpose5/5

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

The description clearly states the verb 'Describe' and the resource: peripheral, register, or field. It distinguishes from sibling tools like list_peripherals (which only enumerates) and read (which reads current value) by specifying the inclusion of access type, reset value, and enum values.

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 guidance on when to use this tool versus alternatives. For example, it does not say 'Use this to get a detailed description instead of using list for names or read for actual values.' The context signals and sibling tools show many related SVD tools, but the description provides no usage context.

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

dbgprobe.svd.infoB

Get SVD metadata for a session: device name, peripheral count. Returns null if no SVD is attached.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description partially covers behavior: it returns metadata or null if no SVD is attached. It does not disclose read-only nature or other side effects, but the simple getter nature limits risk.

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?

Extremely concise: two sentences with no wasted words. Front-loaded with the 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?

For a simple metadata retrieval with one parameter and no output schema, the description is mostly complete. It explains the return value and null case, though a brief explanation of session_id would improve it.

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 coverage is 0%, yet the description adds no meaning to the 'session_id' parameter. The parameter's purpose is only implied by the tool's context.

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 gets SVD metadata (device name, peripheral count) for a session. It is distinct from siblings like dbgprobe.svd.describe or dbgprobe.svd.list_peripherals, though no explicit differentiation is given.

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 siblings. The null return hint is helpful but does not cover usage context or prerequisites.

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

dbgprobe.svd.list_fieldsB

List all fields for a register.

ParametersJSON Schema
NameRequiredDescriptionDefault
registerYesRegister name (e.g. 'PIN_CNF[3]', 'OUT').
peripheralYesPeripheral name (e.g. 'GPIO').
session_idYes

TDQS

B3.1/5.0
Behavior2/5

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

The description does not disclose any behavioral traits such as side effects, whether it is read-only, or if it requires an active connection. With no annotations, this is insufficient for safe usage.

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, concise sentence that directly states the function with no unnecessary words. It is front-loaded and efficient.

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 lacks critical context: no output format, no error conditions, no prerequisites (e.g., must be connected, peripheral/register must exist). For a tool with 3 required parameters and no output schema or annotations, this is incomplete.

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?

The tool description adds no additional meaning to the parameters beyond what the input schema already provides. Schema coverage is 67% (register and peripheral have descriptions, session_id lacks), but the description does not clarify the 'fields' output format or any constraints.

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 ('List all fields') and the resource ('for a register'), distinguishing it from sibling tools like 'list_peripherals' or 'list_registers'.

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, prerequisites (e.g., peripheral and register must exist), or comparison with alternatives like 'svd.read' or 'svd.set_field'.

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

dbgprobe.svd.list_peripheralsC

List all peripherals defined in the attached SVD.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, whether a prior SVD attachment is required, or any side effects. The description is too minimal to compensate for missing annotations.

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

Conciseness4/5

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

The description is a single sentence that is concise and front-loaded. However, it could be slightly more informative without sacrificing brevity.

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?

Given the absence of an output schema, the description does not explain what the tool returns (e.g., a list of peripheral names). The tool appears to be simple, but the description should clarify the output format.

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?

The schema has 0% coverage; the description does not explain the `session_id` parameter, leaving the agent without guidance on what value to provide.

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 action (list) and the resource (peripherals from the attached SVD). It distinguishes from sibling tools like svd.list_fields and svd.list_registers by focusing on peripherals.

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 such as svd.describe or svd.info. Prerequisites like having an attached SVD are implied but not explicit.

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

dbgprobe.svd.list_registersB

List all registers for a peripheral.

ParametersJSON Schema
NameRequiredDescriptionDefault
peripheralYesPeripheral name (e.g. 'GPIO').
session_idYes

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 full burden for behavioral disclosure. It only states the action, with no mention of side effects, permissions, or behavior beyond listing.

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

Conciseness5/5

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

Single sentence, no wasted words. Efficiently conveys the core 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?

With no output schema and minimal description, the tool lacks details about return format or any prerequisites. Adequate for a simple list operation but could be enriched.

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 50% (session_id lacks description). The tool description adds no extra meaning beyond the parameter description for 'peripheral', and provides no context for 'session_id'.

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 'List' and the resource 'registers for a peripheral', which is specific and distinguishes from sibling tools like list_fields and list_peripherals.

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 this tool versus alternatives. The description implies it's for listing all registers of a peripheral, but does not provide when-not-to-use or name alternatives.

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

dbgprobe.svd.readB

Read a register or field by name. For registers (e.g. 'GPIO.OUT'), returns the raw value and all decoded fields. For fields (e.g. 'GPIO.PIN_CNF[3].PULL'), returns just the field value and enum name.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesRegister or field target: 'PERIPHERAL.REGISTER' or 'PERIPHERAL.REGISTER.FIELD' (e.g. 'GPIO.OUT', 'GPIO.PIN_CNF[3].PULL').
session_idYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It explains return values for registers vs fields, but does not disclose whether the operation is safe (read-only), requires specific permissions, or has side effects. The behavior is transparent in terms of output but lacks safety cues.

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, front-loaded with the core purpose, and efficiently explains behavior for registers and fields. No extraneous 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?

For a simple read tool with two parameters and no output schema, the description covers the input-output relationship well. It explains return types based on target format. Missing error cases or session_id context, but overall sufficiently complete for its simplicity.

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

Parameters3/5

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

Schema coverage is 50%: target has a description, session_id does not. The description adds examples and clarifies how the target parameter drives output types, which adds value beyond the schema. However, session_id remains undocumented, leaving its purpose ambiguous.

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 reads registers or fields by name and specifies different return types for each. It distinguishes between registers (returns raw value and all fields) and fields (returns value and enum name), which helps differentiate from sibling svd tools that list or describe, but does not explicitly compare.

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 does not provide guidance on when to use this tool versus alternatives like dbgprobe.svd.describe or dbgprobe.svd.list_fields. It describes behavior for different inputs but lacks context on prerequisites or when to avoid use.

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

dbgprobe.svd.set_fieldA

Read-modify-write a single register field. Reads the current register value, modifies the specified field, and writes back. Accepts enum names (e.g. 'PullUp') or integer values.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesField target: 'PERIPHERAL.REGISTER.FIELD' (e.g. 'GPIO.PIN_CNF[3].PULL').
valueYesNew field value — enum name (e.g. 'PullUp') or integer.
session_idYes

TDQS

A3.9/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the full burden of transparency. It discloses the read-modify-write sequence and the ability to accept enum names or integers. However, it does not mention side effects, failure modes, or return value, which would be helpful for a hardware debug tool.

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 concise sentences that are front-loaded with the core action. Every sentence adds value with no redundancy or 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?

Given no output schema and no annotations, the description covers the main process but lacks details on return value, error handling, and session_id context. This leaves some ambiguity for the agent in interpreting outcomes.

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 67%; the descriptions for 'field' and 'value' in the schema are already clear. The description adds no new information beyond the schema content. The 'session_id' parameter lacks a description in both schema and description, representing a gap.

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 ('Read-modify-write a single register field'), specifies the resource ('single register field'), and distinguishes from siblings like svd.read, svd.write, and svd.update_fields by targeting a single field with atomic read-modify-write. The example format further clarifies the field notation.

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

Usage Guidelines3/5

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

The description implies usage for single field modification but does not explicitly compare to alternatives like svd.update_fields or svd.write, nor does it provide conditions for when not to use this tool. No guidance on prerequisites or error conditions is given.

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

dbgprobe.svd.update_fieldsA

Batch read-modify-write: update multiple fields in one register with a single read and write. Accepts a dict of field names to values (enum names or integers).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesDict of field name → value. Values can be enum names (e.g. 'PullUp') or integers.
registerYesRegister target: 'PERIPHERAL.REGISTER' (e.g. 'GPIO.PIN_CNF[3]').
session_idYes

TDQS

A3.9/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 explains the read-modify-write pattern but does not disclose error handling, validation of field names, or side effects on other fields. The description is adequate but lacks depth.

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: first explains purpose and action, second clarifies input format. No redundant text, front-loaded with key information.

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 lack of output schema and annotations, the description should include return value or error conditions. It covers the core operation but omits session_id usage and response format, leaving gaps for an agent.

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

Parameters3/5

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

Schema coverage is 67% (2 of 3 parameters described). The description adds minimal value beyond the schema, with both mentioning the dict structure and value types. Baseline 3 is appropriate as the schema already defines the parameters.

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

Purpose5/5

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

The description uses specific verbs ('batch read-modify-write') and describes the resource ('multiple fields in one register'), clearly distinguishing it from sibling tools like 'set_field' which updates a single field.

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 implies usage for efficient multi-field updates with 'single read and write', but does not explicitly state alternatives or provide when-not-to-use guidance. The context from sibling tools suggests it is preferable over multiple 'set_field' calls.

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

dbgprobe.svd.writeA

Write a raw value to a full register. No read-modify-write — the entire register is overwritten. For field-level writes, use svd.set_field.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesValue to write (integer or hex string like '0x01').
registerYesRegister target: 'PERIPHERAL.REGISTER' (e.g. 'GPIO.OUT'). Must not include a field name.
session_idYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations exist, so description carries full burden. It states 'No read-modify-write — the entire register is overwritten,' which is a key behavioral trait. However, it does not disclose potential side effects, permissions, or error conditions, leaving gaps.

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

Conciseness5/5

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

Two sentences, no wasted words. Direct and front-loaded with the key information. 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?

No output schema, no annotations. The description covers core behavior and differentiation but misses prerequisites (e.g., session must exist, target may need to be halted) and return/error info. Adequate but not complete.

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

Parameters3/5

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

Schema coverage is 67% (value and register have descriptions). The description adds no new meaning for register or value beyond what the schema provides, and session_id remains undocumented. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool writes a raw value to a full register, distinguishing it from field-level writes by mentioning svd.set_field as an alternative. The verb 'Write' and resource 'full register' are specific.

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

Usage Guidelines4/5

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

Explicitly tells when to use (raw register write) and when not (field-level writes, use svd.set_field). Does not cover prerequisites like needing an active session or SVD attachment, but provides clear differentiation from a sibling.

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

dbgprobe.trace.statusB

Return tracing config and event count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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 bears full responsibility. It only states 'return', implying a read-only operation, but does not disclose potential side effects (likely none) or any prerequisites. More detail would improve transparency.

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 extremely concise—one short sentence. While it wastes no words, it could be slightly more structured by breaking into key outputs. Still, it is efficient.

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, the description provides the only information about return values. It names two items ('config' and 'event count'), but lacks detail on their nature or structure. For a simple status tool, it is minimally adequate but not fully complete.

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, and the description does not need to add meaning beyond the schema. The absence of parameters is already clear, so the description is sufficient.

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 it returns 'tracing config and event count', which distinguishes it from sibling tools like 'dbgprobe.trace.tail' that likely return trace data. However, it does not elaborate on what 'config' entails, which could be more specific.

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. Given the presence of multiple tracing and debugging siblings, explicit usage context would help the agent decide.

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

dbgprobe.trace.tailB

Return last N trace events (default 50).

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoNumber of recent events to return (default 50).

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description alone must disclose behavioral traits. It only states the basic function without mentioning side effects, permissions, or whether it is safe/read-only. 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?

Single sentence that is concise and front-loaded with the action. Every word serves a purpose with no redundancy.

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?

No output schema exists, and the description does not specify the format or structure of the returned trace events. This leaves the agent without enough context about what is returned beyond a count. Incomplete for a data-returning tool.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds minimal value beyond the schema. It confirms the default value (50) but does not explain the parameter's behavior (e.g., max limit, type coercion). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Return') and resource ('trace events'), with the parameter N specifying quantity. It effectively distinguishes from sibling tools like 'dbgprobe.trace.status' which likely returns trace status.

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 guidance on when to use this tool versus alternatives like dbgprobe.trace.status or other tracing commands. Usage is only implied by the tool name and brief description.

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. Dates show when Glama detected each change.

  1. 41 tool updatesv0.1.0
    • First observeddbgprobe.breakpoint.clear
    • First observeddbgprobe.breakpoint.list
    • First observeddbgprobe.breakpoint.set
    • First observeddbgprobe.connect
    • First observeddbgprobe.connections.list
    • First observeddbgprobe.disconnect
    • First observeddbgprobe.elf.attach
    • First observeddbgprobe.elf.info
    • First observeddbgprobe.elf.lookup
    • First observeddbgprobe.elf.symbols
    • First observeddbgprobe.erase
    • First observeddbgprobe.flash
    • First observeddbgprobe.go
    • First observeddbgprobe.halt
    • First observeddbgprobe.mem.read
    • First observeddbgprobe.mem.write
    • First observeddbgprobe.plugin.list
    • First observeddbgprobe.plugin.load
    • First observeddbgprobe.plugin.reload
    • First observeddbgprobe.plugin.template
    • First observeddbgprobe.probes.list
    • First observeddbgprobe.reset
    • First observeddbgprobe.rtt.read
    • First observeddbgprobe.rtt.start
    • First observeddbgprobe.rtt.status
    • First observeddbgprobe.rtt.stop
    • First observeddbgprobe.rtt.write
    • First observeddbgprobe.status
    • First observeddbgprobe.step
    • First observeddbgprobe.svd.attach
    • First observeddbgprobe.svd.describe
    • First observeddbgprobe.svd.info
    • First observeddbgprobe.svd.list_fields
    • First observeddbgprobe.svd.list_peripherals
    • First observeddbgprobe.svd.list_registers
    • First observeddbgprobe.svd.read
    • First observeddbgprobe.svd.set_field
    • First observeddbgprobe.svd.update_fields
    • First observeddbgprobe.svd.write
    • First observeddbgprobe.trace.status
    • First observeddbgprobe.trace.tail

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct operation (e.g., breakpoint.set vs breakpoint.clear, mem.read vs mem.write) with no overlap. Even within categories like SVD, separate tools for reading, writing, describing, and listing ensure clear boundaries.

Naming Consistency5/5

All tools follow a consistent hierarchical pattern: 'dbgprobe.<category>.<action>' (e.g., dbgprobe.breakpoint.set, dbgprobe.elf.attach). The naming is uniform and predictable across all 41 tools.

Tool Count4/5

With 41 tools, the set is large but justified by the diverse domain (breakpoints, memory, ELF, SVD, RTT, tracing, plugins). Each tool serves a specific purpose, though a few categories (e.g., SVD with 8 tools) might be slightly over-partitioned.

Completeness5/5

The tool surface covers the full lifecycle of debug probe interaction: connection management, breakpoints, memory access, flash operations, ELF/SVD integration, RTT, tracing, and plugin extensibility. No obvious gaps hinder typical debugging workflows.

Maintenance

ActivityNo data
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that provides comprehensive debugging capabilities for J-Link debuggers, enabling memory, flash, register, and RTT operations through AI assistants.
    33
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Debug microcontrollers directly from Claude. This is an MCP server that drives OpenOCD, letting Claude flash firmware, control execution, and inspect a running target — and read your variables and peripheral registers by name instead of raw addresses.
    39
    4
    MIT
  • A
    license
    C
    quality
    A
    maintenance
    MCP server for AI-assisted MCU and embedded firmware debugging. It connects to real hardware via debug probes, inspects CPU/memory/peripherals, manages Keil builds, and provides structured evidence for fault diagnosis.
    19
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/es617/dbgprobe-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server