Skip to main content
Glama

CaptureStopContextStructured

Read-onlyIdempotent

Capture registers, memory, stack, call stack, and nearby disassembly in one structured payload at a debug stop, giving models full context after a breakpoint hit.

Instructions

Capture a rich, structured snapshot of the current stop — registers, selected memory/stack slots, the call stack, and disassembly around the instruction pointer — in one payload. Ideal right after a breakpoint hit so the model gets full context in a single round-trip.

Args: registers_json: Optional JSON array of register names to include (empty = the standard set). expressions_json: Optional JSON array of x64dbg expressions to evaluate. ranges_json: Optional JSON array of {label, expr, size, format} memory ranges to read. stack_slots_json: Optional JSON array describing stack slots to decode. disasm_before: Instructions to disassemble before the IP (default 2). disasm_after: Instructions to disassemble after the IP (default 4). callstack_limit: Maximum call-stack frames to include (default 12).

Returns: {"ok": bool, "registers": ..., "memory": ..., "callStack": ..., "disasm": ...} structured context, or an error envelope.

Input Schema

NameRequiredDescriptionDefault
ranges_jsonNo
disasm_afterNo
disasm_beforeNo
registers_jsonNo
callstack_limitNo
expressions_jsonNo
stack_slots_jsonNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.9

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so safety and repeatability are covered. The description adds the legitimate operational context that this is a snapshot-style read best issued after a breakpoint hit. It does not disclose prerequisites (e.g. whether the debuggee must be paused) or any failure/error conditions, which for a capture tool is a modest remaining 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?

The core purpose is front-loaded in the first sentence, followed by clearly delimited Args and Returns sections where each line earns its place. It is slightly verbose in places but no sentence is wasted, and the structure is easy to scan.

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?

With no output schema, the description commendably supplies the return envelope ({"ok", registers, memory, callStack, disasm} or an error envelope), and it covers usage timing and every parameter. What is missing is prerequisite state (paused debuggee / active session) and error semantics, which an agent would want before calling.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the full parameter burden, and it largely does: it documents all seven params with defaults and gives the ranges_json shape ({label, expr, size, format}) plus the 'empty = standard set' behavior for registers. The stack_slots_json and expressions_json entries remain format-vague ('JSON array describing stack slots'), which keeps it short of a 5.

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 and resource ('Capture a rich, structured snapshot of the current stop') and enumerates exactly what the snapshot contains: registers, memory/stack slots, call stack, and disassembly around the IP. The 'in one payload'/'single round-trip' framing implicitly distinguishes it from granular siblings like GetRegisterDump, GetCallStack, and DisasmRange, but those siblings are never named, so 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 Guidelines4/5

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

'Ideal right after a breakpoint hit so the model gets full context in a single round-trip' gives clear, actionable timing guidance. There is no explicit when-not guidance and no named alternatives (e.g. use GetRegisterDump when you only need registers), but the context for use is unambiguous.

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