Skip to main content
Glama

debugger_launch

Destructive

Launch a C++ native executable with initial breakpoints and debugger settings to begin inspecting code execution.

Instructions

Launch a project/storage native executable with initial breakpoints.

Tool call template

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

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "toolset_id": "<toolset_id>",
      "options": "<options>"
    },
    "name": "debugger_launch"
  }
}

Input Schema

NameRequiredDescriptionDefault
adapterNolldb-dap
initialNo
optionsYes
timeoutNo
toolset_idYes

Output Schema

NameRequiredDescriptionDefault
snapshotYes
executionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.1

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is known, but the description adds nothing beyond that: it does not say a process is spawned, that it stays alive until debugger_close, how the timeout terminates it, or that stop_on_entry defaults to true so execution is paused immediately. For a process-spawning mutation tool this is a significant disclosure gap.

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?

A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity borders on under-specification for a tool with a large nested options object.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the nested $defs document much of the configuration surface. Nevertheless, for a complex launch tool with session lifetime, timeout, and toolset scoping, the single sentence leaves key operational context unstated.

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?

Overall schema description coverage is reported as 0%, so the description should compensate, yet it only hints at two of the five top-level parameters ('project/storage' for the options.cwd/executable fields and 'initial breakpoints' for the 'initial' BreakpointPlan). It says nothing about toolset_id, adapter, or timeout, though the embedded $defs do carry some descriptive text for nested fields.

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

Purpose4/5

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

The description names a specific verb ('Launch') and a specific resource ('project/storage native executable'), plus the salient extra ('initial breakpoints'). It implicitly distinguishes itself from debugger_attach, but never names that sibling or any other, so the differentiation is inferential rather than explicit.

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 launch versus debugger_attach, debugger_open_dump, or reusing an existing session from debugger_sessions/debugger_get. No prerequisites are stated, such as needing a toolset_id or an adapter, and no note on what to do after launch (e.g. debugger_continue, debugger_wait).

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