Skip to main content
Glama

Read struct fields at an address

read_struct
Read-only

Extract struct fields from memory at a given address, auto-detecting the struct type when omitted, for typed data inspection in IDA.

Instructions

Read struct fields from memory at address; auto-detect type when possible.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queriesYes
instance_idNoOptional database instance id. If omitted, use the current target.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv20261008.0.1

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safe-read profile is covered. The description adds the auto-detection behavior, which is genuinely useful context for the struct field, but says nothing about failure modes when a type cannot be detected or how addresses are resolved. With annotations carrying the safety profile, a 3 is appropriate.

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 clause with zero waste. It is arguably too terse for a required parameter whose structure is undocumented, but nothing is redundant.

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 needn't be explained, and the read-safety profile is covered by annotations. The remaining gap is the undocumented 'queries' parameter (required, anyOf array-or-object), which the description does not address at all.

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%, and the required 'queries' parameter has an empty schema description despite an anyOf accepting either an array of {addr, struct} objects or a single object. The description implies the addr and optional struct semantics ('auto-detect type when possible') but does not explain the batch/single duality, so it only partially compensates.

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?

States a specific verb and resource ('Read struct fields from memory at address') and distinguishes itself from primitive readers like get_int/get_string through the 'struct' framing. However, it never explicitly contrasts itself with the many sibling read tools (get_bytes, get_global_value, type_inspect), so differentiation is inferred rather than stated.

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 only usage signal is 'auto-detect type when possible', which addresses the optional struct name but not when to choose this tool over get_bytes, get_int, or type_inspect. No prerequisites, exclusions, or alternative routing are given.

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