Skip to main content
Glama
verifizieren

Perception RE MCP Server

by verifizieren

re_scan

Search process memory for byte patterns, typed values, pointer targets, heap region chunking, cross-references, and string references, with configurable region and result limits.

Instructions

Search process memory. ops: pattern {signature,start?,size?,module_name?} (first match), pattern_all {signature,...,max_results?}, value {type,value,heap_only?,page_offset?,page_limit?}, ptr_to {target,heap_only?,page_offset?,page_limit?}, heap_regions {regions[],type,value,max_results?,alignment?,max_total_bytes?} (chunks all regions with overlap; alignment default=val_size), xrefs {target,start?,size?,module_name?}, string_refs {search_text} (whole-process). NOTE: pattern/xrefs with no module_name/start+size scan 256MB from process base. page_limit/max_results cap RETURNED results, not scan cost. Heavy scans have a caller-side 120s timeout; the AS loop is not cancelled.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
opYesOperation
sizeNopattern/xrefs: region size in hex
typeNovalue: scan type. heap_regions: u32|u64|pointer
startNopattern/xrefs: start hex addr (default module base)
valueNovalue/heap_regions: hex string for u64/pointer, number for u32/float/double
targetNoptr_to/xrefs: target hex address
regionsNoheap_regions: from get_vad_snapshot (re_vm vad)
alignmentNoheap_regions: byte stride between value probes (1|2|4|8). Default = val_size (fast, aligned-only). Use 1 for unaligned hits (slow).
heap_onlyNovalue/ptr_to: only heap regions (default false)
signatureNopattern/pattern_all: IDA-style e.g. '48 8B ?? ?? ?? 89'
page_limitNovalue/ptr_to: max returned (default 100, max 5000)
max_resultsNopattern_all/heap_regions: cap on matches (max 5000)
max_stringsNostring_refs: max distinct string addrs to trace (default 20, max 100)
module_nameNoModule to scan (default main)
page_offsetNovalue/ptr_to: skip N results (default 0)
search_textNostring_refs: text to find refs to
max_total_refsNostring_refs: hard cap on total refs returned (default 500, max 2000)
max_total_bytesNoheap_regions: total scan budget across all regions (default 4GB, max 16GB). Sets budget_exceeded:true if hit.
max_refs_per_stringNostring_refs: max ptr refs per string (default 50, max 200)
Behavior5/5

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

With no annotations, the description fully discloses key behaviors: the 256MB default scan range when module_name/start+size are omitted, that page_limit/max_results cap returned results not scan cost, the 120s caller-side timeout with no cancellation of the AS loop, and heap_regions chunking with overlap and alignment default. These are non-obvious and crucial for an agent to invoke the tool correctly.

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 dense and information-rich but well-structured: it lists ops in a compact notation, then provides critical notes. It could be more scannable with bullet points, but it avoids waste and efficiently conveys a lot of required nuance for a complex tool.

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 tool with 7 operations and 19 parameters, the description covers all ops, parameter relationships, and key behavioral constraints. It does not explicitly state the return format or types, but with no output schema, the description's scope is reasonably complete for an agent to make correct invocations.

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 100%, so each parameter is already documented. The description adds value by mapping parameters to operations, clarifying defaults (e.g., alignment default=val_size), and explaining behavior like page_limit not affecting scan cost. This goes beyond schema text and helps the agent understand interactions.

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 'Search process memory' and enumerates seven distinct operations (pattern, pattern_all, value, ptr_to, heap_regions, xrefs, string_refs), each with its parameters. This makes the tool's purpose unmistakable and differentiates it from sibling tools like re_read or re_write.

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 does not explicitly list when to use this tool vs alternatives, but it implies usage context by detailing operations and parameters. It includes important usage caveats (e.g., page_limit caps returned results, heavy scans have a 120s timeout) but lacks explicit 'when not to use this' or alternative tool references. This is minimum viable guidance.

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

Install Server

Other Tools

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/verifizieren/perception-mcp'

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