Skip to main content
Glama

gdb-mcp

An MCP server that lets an AI agent drive a full C/C++ debugging session — set breakpoints, step, inspect memory and variables, evaluate expressions, and call functions — using either GDB or LLDB behind one unified tool surface.

It works by speaking the Debug Adapter Protocol (DAP) to the debugger that ships with your toolchain (gdb -i dap or lldb-dap), so a single set of tools drives both debuggers.

Validated end-to-end with Claude Code, Codex CLI, and Cursor CLI — each agent independently used these tools to debug a live program and extract correct runtime state.


Features

  • Three ways to start: launch a prebuilt binary, compile-then-debug a source file, or attach to a running process (by PID).

  • Execution control: continue, step (over / into / out, line or instruction granularity), and a lock-free pause that can interrupt a running program.

  • Breakpoints: source (file:line) and function breakpoints, with conditions, hit counts, and logpoints; data breakpoints (watchpoints); stable handles for reliable removal.

  • Inspection: backtraces, threads, stack frames, scopes, lazy variable expansion (structs/arrays/STL), expression evaluation and function calls (foo(x)), set-variable, read-memory, and disassembly.

  • Source listing around the current stop, plus a raw-command escape hatch (dbg_raw_command) for anything the structured tools don't cover.

  • Agent-friendly output: verbose DAP payloads are trimmed to compact JSON, with stop-epoch guards so an agent can't accidentally read a stale frame or variable reference after the program advances.

Related MCP server: MCP Debugger

Prerequisites

  • Python 3.11+

  • A DAP-capable debugger:

    • GDB ≥ 14 (ships the gdb -i dap interpreter), or

    • lldb-dap (bundled with LLVM / Xcode; on macOS it is found via xcrun -f lldb-dap).

  • A C/C++ toolchain (cc/clang/gcc) for the compile-then-debug mode and to build debuggees with -g.

  • uv (recommended) or pip.

Platform note. On Linux, run debuggers normally. On macOS, live debugging needs the debugserver attach permission — if dbg_start returns "Not allowed to attach", enable Developer Mode once: sudo DevToolsSecurity -enable. macOS arm64 GDB cannot debug native Mach-O binaries; use LLDB locally and GDB on Linux.

Installation

git clone https://github.com/birdeclipse/gdb-mcp.git
cd gdb-mcp
uv venv && uv pip install -e ".[dev]"   # or: pip install -e ".[dev]"

Verify the server starts and advertises its tools:

uv run gdb-mcp        # starts the MCP server on stdio (Ctrl-C to stop)
uv run pytest -m mcp  # asserts the server advertises all 20 tools

Registering with an agent

The server runs over stdio. The robust invocation lets uv resolve the project venv regardless of PATH (replace /path/to/gdb-mcp with your clone path):

command: uv
args:    ["run", "--directory", "/path/to/gdb-mcp", "gdb-mcp"]

Ready-to-edit config snippets live in integrations/. Summary:

Agent

How

Claude Code

claude mcp add gdb-mcp -- uv run --directory /path/to/gdb-mcp gdb-mcp — or merge integrations/mcp.claude.json into .mcp.json

Codex CLI

merge integrations/codex.config.toml into ~/.codex/config.toml

Cursor CLI

copy integrations/mcp.cursor.json to .cursor/mcp.json (project) or ~/.cursor/mcp.json

If you pip install the package so gdb-mcp is on PATH, you can use command: gdb-mcp with empty args instead.

Tools

All tools except dbg_start take a session_id.

Tool

Purpose

dbg_start

Start a session: mode = launch / compile_launch / attach, debugger = gdb / lldb

dbg_terminate

Kill (launch) or detach (attach) and free the session

dbg_continue

Resume until the next stop / exit

dbg_step

Step over / into / out; line or instruction granularity

dbg_pause

Interrupt a running program (lock-free)

dbg_set_breakpoint

file:line or function; optional condition, hit_condition, log_message

dbg_list_breakpoints

List source / function / data breakpoints with handles

dbg_remove_breakpoint

Remove by stable handle

dbg_set_watchpoint

Data breakpoint on a variable (read / write / rw)

dbg_backtrace

Stack frames for a thread

dbg_list_threads

All threads

dbg_select_frame

Set the active frame for eval / scopes / variables

dbg_scopes

Variable scopes (Locals, …) for a frame

dbg_variables

Expand a variablesReference (lazy struct/array/STL expansion)

dbg_evaluate

Evaluate an expression or call a function (foo(x))

dbg_set_variable

Set a variable to a new value

dbg_read_memory

Read raw memory (base64)

dbg_disassemble

Disassemble around an address

dbg_source

Source lines around a location

dbg_raw_command

Run a raw gdb/lldb command (escape hatch)

Example: a debugging session

A typical agent flow against a program with a Point pt = {3, 7} local:

  1. dbg_start(mode="launch", debugger="lldb", program="/path/to/a.out") → stops at entry, returns a session_id.

  2. dbg_set_breakpoint(session_id, file="main.c", line=6) → verified, handle 1.

  3. dbg_continue(session_id){state: "stopped", reason: "breakpoint", frame: {function: "main", file: "main.c", line: 6}}.

  4. dbg_backtrace(session_id) → frames.

  5. dbg_scopes(session_id) → Locals; dbg_variables(session_id, ref=…)pt (expandable) → expand → {x: 3, y: 7}.

  6. dbg_evaluate(session_id, "pt.x + pt.y")10.

  7. dbg_terminate(session_id).

How it works

agent ──MCP tool call──▶ MCP server (Python, asyncio)
                              │  Session Manager  (session_id → one debuggee)
                              │  DAP Client       (Content-Length framing,
                              │                    request/response + async events)
                              ▼  spawns
                    gdb -i dap   |   lldb-dap
                              ▼
                      debuggee process

Execution tools are event-driven: continue/step resolve on the debugger's next stopped/exited event, not on the request response. See docs/ARCHITECTURE.md for the design and CONTRIBUTING.md for development.

Testing

uv run pytest                # everything
uv run pytest tests/unit     # offline (scripted fake adapter) — no debugger
uv run pytest -m mcp         # MCP stdio handshake + tool advertisement
uv run pytest -m integration # live debugger on the C fixtures (auto-skips if none)

The integration suite probes for a working debugger and skips cleanly when none is available, so it is safe to run anywhere.

License

MIT

Available Tools

20 tools
dbg_backtraceA

Return up to levels stack frames for a thread (default current thread).

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
thread_idNo
levelsNo

TDQS

A3.7/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 indicates a read operation ('Return') but does not discuss side effects, error conditions, or permission requirements. The default behavior for thread_id is 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?

Single sentence with 12 words, no filler. Essential information is front-loaded. Every part of the description 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?

For a simple backtrace tool with 3 parameters and no output schema, the description covers the main function and two params, but omits the required session_id. Lacks guidance on return format or error cases.

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

Parameters3/5

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

Schema description coverage is 0%, yet the description explains two of three parameters: 'levels' (up to N frames) and 'thread_id' (default current). It fails to mention the required 'session_id', leaving its purpose unclear.

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 the resource ('stack frames for a thread'). It immediately distinguishes from sibling tools like 'dbg_list_threads' or 'dbg_evaluate' by focusing on stack frames.

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 stack frames are needed and mentions a default (current thread), but does not explicitly guide when to use this tool versus alternatives like 'dbg_disassemble' or 'dbg_source'. No exclusions or when-not-to-use context.

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

dbg_continueC

Resume execution until the next stop, exit, or timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for disclosing behavior. It describes the outcome (resume until stop/exit/timeout) but fails to mention important aspects like required debugger state (must be paused), error conditions (e.g., if session already running), or side effects. This incompleteness reduces 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 sentence) with no wasted words. However, it is too brief to cover necessary details, which is a trade-off. Still, it is well-structured and front-loaded with the action verb.

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 complexity of a debugger tool, the description is incomplete. It does not explain the prerequisite debugger state, error handling, or what happens on success/failure. No output schema exists, so the return behavior is entirely unspecified. The single parameter is undocumented, making the tool hard to use without external knowledge.

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 parameter 'session_id', and the tool's description does not explain what this parameter represents, its format, or any constraints. Since the agent cannot infer the meaning from the description, the score is very low.

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 action: 'Resume execution until the next stop, exit, or timeout.' It specifies the resource (execution) and the termination conditions, which helps distinguish it from stepping or pausing. However, it doesn't explicitly differentiate from siblings like dbg_step, but the purpose is still clear enough for an agent in a debugging context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs. alternatives such as dbg_step, dbg_pause, or dbg_start. It doesn't mention prerequisites like requiring the debugger to be in a paused state, nor does it explain when not to use it. This leaves the agent without context for correct invocation.

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

dbg_disassembleC

Disassemble around a memory reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
memory_referenceYes
instruction_countNo

TDQS

C2.3/5.0
Behavior1/5

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

With no annotations, the description carries full burden. It only says 'disassemble around a memory reference,' lacking any disclosure of side effects, safety, or prerequisites. Agent cannot assess if this is a read-only operation or if it requires a live debug session.

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?

Single sentence, front-loaded, no wasted words. However, it is excessively terse for a debugging tool requiring parameter details, making it less useful than it could be.

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 lack of annotations, output schema, and parameter descriptions, the description is severely incomplete. Agent lacks essential context about return format, safety, and parameter semantics, making correct invocation unlikely.

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 input schema has 0% description coverage. The description only mentions 'memory reference' but does not explain the 'session_id' parameter or the meaning and allowed values of 'instruction_count.' Default value is given but no context on its significance.

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 a specific action (disassemble) on a resource (memory reference), which is distinct from sibling tools like dbg_read_memory or dbg_evaluate. However, it does not explicitly differentiate from closely related concepts.

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, nor any conditions or exclusions. Agent is left to infer from the name and description alone.

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

dbg_evaluateB

Evaluate an expression in a frame. Handles reads AND function calls (e.g. 'square(v)' or 'call square(v)'). context: watch|repl|hover.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
expressionYes
frame_idNo
contextNorepl

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions handling reads and function calls, but does not indicate potential side effects of function calls, error conditions, or return format. Lacks critical safety details.

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

Conciseness5/5

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

Three short sentences convey the core functionality with examples. No unnecessary words or repetition. Front-loaded with the primary action.

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?

Despite being a debugger tool with no output schema and no annotations, the description does not explain the return value, error handling, or the effect of the context parameter. This leaves the agent with significant ambiguity when using the 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 0% (no param descriptions). The description clarifies the expression parameter with an example, and lists context values, but does not explain session_id or frame_id beyond what the schema shows. Adds some value but insufficient for full understanding.

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 it evaluates expressions in a frame, with examples of reads and function calls. This distinguishes it from siblings like dbg_variables (list variables) or dbg_set_variable (modify).

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 vs alternatives. Mentions context values (watch|repl|hover) but does not explain their significance or when to choose one. No comparison with siblings.

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

dbg_list_breakpointsA

List all breakpoints tracked in this session, with their stable handles.

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, the description carries the burden. It explains that the tool lists breakpoints (implying read-only) and scopes to a session, but does not explicitly confirm no side effects or describe behavior on empty/invalid sessions. It adds some value beyond the name.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the essential purpose and a key output detail.

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 list tool with one parameter and no output schema, the description is fairly complete. It specifies the action, scope, and a key aspect of the output (stable handles). Minor gaps exist (e.g., output format) but are not critical.

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 0%, so the description must compensate. It mentions 'in this session', indirectly relating to session_id, but does not explicitly define the parameter's role. This is adequate for a single required parameter but could be more direct.

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

Purpose5/5

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

The description clearly states the tool lists all breakpoints in the session, with stable handles. It uses a specific verb ('List') and resource ('breakpoints'), and implicitly distinguishes from sibling tools like dbg_set_breakpoint and dbg_remove_breakpoint.

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, nor any context on prerequisites or state requirements. It simply states the function without usage context.

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

dbg_list_threadsC

List all threads of the debuggee.

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without mentioning side effects, permissions, or important details like whether the list is dynamic or requires a running debuggee.

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 short sentence with no unnecessary words. It is appropriately concise for a simple action, though it could benefit from slightly more 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 the tool's complexity (one required parameter, no output schema, no annotations), the description is incomplete. It does not explain the output format or what 'threads' includes (IDs, states, etc.), leaving the agent with insufficient information to understand the full behavior.

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 description adds no meaning beyond the schema for the 'session_id' parameter. Schema description coverage is 0%, so the description should compensate but does not mention what session_id represents or how it relates to listing threads.

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's action: 'List all threads of the debuggee.' It uses a specific verb ('List') and resource ('threads of the debuggee'), and it distinguishes itself from sibling tools like dbg_list_breakpoints.

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 threads vs. backtrace or scopes. There is no explicit context or exclusions mentioned.

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

dbg_pauseA

Interrupt a running program.

This only acknowledges the pause request; it does NOT wait for the stop. A continue/step in flight holds the session lock for its whole await-for-stop, so pause must run lock-free to interrupt it. The resulting stopped event is delivered to that in-flight call's waiter, which returns the stop snapshot to its own caller. The caller of dbg_pause receives only this ack.

Residual race (acceptable): pause may transiently reject at the exact instant a continue/step starts, while state is still STOPPED for the microsecond before run_and_wait flips it to RUNNING under the lock. Flipping to RUNNING early (before awaiting the resume response) minimizes this window.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description fully discloses behavioral traits: it only acknowledges the pause request, does not wait for stop, is lock-free, and explains the race condition with continue/step. It also mentions the delivery of a 'stopped' event.

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 concise and front-loaded with the primary purpose. It includes necessary technical details without being overly verbose, though some sentences could be tightened.

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 lack of output schema and annotations, the description covers the tool's behavior well: it explains the asynchronous nature, race condition, and what the caller receives. It is sufficient for an agent to use the tool correctly.

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 description does not provide any additional meaning for the 'session_id' parameter beyond what is in the schema. With 0% schema coverage, the description should explain how session_id is used; 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 'Interrupt a running program' with a specific verb and resource. It distinguishes itself from sibling tools like dbg_continue (resume) and dbg_step (step) by focusing on pausing.

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

Usage Guidelines4/5

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

The description explains when to use the tool (to pause a running program) and provides context about its asynchronous behavior and lock-free nature. It does not explicitly state alternatives or when not to use, but the context is clear.

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

dbg_raw_commandA

Run a raw gdb/lldb command via the DAP evaluate repl context. Use for the long tail no structured tool covers (e.g. 'info registers').

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
commandYes

TDQS

A3.6/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. It mentions running via DAP evaluate repl context but does not disclose potential side effects (e.g., modifying debugger state, errors, or security implications). Minimal transparency beyond the basic action.

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-loaded with purpose, and contains no redundant information. Every part adds value.

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

Completeness3/5

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

Given the absence of output schema and annotations, the description is somewhat incomplete. It does not explain the return format or error behavior. However, it does mention the operational context (DAP evaluate repl) and provides an example, making it minimally adequate.

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

Parameters2/5

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

Schema coverage is 0%, so description must compensate. It adds context about the command parameter via example but does not describe session_id. The mention of 'DAP evaluate repl context' gives some background but does not explain parameter semantics.

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 runs a raw gdb/lldb command via DAP evaluate repl context. It provides a specific example ('info registers') and distinguishes from sibling tools by indicating it covers the 'long tail' that structured tools do not cover.

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 says 'Use for the long tail no structured tool covers', which guides the agent on when to use this tool. However, it does not explicitly state when not to use it, but the context of sibling tools implies the alternative.

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

dbg_read_memoryB

Read count bytes of memory (base64) from a memory reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
memory_referenceYes
countYes
offsetNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist; description only mentions reading memory and base64 output. It does not disclose potential errors (e.g., invalid reference), permission needs, or side effects, missing key behavioral context.

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

Conciseness5/5

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

The description is a single, clear sentence that immediately conveys the tool's purpose with no unnecessary words.

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

Completeness3/5

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

For a simple read tool with no output schema, the description minimally covers return format (base64) but lacks details on error handling, offset usage, and constraints, making it barely adequate.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate. It mentions 'memory_reference' and 'count' but omits 'session_id' and 'offset' entirely, and provides no additional meaning beyond parameter names.

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), the resource (memory), and specifies returning base64 encoded bytes from a memory reference, distinguishing it from sibling tools like dbg_evaluate or dbg_variables.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The description implies usage for reading raw memory, but lacks context for when to prefer over other debug tools or any prerequisites.

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

dbg_remove_breakpointB

Remove a breakpoint by its stable session handle and resync the affected list.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
handleYes

TDQS

B3.3/5.0
Behavior3/5

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

Discloses removal by stable session handle and resync behavior, but lacks details on side effects, error cases, or the meaning of 'resync'.

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 redundancy, front-loaded with action and resource.

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?

Lacks return value description, error conditions, and prerequisites; for a destructive debugger tool with no annotations, more context is needed.

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?

Only hints at 'handle' as a stable session handle, but does not clarify 'session_id' or give format/syntax; schema coverage is 0% so description should compensate more.

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 'remove' and the resource 'breakpoint', and distinguishes it from sibling tools like dbg_set_breakpoint and dbg_list_breakpoints.

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 or conditions for removal.

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

dbg_scopesC

List variable scopes (Locals, Registers, ...) for a frame.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
frame_idNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It only states the action without revealing side effects, return format, or whether it requires a running process. 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.

Conciseness3/5

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

Single sentence is concise but lacks any structure. It could benefit from a brief sentence on parameters or usage pattern without increasing length significantly.

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 no output schema and two parameters, the description is too terse. It omits critical context like the role of frame_id (optional, default null) and the returned format, making it hard 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?

Schema has 0% description coverage, and the description does not explain either parameter (session_id, frame_id). The agent gets no help understanding what to provide or how they relate.

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?

Clearly states it lists variable scopes like Locals, Registers for a frame. Distinguishes from sibling dbg_variables which lists actual variables. However, it could be more explicit about the hierarchical nature of scopes.

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 like dbg_variables or dbg_evaluate. Lacks context on prerequisites or typical use cases.

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

dbg_select_frameC

Set the active frame for evaluate/scopes/variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
frame_idYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits but only states a simple action. Missing details on side effects (e.g., impact on future commands), validation, error handling, or session requirements.

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

Conciseness3/5

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

The description is a single sentence, which is concise but too minimal. It conveys purpose efficiently but omits necessary details that could be added without significant bloat.

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 debugger tool with two required parameters and no output schema, the description lacks context on the debug session, valid frame IDs, or relation to sibling tools like dbg_evaluate. Incomplete for safe and correct invocation.

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

Parameters2/5

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

Schema coverage is 0%, so description should explain parameters, but it only mentions 'frame' generically. The names 'session_id' and 'frame_id' are somewhat self-explanatory, but the description adds no new information to aid correct parameter usage.

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 specifies the verb 'Set' and resource 'active frame', clearly indicating the tool's role in changing the debug context for evaluate/scopes/variables. It is specific enough to distinguish from unrelated tools, though not from all sibling debug 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 is provided on when to use this tool versus alternatives like dbg_backtrace or dbg_scopes. Missing prerequisites or context for invocation, leaving the AI 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.

dbg_set_breakpointA

Set a breakpoint at file:line OR on a function. Optional condition / hit count / logpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
fileNo
lineNo
functionNo
conditionNo
hit_conditionNo
log_messageNo

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description must carry all behavioral disclosure. It mentions optional features but omits important traits such as what happens when both file:line and function are specified, how errors are reported, or what the return value looks like. The description is too brief to fully inform an agent about side effects or constraints.

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-structured sentence that immediately states the core action (Set a breakpoint) and then lists options. Every word is necessary and no content is redundant. It is front-loaded with the most important 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?

For a tool with 7 parameters and no output schema or annotations, the description is somewhat complete but has gaps. It covers the main location and optional features but does not specify return behavior, error handling, or the exact relationship between parameters. This is adequate for simple use but may lead to confusion in complex scenarios.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains that file and line (or function) specify the location, and that condition, hit_condition, and log_message are optional. However, it does not describe the session_id parameter, nor does it clarify the mutual exclusivity of location parameters. Despite this, the description adds significant semantic value beyond the raw 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's action (set breakpoint) and the two main location types (file:line or function). It distinguishes from sibling tools like dbg_remove_breakpoint and dbg_list_breakpoints, and provides a concise, specific verb-resource pair.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives, nor are there any exclusions or context hints. The description simply states what it does without helping the agent decide between this and similar tools like dbg_set_watchpoint or dbg_remove_breakpoint.

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

dbg_set_variableC

Set a variable (by container ref + name) to a new value.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
refYes
nameYes
valueYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions 'set' implying mutation, but fails to state side effects, error conditions, or whether the change persists. No indication of required permissions or destructive potential.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It does not use formatting for readability. While minimal, it could include a short example or more 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 the complexity of a debugger tool with many siblings, the description is incomplete. It does not explain return values (no output schema), error handling for invalid refs or names, or behavior when the variable does not exist.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It explains 'ref' and 'name' as variable identification, but does not clarify session_id (likely debugging session) or value (new value). Two of four parameters remain unexplained.

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

Purpose4/5

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

The description clearly identifies the action (set a variable) and the key identification method (by container ref + name). It distinguishes this tool from others like dbg_evaluate or dbg_read_memory. However, it could be more explicit about the setting operation being a mutation.

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 alternative debugging tools (e.g., dbg_evaluate for expression evaluation). It lacks context about prerequisites, such as whether the debugger must be paused or a session active.

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

dbg_set_watchpointB

Set a data breakpoint (watchpoint) on a variable. access: read|write|rw.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
nameYes
accessNowrite

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden of transparency. It fails to disclose side effects such as performance impact, whether the session must be paused, or any limitations of watchpoints.

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 at one sentence plus an access mode list, 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 tool has 3 parameters, no output schema, and no annotations, the description is insufficient. It lacks information about return values, side effects, and prerequisites for using the tool.

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

Parameters2/5

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

Schema coverage is 0%, so the description should compensate. It only explains the 'access' parameter partially, but does not explain 'session_id' or 'name' (e.g., what variable name refers to).

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

Purpose5/5

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

The description clearly states the action: 'Set a data breakpoint (watchpoint) on a variable' and specifies the access modes (read, write, rw). It distinguishes itself from sibling tools like dbg_set_breakpoint which sets code breakpoints.

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 a watchpoint versus other debugging tools, nor does it mention any prerequisites or conditions for use.

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

dbg_sourceB

Return source lines around file:line (defaults to the current stop frame).

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
fileNo
lineNo
contextNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description alone must convey behavior. It explains the return content and default, but does not mention side effects, error handling, or any restrictions (e.g., read-only nature). Adequate but minimal.

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

Conciseness5/5

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

Single sentence that delivers the core purpose and a key default. No wasted words, efficiently structured.

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 4-parameter tool with no output schema and zero schema descriptions, the description is insufficient. It omits what 'source lines' looks like, how context works, and what happens on invalid input.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only explains 'file:line' implicitly and the default for file/line, but ignores session_id and context parameters. Leaves agents guessing about required vs optional and the meaning of context.

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

Purpose5/5

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

The description clearly states the verb 'Return' and the resource 'source lines around file:line', with a specific default behavior ('defaults to the current stop frame'). This distinguishes from sibling tools like dbg_backtrace and dbg_scopes.

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. The description does not mention when not to use it or any prerequisites.

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

dbg_startC

Start a debug session. mode: launch|compile_launch|attach. debugger: gdb|lldb.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
debuggerYes
programNo
sourceNo
pidNo
argsNo
cwdNo
envNo
stop_on_entryNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only states 'Start a debug session' but omits important behavioral traits like side effects (e.g., launching a process), error conditions, or whether it can be called multiple times. Minimal disclosure.

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?

Extremely concise at two sentences, no filler. However, the brevity sacrifices completeness for important parameters and usage guidance. Still, every sentence earns its place.

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 9 parameters (2 required) and no output schema or annotations, the description is severely incomplete. The agent cannot determine how to use optional parameters like 'source' or 'pid', nor what return value to expect. This is insufficient for a complex start-up tool.

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

Parameters2/5

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

Schema description coverage is 0%; the description only adds meaning for 'mode' and 'debugger' by listing their enum values. The other 7 parameters (program, source, pid, args, cwd, env, stop_on_entry) are left unexplained, so the agent lacks context for their use.

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 'Start a debug session' and lists the two key parameters (mode and debugger) with their allowed values. This distinguishes it from sibling tools that perform other debug actions like stepping or continuing.

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. Does not mention prerequisites (e.g., a program must exist for launch mode) or exclusions (e.g., when already in a session). Sibling tools imply this is the starting point, but no explicit instructions.

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

dbg_stepB

Step the current thread. kind: over|into|out. granularity: line|instruction.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
kindNoover
granularityNoline

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It does not mention side effects, state changes, or prerequisites (like requiring a paused thread). The effect of 'stepping' is implicit but lacks explicit detail on what happens during execution.

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: a single sentence with parameter enumeration. It is front-loaded with the verb 'Step', making the tool's action immediately clear. Every word adds value.

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 complexity of a debugging step operation, the description is insufficient. It lacks details on return values, prerequisite conditions, and behavior after stepping. With no output schema and sparse annotations, more information is needed for full comprehension.

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 0%, so the description must compensate. It adds value by listing valid values for 'kind' and 'granularity'. However, it does not explain the meaning of each option (e.g., 'over' vs 'into'), nor does it describe the 'session_id' parameter.

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 'Step' and the resource 'current thread'. It also enumerates the parameter options for 'kind' and 'granularity', making the tool's function unambiguous. Among sibling tools, it stands out as the only stepping operation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like dbg_continue or dbg_pause. No context on prerequisites (e.g., thread must be paused) or situations where other tools are preferred is given.

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

dbg_terminateC

Kill (launch) or detach (attach) and free the session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided. The description indicates destructive behavior ('kill' or 'detach') and mentions freeing a session, but does not elaborate on what resources are freed, whether the operation is reversible, or what happens to associated state. Without annotations, the description should provide more behavioral context.

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

Conciseness3/5

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

The description is concise at one sentence, but the parenthetical clauses create confusion rather than clarity. Front-loading is acceptable, but the structure could be improved by separating the two modes or providing clearer phrasing.

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 tool has one required parameter and no output schema, the description lacks information about return values, error conditions, or side effects. The phrase 'free the session' is vague. The description is insufficient for an agent to use the tool confidently.

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 one parameter (session_id) with no description, and the schema description coverage is 0%. The tool description does not explain the parameter's meaning, format, or constraints, leaving the agent without essential usage information.

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

Purpose3/5

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

The description states it kills/detaches and frees the session, providing a specific verb and resource. However, the parenthetical '(launch)' and '(attach)' introduce ambiguity about what exactly is being killed or detached, making the purpose less clear than it could be.

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 like dbg_pause or dbg_continue. The description does not specify prerequisites, such as whether the session must be running or attached, nor does it mention when not to use it.

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

dbg_variablesC

List variables under a variablesReference (from scopes or an expandable var).

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
refYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only mentions listing variables, with no details on behavior when references are invalid, recursing into children, or any side effects. 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.

Conciseness3/5

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

The description is very short and front-loaded, but it sacrifices necessary detail for brevity. It is concise but incomplete, earning a middling score.

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 complexity of debugger tools and the presence of many siblings, the description lacks context about return values, relation to scopes, and how to use the ref parameter. It is insufficient for an agent to understand the tool fully.

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%, meaning no parameter descriptions. The description does not explain the meaning of session_id or ref beyond implicitly referencing 'variablesReference'. It fails to compensate for the lack of schema documentation.

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 lists variables under a variablesReference and specifies that it can come from scopes or an expandable var. This is specific enough to understand the tool's core function, though it doesn't differentiate from sibling tools like dbg_scopes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It implies usage after obtaining a variablesReference but does not explicitly state prerequisites or exclusions.

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. 20 tool updatesv0.1.0
    • First observeddbg_backtrace
    • First observeddbg_continue
    • First observeddbg_disassemble
    • First observeddbg_evaluate
    • First observeddbg_list_breakpoints
    • First observeddbg_list_threads
    • First observeddbg_pause
    • First observeddbg_raw_command
    • First observeddbg_read_memory
    • First observeddbg_remove_breakpoint
    • First observeddbg_scopes
    • First observeddbg_select_frame
    • First observeddbg_set_breakpoint
    • First observeddbg_set_variable
    • First observeddbg_set_watchpoint
    • First observeddbg_source
    • First observeddbg_start
    • First observeddbg_step
    • First observeddbg_terminate
    • First observeddbg_variables

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose. For example, dbg_continue and dbg_step both resume execution but differ explicitly in granularity, and dbg_evaluate vs dbg_raw_command cover expression evaluation and raw commands respectively, leaving no ambiguity.

Naming Consistency5/5

All tools follow the 'dbg_' prefix followed by a verb_noun pattern (e.g., dbg_set_breakpoint, dbg_list_threads, dbg_source). The naming is uniform and predictable.

Tool Count5/5

20 tools is well-scoped for a debugger MCP server. It covers essential operations without being overwhelming, and each tool earns its place in the set.

Completeness5/5

The tool surface covers all core debugger actions: session start/terminate, breakpoints, stepping, continue, pause, variable inspection, memory, disassembly, source, threads, and backtrace. There are no obvious gaps for standard debugging workflows.

Maintenance

ActivityStale
ResponsivenessNo issues

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
    A
    quality
    D
    maintenance
    Provides structured debugging capabilities through LLDB, enabling AI assistants to set breakpoints, inspect variables, analyze crashes, disassemble code, and evaluate expressions in C/C++ programs.
    17
    3
    Apache 2.0
  • A
    license
    C
    quality
    A
    maintenance
    Enables AI agents to perform step-through debugging of Python, JavaScript/Node.js, and Rust programs using the Debug Adapter Protocol, with support for breakpoints, variable inspection, and stack traces.
    21
    160
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI agents to debug embedded systems by providing a comprehensive interface for GDB operations across multiple architectures like ARM and x86. It supports remote debugging via gdbserver or QEMU, allowing for detailed inspection of memory, registers, stack frames, and variables.
    31
    -

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/birdeclipse/gdb-mcp'

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