Skip to main content
Glama

debugger_read_memory

Read-only

Read a bounded range of memory from a suspended debugger session while preserving missing dump memory explicitly, so gap data remains visible during inspection.

Instructions

Read a bounded memory range, preserving missing dump memory explicitly.

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": {
      "session_id": "<session_id>",
      "reference": "<reference>",
      "offset": "<offset>",
      "count": "<count>"
    },
    "name": "debugger_read_memory"
  }
}

Input Schema

NameRequiredDescriptionDefault
countYes
offsetYes
timeoutNo
referenceYes
session_idYes

Output Schema

NameRequiredDescriptionDefault
dataNo
addressNo
snapshotYes
unreadable_bytesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.1

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The phrase 'preserving missing dump memory explicitly' adds genuine behavioral context about how unmapped or absent dump regions are represented rather than throwing an error, but nothing is said about failure modes, expiry of the generation handle, or timeout behavior.

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 short sentence that front-loads the action and scope with no wasted words. It is efficient, though its terseness leaves little room for the context an agent needs.

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 5 parameters, 0% schema description coverage, and a non-trivial MemoryRef/generation model, the description does too little. Even with an output schema handling return values and annotations covering safety, the offset/count semantics critical to a correct call are left unexplained.

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 effectively 0% for the top-level properties, and the description adds no semantics for offset (relative to what base?), count (bytes?), or timeout. With 5 parameters and no compensating explanation in the description, the agent must infer the units and reference frame for the core address arithmetic.

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 gives a specific verb and resource — 'Read a bounded memory range' — which is clearly distinct from sibling tools like debugger_disassemble, debugger_variables, or debugger_scopes. It does not explicitly name those siblings, so it falls short of 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?

There is no guidance on when to use this tool versus debugger_disassemble or debugger_variables, and no mention of prerequisites such as needing a live debugger_get() snapshot with a suspended generation. The 'bounded' qualifier hints at limits but gives no exclusion criteria.

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