Skip to main content
Glama

ih8Sn1ff

ci ci-windows License: MIT

Repository: https://github.com/ih8w1nd/ih8sn1ff

Agent-first reverse-engineering toolkit with a native MCP server and a matching CLI. Built for the workflow that actually cracks modern protected binaries: run → dump → rebuild → analyze → decompile, with every step scriptable and every result LLM-friendly.

run_and_dump  →  rebuild_pe  →  trim_pe  →  delphi_methods  →  ghidra_decompile
     │                │             │              │                   │
  process           memory→file  analysis-sized  RTTI name→RVA      C pseudo-code
  modules           aligned PE   PE for Ghidra   (Delphi apps)

Why another RE tool?

  • MCP-native. Every capability is exposed as an MCP tool, so an agent (Claude, or any MCP host) drives the analysis loop directly: scan strings, find xrefs, decompile, dump the live process, re-scan.

  • Actually practical on packed binaries. VMProtect- / Themida-class wrappers are beaten at runtime, not statically. ih8Sn1ff ships the operational chain used for that: elevated module dumping, memory-image → file-aligned PE rebuild, analysis-sized PE trimming, per-function "decrypt-on-execute" workflows.

  • Delphi-aware. Most commercial RE targets in this space are Delphi; ih8Sn1ff maps published-method RTTI name → code RVA in one call — the trick that turns a 500 MB mystery dump into a navigable program.

  • Live debugging without plugins. Launch Windows targets (x64 or WOW64 x86) under a built-in debugger, set software breakpoints, read registers and memory, dump modules at a stop, and continue — as MCP calls or ih8sn1ff dbg shell commands.

  • Deterministic and auditable. Plain Python, no hidden services. Every tool returns bounds-checked, explicitly-limited results (offsets, digests, counts).

It does not replace Ghidra — it orchestrates it. Deep static analysis stays in Ghidra (headless scripts included). For dynamic work ih8Sn1ff ships its own x64 debugger for scripted sessions; x64dbg remains better for manual GUI exploring.

Related MCP server: REA

RE field notes

The file is a suggestion. Memory is the confession.

A loader is a promise; a dump is a receipt. When the two disagree, trust the one that actually executed.

     on-disk image          live memory           analysis image
   ┌──────────────┐      ┌──────────────┐      ┌──────────────┐
   │  encrypted   │      │  decrypted   │      │   readable   │
   │  sections    │ ───▶ │  modules     │ ───▶ │  functions   │
   └──────────────┘      └──────────────┘      └──────────────┘
        loader                 dump               rebuild

Field notes:

  • Run it before you trust it. The static view is a proposal; execution is the vote.

  • Strings lie. References rarely do. Follow the pointer, not the marketing copy.

  • First execution decrypts more than any static pass. Stimulate the feature, then dump again.

  • If it decrypted once, it will decrypt again. Reproduce the inputs, not just the bytes.

  • Patch only what you can restore. Keep a clean copy and a log of every byte you touch.

Murphy's laws of reversing

  • The function you need is always one xref deeper.

  • Nothing is unreachable once you find the indirect call table.

  • halt_baddata is not a suggestion; it is a dare.

  • The bug is never in the compiler. Except that one time, and it was your code anyway.

  • A stack trace is just the program admitting where it gave up.

  • Every obfuscator is a love letter to the next analyst.

Why "ih8sn1ff"?

The ih8 prefix follows the author's handle ih8w1nd; sn1ff is for the part of reversing that feels like packet sniffing: watching what a program actually does instead of what it claims. The 1 is not negotiable.

Install

pip install ih8sn1ff            # core: capstone + pefile
pip install ih8sn1ff[elf]       # + ELF metadata (pyelftools)
pip install ih8sn1ff[emu]       # + Unicorn emulation
pip install ih8sn1ff[yara]      # + YARA (bundled packer/anti-debug rules)
pip install ih8sn1ff[all]       # everything optional

Until the package is published, install from a checkout:

pip install -e ".[dev,elf]"

External engines (optional, auto-detected):

Engine

Enable with

Ghidra 12.x

GHIDRA_INSTALL_DIR pointing at the extracted release

.NET decompiler

dotnet tool install -g ilspycmd

x64dbg

optional manual sessions; the built-in x64 debugger needs no extra engine

MCP quickstart

Register the stdio server (Claude Code example, .mcp.json):

{
  "mcpServers": {
    "ih8sn1ff": {
      "command": "ih8sn1ff-mcp",
      "env": { "GHIDRA_INSTALL_DIR": "C:/tools/ghidra_12.1.4_PUBLIC" }
    }
  }
}

Full setup for Claude Code, Claude Desktop, Cursor and uv lives in docs/MCP-SETUP.md. One-liner for Claude Code:

claude mcp add ih8sn1ff -e GHIDRA_INSTALL_DIR=C:/tools/ghidra_12.1.4_PUBLIC -- ih8sn1ff-mcp

Then ask the agent:

Dump the modules of PID 7123, rebuild a file-aligned PE, trim it for analysis, map Delphi published methods, and decompile everything that references KSTRINGB.

CLI quickstart

ih8sn1ff info sample.exe
ih8sn1ff strings sample.exe --regex "AT\\+" --min-len 6
ih8sn1ff entropy sample.exe --window 1M
ih8sn1ff dump 7123 --out dumps/ --include-main
ih8sn1ff rebuild dumps/00_main.exe.bin -o out/rebuilt.exe
ih8sn1ff trim out/rebuilt.exe -o out/trimmed.exe --scratch-prefix-end 0x1A00000
ih8sn1ff delphi out/main.bin --names-file names.txt
ih8sn1ff disasm out/main.bin --addr 0x163a454 --count 80
ih8sn1ff xrefs out/main.bin --string "KSTRINGB"
ih8sn1ff ghidra import out/trimmed.exe --project out/ghidra_proj
ih8sn1ff ghidra decompile out/ghidra_proj --rva 0x163a454 --rva 0x165103c
ih8sn1ff imports dumps/00_main.exe.bin -o out/rebuilt.exe --meta dumps/dump_meta.json
ih8sn1ff xrefs-rip out/trimmed.exe --string "KSTRINGB"
ih8sn1ff callgraph out/trimmed.exe --root 0x163a454 --depth 2
ih8sn1ff emulate out/trimmed.exe --entry 0x163a454 --max-instructions 500
ih8sn1ff dbg once C:/target/app.exe --dump out/entrydump
ih8sn1ff yara sample.exe

Tools

See docs/TOOLS.md for the full parameter/output reference. Highlights:

Tool

Purpose

bin_info

format, arch, sections, entropy, compiler/linker markers

strings_scan

ASCII/UTF-16 strings with offsets, regex, min length

entropy_map

windowed entropy to separate code/data/packed regions

run_and_dump

launch (elevated) and snapshot module images — the unpacking step

dump_process

dump modules of an already-running PID

rebuild_pe

memory image → file-aligned PE (Scylla-style unmap)

trim_pe

analysis-sized PE for Ghidra (code sections + VA prefix)

delphi_methods

published-method RTTI: name → code RVA

disasm

Capstone listing with inline string-ref annotations

xrefs

absolute-immediate xrefs to strings/values inside code ranges

xrefs_rip / callgraph

RIP-relative refs and direct-call graphs

emulate

bounded Unicorn trace at an entry RVA

debug_launch … debug_close

live Windows sessions (x64 or WOW64 x86): breakpoints, registers, memory, module dumps

rebuild_imports

IAT/import directory rebuild from dump_meta.json

evidence_list / evidence_read

journaled tool results with digests

ghidra_import

headless import + auto-analysis into a project

ghidra_decompile

decompile by RVA list or by string keywords

dotnet_types / dotnet_type

ILSpy type inventory / decompile

yara_scan / yara_pack

YARA scan; bundled packer/anti-debug rules by default

Workflows

docs/WORKFLOWS.md covers, step by step:

  1. Unpacking VMProtect/Themida-class targets by runtime dumping (including the per-function encryption wrinkle — features must execute before their code decrypts).

  2. Rebuilding PEs from memory images and rebuilding the IAT from dump_meta.json.

  3. Delphi app triage: RTTI method tables, unit/class inventories, DFM islands.

  4. Ghidra headless decompilation driven by strings, not symbol names.

  5. Live x64 debugging and bounded emulation for decrypt-on-execute targets.

  6. When to stop scripting and switch to manual x64dbg / Frida.

Who builds this?

ih8w1nd is a reverse engineer and toolmaker who treats "impossible" as a scheduling problem. Has built firmware flashing and device-service systems from protocol captures, turned packed binaries into readable code, and convinced devices that "unsupported" was a temporary opinion. ih8Sn1ff exists because the available tools were not fast, honest, or strange enough.

  • GitHub: @ih8w1nd

  • Track record: protocol captures turned into working flashing pipelines; packed binaries turned into readable code; "unsupported" devices turned into success logs.

  • Approach: ask the binary politely, then open a debugger.

  • House motto: "The file is a suggestion. Memory is the confession."

ih8Sn1ff is a dual-use engineering toolkit for authorized reverse engineering: malware analysis, interoperability, security research, CTFs, and software you own or are licensed to inspect. Do not use it to bypass licensing, DRM, or access controls on systems you do not own. The authors take no responsibility for misuse.

Status

v0.3 — 35 MCP tools: runtime dump + PE/IAT rebuild, live debugger (x64 and WOW64 x86), Unicorn emulation, Delphi RTTI, Ghidra headless, .NET, YARA, evidence journal. The ih8sn1ff name was available on PyPI on 2026-10-19 (HTTP 404); publishing still needs the owner's token. Known limits: import rebuild is experimental on heavily obfuscated/hooked IATs; VMProtect/Themida devirtualization is not automated (the runtime-dump workflow is). Contributions welcome; see CONTRIBUTING.md.

Available Tools

35 tools
bin_infoC

PE/ELF metadata: arch, image base, entry RVA, sections, entropy, packer hints.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, and it reveals only the output fields. It does not state whether the input is an on-disk file versus a live/dumped process image, whether a non-PE/ELF path errors or returns empty, or whether it is strictly read-only (implied only by the verbless metadata framing).

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 compact sentence, front-loaded with the tool's domain and immediately followed by the payload of fields. No filler; it could only improve by adding one sentence of routing guidance.

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?

The field enumeration partially substitutes for the missing output schema, which is valuable. However, with no annotations and no schema descriptions, the definition still leaves open input-format expectations and error behavior for an unrecognized binary.

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?

One required parameter ('path') with 0% schema description coverage, so the description must compensate. The PE/ELF framing implies 'path' points at a binary file rather than a memory region or process name, which is some added meaning, but format expectations (absolute path, workspace-relative, evidence ID) are not specified.

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 the resource precisely (PE/ELF binary metadata) and enumerates the specific fields returned (arch, image base, entry RVA, sections, entropy, packer hints), so the agent knows this is a static metadata extractor rather than a disassembler or entropy scanner. It does not name a sibling tool to differentiate from, so it stops 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 when-to-use guidance, no when-not-to-use, and no mention of alternatives like strings_scan, entropy_map, or disasm. The agent is left to infer that this is the right first-pass inventory tool purely from the field list.

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

callgraphB

Breadth-first direct-call graph from an RVA/VA (indirect calls unresolved).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
rootYes
depthNo
layoutNoauto
max_nodesNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden, and it usefully discloses that indirect calls are unresolved, which is real limitation context. However it says nothing about permissions, output form, or traversal cost, leaving substantial gaps for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence that front-loads the operation and appends the key caveat in parentheses. Every clause earns its place.

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 5-parameter tool with no annotations, no output schema, and 0% schema coverage, one sentence is insufficient. The traversal depth, node cap, and layout behavior an agent must set are unexplained, and nothing indicates what the graph output looks like.

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 coverage is 0% across 5 params. The description only indirectly touches 'root' via 'RVA/VA' and hints at traversal via 'breadth-first', while path, depth, layout, and max_nodes are entirely undocumented in both schema and description.

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+resource: it produces a breadth-first direct-call graph rooted at an RVA/VA. This is clear and distinguishable from generic xref tools like xrefs, though it never explicitly contrasts itself with them.

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?

No when-to-use or when-not-to-use guidance. Given siblings like xrefs and xrefs_rip that also traverse references, the description gives no basis for choosing callgraph over them.

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

debug_breakpoint_addC

Add a software breakpoint by absolute VA or module + RVA.

ParametersJSON Schema
NameRequiredDescriptionDefault
vaNo
rvaNo
moduleNo
session_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it only states that the breakpoint is "software". It omits whether the session must be suspended, whether breakpoints persist or are deduplicated, permission/auth requirements, and what the call returns.

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, so the core purpose is immediately visible. Its brevity is efficient rather than padded, though it is arguably too terse for the tool's complexity.

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 state-mutating debugger tool with no annotations, no output schema, and 0% parameter documentation, the description is too thin. Crucial facts for correct invocation, such as session preconditions, addressing-mode exclusivity, and address format, are absent.

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 0% and the schema exposes only bare titles, so the description must compensate. It names va, module, and rva and their relationship (alternate addressing modes), which is real value, but it omits format (hex string vs int), the exclusivity rule, and session_id entirely.

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+resource ("Add a software breakpoint") and the two addressing modes, which distinguishes it from the sibling debug_breakpoint_remove. However it doesn't explicitly name or contrast with that sibling, so it stops 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 Guidelines3/5

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

The phrase "by absolute VA or module + RVA" implies the two accepted usage modes, but there is no explicit context such as whether the target session must be paused, attached, or suspended, and no stated alternatives. Usage is only implied.

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

debug_breakpoint_removeC

Remove a breakpoint and restore the original byte.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes
session_idYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose one real behavioral trait: it restores the original byte rather than just deleting bookkeeping. However, it says nothing about session requirements, what happens if no breakpoint exists at the address, or persistence across sessions.

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?

One short, front-loaded sentence with zero waste. It is arguably too terse for a state mutation tool, but as a matter of conciseness and structure it is efficient.

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 debugger-state mutation with no annotations, no output schema, and zero parameter documentation, the description leaves substantial gaps: preconditions, error behavior, and the meaning of both required params are undocumented.

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 0% and the description mentions neither 'address' nor 'session_id'. The names are fairly self-explanatory, so this isn't fully opaque, but the description adds no semantics such as address format (hex/RVA/VA) or session scope.

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?

A specific verb+resource ('Remove a breakpoint') that clearly pairs with the sibling debug_breakpoint_add. It does not explicitly name the sibling or scope (e.g., session-wide vs. specific address), so it is clear but not fully differentiated.

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?

No when-to-use, when-not-to-use, preconditions, or alternative routing is given. The only implied usage is the obvious inverse of debug_breakpoint_add, which the agent must infer on its own.

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

debug_closeB

Terminate the target (if alive) and release the debug session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the key behavioral trait: the target is terminated (destructively) and the debug session is released, plus the conditional '(if alive)' which implies idempotency when no target is running. It omits whether session state/breakpoints are discarded, whether the session id becomes invalid afterward, and any permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the destructive effect is stated first. Every clause earns its place.

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?

For a one-parameter tool with no output schema, the description covers the primary effect adequately, but it leaves session_id semantics and post-close session validity unexplained. It is minimally viable rather than complete.

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 0% for the single required session_id parameter, and the description adds no meaning about it -- not its origin (e.g., returned by debug_launch), format, or reuse after close. The description does not compensate for the documentation gap.

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 effect: it terminates the target process and releases the debug session. That is enough to distinguish it from debug_launch, debug_continue, and debug_breakpoint_remove. It stops short of explicitly naming a sibling it complements, so a 5 is not warranted.

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 statement of when to call this versus alternatives, no prerequisites, and no note about whether it should be called once per session or is safe to repeat. Usage is only implied by the tool name.

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

debug_continueB

Resume a debug session and wait for the next stop or timeout.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
timeout_msNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does usefully disclose the blocking semantics: it waits for the next stop or a timeout. But it omits what a 'stop' entails, whether control returns on breakpoint vs exit, and any session/auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the core behavior (resume and block) leads and the timeout caveat follows.

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?

With no annotations, no output schema, and undocumented parameters, the description leaves key gaps: it does not say what state/result comes back on a stop, whether the session must be paused first, or how errors/timeouts are surfaced.

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 0%, so the description must compensate, yet it never explains session_id or timeout_ms. The word 'timeout' hints at the second parameter but gives no units, default, or relationship to the required session_id.

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 states a specific verb (resume) and resource (debug session), clearly distinct from siblings like debug_launch, debug_close, and debug_state. However, it does not explicitly differentiate itself from the other debug_* tools or name which one to reach for instead.

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 explicit when-to-use guidance, no prerequisite stating that a session must already be launched and paused, and no mention of alternatives. The agent must infer the context entirely from the verb.

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

debug_dumpC

Dump module images of the stopped process (dump offset == RVA).

ParametersJSON Schema
NameRequiredDescriptionDefault
outdirNodumps
session_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses the stopped-process precondition and RVA-offset semantics, but says nothing about the mutation side effect (writing files to disk), where output lands, required permissions, or failure modes on a running session.

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 tight sentence with the resource and the key offset semantic front-loaded. No filler, though it is arguably under-specified rather than optimally concise for the tool's complexity.

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 file-producing debug tool with no annotations, no output schema, and zero parameter documentation, the description leaves too much unstated: output naming/location conventions, session requirements, and interaction with dump_process/run_and_dump. The stopped-process hint is the only completeness aid.

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 0% across both parameters, so the description must compensate. The parenthetical about RVA relates to dump content semantics, not to either parameter; neither 'outdir' nor the required 'session_id' is explained in the description.

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 ('Dump') and resource ('module images of the stopped process') with a useful scope qualifier ('dump offset == RVA'). However, it does not distinguish itself from close siblings like dump_process, run_and_dump, or debug_read_memory, so an agent cannot tell them apart from the text alone.

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 phrase 'of the stopped process' implies the precondition that a debug session must be halted before calling, which is real implied guidance. But there is no explicit when-to-use/when-not, and no alternative tool is named despite several overlapping dump-related siblings.

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

debug_launchC

Launch a Windows target (x64 or WOW64 x86) under the debugger; specs 'module:0xRVA' or '0xVA'.

ParametersJSON Schema
NameRequiredDescriptionDefault
exeYes
argsNo
timeout_msNo
breakpointsNo
stop_at_entryNo

TDQS

C2.9/5.0
Behavior2/5

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

With zero annotations, the description carries the full behavioral burden and mostly fails it. It does not say whether the debugger remains attached after launch, whether the target blocks until debug_close, how timeout_ms failure manifests, or what permissions/OS constraints apply to attaching to a process.

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 dense sentence that front-loads the action and scope, then appends the breakpoint spec syntax. No filler, though the semicolon splice makes the address-format note easy to miss as applying only to breakpoints.

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?

Five parameters at 0% coverage, no annotations, and no output schema, yet the description covers at most one parameter and never states what a launch returns (PID? handle? session id?) that later tools would need. Inadequate for a stateful session-creating tool.

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 0%, so the description must compensate and it only partially does — the 'module:0xRVA' or '0xVA' syntax documents breakpoint address format, but exe, args, timeout_ms, and stop_at_entry are left entirely unexplained in both schema and description.

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?

Specific verb ('Launch') plus resource ('Windows target under the debugger') with the architecture variants (x64, WOW64 x86) spelled out. It implicitly separates itself from debug_continue/debug_close as the session-start tool, but never names those siblings to confirm the lifecycle relationship.

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 makes clear this is the entry point of a debug session, but gives no explicit when-to-use guidance against alternatives like run_and_dump or emulate, and no stated prerequisite that a session must be closed with debug_close.

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

debug_read_memoryC

Read target memory (hex) at an absolute address.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo
addressYes
session_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden. It discloses the output format ("hex") and that the address is absolute, which is useful. However it omits whether a live session is required, what happens on invalid addresses, and what the return structure looks like – significant gaps for a debug tool with zero annotation coverage.

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 tight sentence that front-loads the verb and resource. No wasted words, though it is arguably under-specified rather than optimally concise.

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 no annotations, no output schema, and 0% parameter coverage, the description is too thin. It should explain the session requirement, the role of size, and expected return behavior to let an agent call it correctly.

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 0%, so the description must compensate. It clarifies that "address" is an absolute address, but says nothing about session_id or the size parameter (default 64), leaving two of three parameters undocumented.

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 ("Read") and resource ("target memory") with a format qualifier ("hex") and scope ("at an absolute address"). This distinguishes it from sibling debug_write_memory, though it stops short of naming siblings explicitly.

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?

No statement of when to use this tool versus alternatives like debug_dump or debug_state, and no prerequisites such as requiring an active debug session. Usage is only weakly implied by the debug_ prefix.

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

debug_registersC

Read x64 general-purpose registers of the last stopped thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, yet it discloses nothing about failure modes (no session, no stopped thread), permissions, or return shape. The phrase 'last stopped thread' is the only behavioral signal and it is left unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence, front-loaded with the verb and resource, with no wasted words. Structurally ideal for a narrow read tool.

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?

For a simple one-parameter read tool this is minimally adequate, but with no output schema and no annotations the description should at least sketch the return content or the session requirements. As written, an agent still has unanswered questions about preconditions and output.

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?

With one required parameter at 0% schema description coverage, the description must compensate but never mentions session_id or what value it expects. The lone param is undocumented in both structured data and prose.

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?

Specific verb ('Read') plus a precise resource ('x64 general-purpose registers of the last stopped thread'), which is far better than a tautology. It does not, however, differentiate itself from the sibling debug_state, which plausibly also exposes register state, so it stops 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?

No when-to-use guidance, no naming of alternatives (debug_state, debug_read_memory, debug_dump), and no prerequisites beyond the implicit 'last stopped thread' hint. An agent gets no routing help for choosing this over related debug reads.

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

debug_stateB

Return the debug session summary without touching the target.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the key non-invasive behavior ('without touching the target'), which is valuable, but omits prerequisites (active session), error behavior, and whether it alters or consumes session state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the action and the key constraint. There is no filler or redundancy.

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 debug-session tool with no annotations and no output schema, the description is too thin: it does not explain what the 'summary' contains, the need for an existing session, or how to interpret results. An agent would have to guess at important call conditions.

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 0% and the description never mentions the required session_id parameter. The parameter name is self-explanatory, but the description adds no meaning beyond the schema title 'Session Id'.

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 ('Return') and resource ('debug session summary'), and the qualifier 'without touching the target' distinguishes it from siblings that mutate or directly inspect the live process (debug_continue, debug_read_memory). Clear enough for selection, though it does not name an explicit alternative.

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?

Provides an implicit usage condition ('without touching the target') but does not state when to choose this over debug_registers, debug_dump, or debug_close, nor when it is inappropriate. No explicit alternatives or exclusions are given.

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

debug_write_memoryC

Write bytes (hex string) into target memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes
data_hexYes
session_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden for a mutation tool. It implies memory mutation but never states that this alters live process state, requires a valid session, may corrupt or crash the target, or whether the write is reversible.

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 wasted words. It is efficient, though the brevity is partly achieved by omitting information the agent actually 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?

With no annotations, no output schema, and zero parameter documentation, the definition is too thin for a state-mutating debug tool. An agent cannot determine the required session lifecycle, address conventions, or failure/corruption behavior.

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 0%, so all three parameters are undocumented in structured fields. The description only clarifies the data_hex format ('hex string'); address format (absolute/relative, base) and session_id provenance remain unexplained.

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 (write) and resource (target memory) and clarifies the data format as a hex string, which cleanly separates it from the sibling debug_read_memory. It does not explicitly name or contrast that sibling, so it falls short of the top score.

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?

No when-to-use guidance, no prerequisites, and no mention of the active debug session required to make a write meaningful. The agent must infer everything from the tool name alone.

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

delphi_methodsC

Map Delphi published-method names to code RVAs.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNo
dump_pathYes
names_fileNo
max_occurrencesNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It never says whether this is a read-only analysis, what happens when a name is not found, how max_occurrences affects results, or what the output looks like—only the bare transform is stated.

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 that states the core mapping with zero padding. It is efficient, though the brevity reflects under-specification more than disciplined editing.

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?

With 4 undocumented parameters, no annotations, and no output schema, the definition leaves too much unstated—especially the distinction between the names and names_file inputs. Not enough for an agent to call it confidently.

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 0% across 4 parameters, so the description must compensate and does not. It never explains the required dump_path, the names-vs-names_file alternatives, or what max_occurrences (default 4) controls.

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 (Map) and resource (Delphi published-method names to code RVAs), which is concrete and actionable. It does not differentiate itself from the sibling delphi_units, so an agent must infer the split from names alone.

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?

No when-to-use guidance, no prerequisites, and no mention of the related delphi_units tool. The agent gets no signal about when this mapping is the right call versus other Delphi/disassembly tools.

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

delphi_unitsC

Frequency-ranked Delphi unit (a.b.c) and TClass inventory.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
dump_pathYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It does disclose one real trait — results are frequency-ranked — but says nothing about whether the operation is read-only, whether dump_path must point to a prior dump, or how 'top' limits output. For a tool with zero annotation coverage this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single terse fragment with no wasted words, and the key concept (frequency-ranked inventory) is front-loaded. But it is under-specified rather than genuinely concise — brevity here comes at the cost of missing the required input and its meaning.

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?

There is no output schema and no annotations, so the description must do more work than it does. An agent cannot tell what dump_path should contain or how to interpret the returned unit/class inventory beyond a rough sense of ranking. It is barely sufficient to guess the tool's purpose, not to invoke it correctly.

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 0% for both parameters. The description never mentions dump_path (the required input) or top (the default-200 limit), so it fails to compensate for the schema gap. 'Frequency-ranked' is the only faint hint at what top controls.

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

Purpose3/5

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

The phrase 'Delphi unit (a.b.c) and TClass inventory' names the resource and implies a listing, and 'frequency-ranked' hints at ordering. However, there is no explicit verb, and the description is a noun fragment that only vaguely conveys that this tool enumerates Delphi units/classes rather than, say, extracting or decompiling them. It also does not distinguish itself from the sibling delphi_methods.

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 when-to-use guidance, no stated preconditions, and no mention of the sibling delphi_methods or when a Delphi-unit view is preferable to it. The agent must infer the tool's role purely from the name.

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

disasmC

Capstone x86/x64 listing at addr (hex string). base: file or rva.

ParametersJSON Schema
NameRequiredDescriptionDefault
addrYes
baseNofile
pathYes
spanNo
countNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses the underlying engine (Capstone) and the arch (x86/x64), but says nothing about whether this is a pure read, how output is bounded by span/count, truncation behavior, or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely terse and front-loaded, with no wasted tokens, but it is under-specified rather than concise; a two-clause fragment is too thin to carry a 5-parameter tool.

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?

No annotations and no output schema, so the description needs to stand alone. It omits the return format (assembly text?) and the meaning of span/count defaults, leaving the agent insufficiently informed for a 5-param disassembler.

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 coverage is 0%, so the description must compensate for 5 undocumented parameters. It clarifies addr (hex string) and base (file vs rva), but path, span, and count — the two that control output size — are left entirely unexplained.

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+resource: produce a Capstone x86/x64 disassembly listing at a given address. An agent can distinguish it from siblings like ghidra_decompile or emulate, though the description never names those alternatives explicitly.

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 guidance is the fragment 'base: file or rva', which is really parameter semantics. There is no statement of when to choose disasm over ghidra_decompile, emulate, or debug_read_memory, and no prerequisites or conditions given.

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

dotnet_typeB

Decompile one managed type to C# via ilspycmd.

ParametersJSON Schema
NameRequiredDescriptionDefault
asmYes
type_nameYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the decompilation mechanism (ilspycmd) and the output language (C#), which is genuine context beyond the schema. It says nothing about failure behavior for unresolved type names, dependency/assembly resolution requirements, or whether the operation is purely read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single eleven-word sentence with the action, scope and output format front-loaded. Nothing redundant, nothing padded.

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 two-parameter decompiler with no annotations, no output schema and zero parameter documentation, the description leaves the agent guessing on input formats and on what the returned payload looks like (raw C# source, file path, or snippet). It is enough to know roughly what the tool does but not enough to call it confidently.

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 0% for both required parameters, so the description must compensate and does not. It never clarifies whether "asm" is a file path, assembly simple name, or loaded module, nor whether "type_name" must be namespace-qualified, generic-notation, or nested-type formatted.

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 ("Decompile"), a bounded resource ("one managed type"), a target language (C#) and the underlying tool (ilspycmd). The word "one" implicitly separates it from the plural sibling dotnet_types, though that sibling is never named, so the differentiation is inferable 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 statement of when to reach for this tool versus dotnet_types (presumably to enumerate types first) or versus ghidra_decompile for non-managed binaries. The singular scope is the only usage signal, and no prerequisites (e.g. that the type must exist in the assembly) are given.

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

dotnet_typesC

List types in a managed assembly via ilspycmd, optionally filtered.

ParametersJSON Schema
NameRequiredDescriptionDefault
asmYes
limitNo
patternNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses that ilspycmd is the backend, which is mildly useful, but says nothing about read-only safety, ordering, the effect of the default limit of 5000, or what happens with an invalid assembly.

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 wasted words. It is efficient, though the efficiency comes at the cost of under-specification rather than careful pruning.

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?

A 3-parameter tool with 0% schema coverage, no annotations, and no output schema leaves the description to do far more than it does. It should at least define the filter semantics and the limit's behavior.

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 coverage is 0%, so the description must compensate but barely does. 'optionally filtered' gestures at pattern but never says whether it is a regex/glob or what it matches, limit is never explained, and the required asm parameter's expected format (path vs name) is unstated.

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 ('List types in a managed assembly') and names the mechanism (ilspycmd), so the agent knows exactly what it retrieves. It does not explicitly distinguish itself from the sibling dotnet_type, but the plural/singular split is inferable.

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 guidance is the trailing 'optionally filtered,' which hints at the pattern parameter. Nothing says when to pick this over dotnet_type, when filtering is appropriate, or what prerequisite (a valid assembly path) is required.

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

dump_processC

Dump every module image of a running process; writes dump_meta.json.

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes
outdirNodumps
skip_systemNo
include_mainNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It usefully notes the file written (dump_meta.json), but says nothing about permissions needed, whether it is destructive, or what happens to an existing outdir or existing files.

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; the core action comes first. It is efficient, though the extreme terseness leaves gaps that conciseness alone does not excuse.

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 4-parameter tool with no annotations and no output schema, the description leaves parameters undocumented and omits usage context. The mention of the output file is helpful but insufficient to make the definition complete.

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

Parameters1/5

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

All four parameters have 0% schema description coverage, yet the description explains none of them — not pid, outdir, skip_system, or include_main. The agent gets no meaning for skip_system/include_main, which are non-obvious behavioral toggles.

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 ('dump') and resource ('every module image of a running process'), plus an output side-effect ('writes dump_meta.json'). It is clear what it does, but it offers no differentiation from sibling dump tools like run_and_dump or debug_dump, which likely overlap.

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 the many sibling dump/analysis tools (run_and_dump, debug_dump). No prerequisites or exclusions are stated, leaving the agent to infer context from the name alone.

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

emulateC

Bounded Unicorn emulation in RVA space with an execution trace.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
entryNo
layoutNoauto
trace_limitNo
max_instructionsNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. 'Bounded' and 'execution trace' hint that execution is capped and a trace is produced, but it says nothing about permission needs, what the bounds actually constrain, or what the trace contains. Five parameters and no safety or output disclosure is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded fragment with zero wasted words, which is good. But it is so terse that it under-specifies a five-parameter emulator, so brevity here trades against usefulness rather than serving it.

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 complex emulation tool with five parameters, no annotations, no output schema, and 0% schema coverage, the one-line description is far from complete. An agent could not reliably construct a correct call or anticipate the result from this text alone.

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 0% across five parameters, so the description must compensate and does not. 'RVA space' loosely implies the entry parameter is an RVA, and 'trace' loosely maps to trace_limit, but layout, max_instructions, and the interaction between trace_limit and max_instructions are entirely undocumented.

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 technique (Unicorn emulation), a coordinate space (RVA), and an output artifact (execution trace), which is enough to separate it from the sibling executors run_and_dump and debug_launch. However, it never explicitly names or contrasts those siblings, so differentiation is left to inference.

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?

No when-to-use guidance is given. The description does not explain when to prefer emulation over the sibling run_and_dump or debug_launch, nor any prerequisites such as needing a valid PE path. Nothing routes the agent to this tool versus alternatives.

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

entropy_mapC

Windowed Shannon entropy: packed/encrypted vs plaintext regions.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
stepNo
windowNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations and no output schema, the description carries the full behavioral burden and mostly drops it: it does not say what is returned (per-window entropy values? offsets? a verdict?), how large outputs scale with window/step, or whether it reads or mutates the target. Only the analytic intent is conveyed.

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 no filler, which is appropriate for a short fragment. It is arguably under-specified rather than concise, but every word does work and nothing is buried.

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 3-parameter tool with 0% schema coverage, no annotations, and no output schema, the description should at minimum explain the window/step semantics and the shape of the result. Neither is present, leaving the agent to guess how to drive the tool or interpret its output.

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 0% for all 3 parameters, so the description must compensate and does so only for 'window' via the word 'Windowed'. The 'step' parameter (default null) and the required 'path' are given no meaning, format, or unit guidance anywhere.

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 the technique (windowed Shannon entropy) and its analytic purpose (distinguishing packed/encrypted from plaintext regions), so an agent can tell what it computes. It does not, however, differentiate itself from adjacent tools like find_blobs or bin_info that can also reveal structure, and it never says what it operates on (a file path).

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 when-to-use guidance, no prerequisites, and no mention of alternatives such as find_blobs, strings_scan, or yara_scan, which overlap in the 'find suspicious regions' space. The agent must infer that this is for triaging packed binaries.

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

evidence_listB

List journaled tool calls (newest first) with ids and digests.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose useful behavior: results are ordered newest-first and include ids and digests. However it never states that the operation is read-only/non-mutating, nor how the 'limit' bounds the result set or what happens when the journal exceeds it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the parenthetical ordering note earns its place by telling the agent what the first result is.

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 one-parameter, likely read-only listing tool with no output schema, the description covers what is returned (ids and digests) and in what order, which is enough for correct invocation. The gap is the undocumented limit parameter, the only structured input.

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 0% and the description never mentions the single 'limit' parameter, its default of 50, or its semantics (max entries returned?). The schema names the field but supplies no title-level meaning, so the description fails to compensate.

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 ('List journaled tool calls') plus scope details (newest-first ordering, ids and digests). It clearly contrasts with the sibling evidence_read by describing listing rather than reading, though it never names that sibling explicitly.

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 statement of when to use this vs. evidence_read (the obvious companion tool for fetching the actual record). The ordering hint ('newest first') implies a discovery-then-read workflow but the description leaves the agent to infer it.

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

evidence_readC

Read one full evidence record by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
evidence_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Read' and 'full' imply a safe, complete-record fetch, but it does not state permissions, error behavior for a missing id, or any side effects.

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?

One short, front-loaded sentence with no filler. It is appropriately sized for a simple lookup, though the brevity leaves the specification thin.

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 simple read-by-id tool with no output schema and no annotations, the description should at least hint at the returned record's contents or error behavior. It does neither, leaving the agent to infer what 'full evidence record' means.

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 0%, so the description must compensate. 'By id' maps the single parameter to an identifier but gives no format, type, or expected value guidance beyond the schema's bare 'Evidence Id' title.

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 (Read) and resource (one full evidence record) and the lookup key (by id). It implicitly distinguishes itself from evidence_list by reading a single record, but never names the sibling or scopes the evidence domain.

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?

No when-to-use guidance, no alternatives, no prerequisites. An agent must infer that this is for fetching a known evidence_id rather than listing evidence.

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

find_blobsC

Carve embedded archives or PEs by signature (kind: zip, pe, gzip).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNozip
pathYes
limitNo
outdirNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not say whether the tool only reads the input, whether it writes carved blobs to disk, what outdir does, or what limits or side effects exist. The only behavioral clue is the verb carve, which is insufficient for a mutation-capable tool with an outdir parameter.

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 a single front-loaded sentence with no wasted words. Every part earns its place, including the parenthetical kind examples. It is terse but not padded, though it is arguably undersized for a tool with four parameters and no annotations.

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?

The tool has four parameters, no annotations, no output schema, and 0% schema description coverage. The description explains what the tool does and some kind values, but omits critical context: what path points to, what limit controls, whether outdir writes files, and what the tool returns. This is not enough for an agent to call the tool correctly without guessing.

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 0%, so the description must compensate for all four parameters. It partially compensates by listing kind values (zip, pe, gzip), which is useful beyond the schema. However, path, limit, and outdir remain completely unexplained, leaving most parameter semantics undocumented.

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 states a specific verb and resource: carve embedded archives or PEs. It names the signature-based method and gives concrete kind values (zip, pe, gzip), making the purpose clear. It does not differentiate against sibling tools like yara_scan or bin_info, so it stops short of 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?

The description implies usage by stating what it carves, but it gives no explicit when-to-use guidance, no prerequisites, and no alternatives. With many sibling scanning tools available, the agent gets no help choosing between find_blobs and tools like yara_scan or strings_scan.

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

ghidra_decompileC

Decompile functions by RVA list and/or by string keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
rvasNo
limitNo
programNo
projectYes
keywordsNo
timeout_minNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits, but it says nothing about permissions, side effects, performance/timeout behavior, or what happens when both rvas and keywords are supplied. 'Decompile' implies a read-only operation, but that is the only inference available.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and free of fluff, but its extreme brevity leaves the tool under-specified for a six-parameter operation. It earns its place but barely.

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?

With no annotations, no output schema, and six parameters at 0% description coverage, the one-sentence description is not complete enough. It does not explain the required project parameter, program selection, limits, timeouts, or the interaction between rvas and keywords.

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 0%, so the description must compensate for six undocumented parameters. It mentions only rvas and keywords, omitting the required project parameter, program, limit, and timeout_min, and provides no syntax or format details.

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 (Decompile) and resource (functions), plus selection criteria by RVA list or string keywords, which distinguishes it somewhat from sibling listing tools. However, it does not explicitly differentiate itself from disasm or ghidra_funcs, 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?

No explicit guidance on when to use this tool versus alternatives like disasm or ghidra_funcs. The description only implies usage from the selection modes, leaving the agent to infer context.

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

ghidra_funcsC

List analyzed functions (address + name) from a Ghidra project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
programNo
projectYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the return shape (address + name) but says nothing about whether the project must be pre-imported, how large listings are handled, or pagination against the 20000 default limit.

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 efficient sentence with the key noun phrase front-loaded and zero filler. It is well-sized; the shortfall is omitted content, not verbosity.

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 3-parameter tool with zero annotation coverage, no output schema, and 0% schema description coverage, the description is too thin. It omits prerequisite context, parameter behavior, and result scope, all of which the agent needs to call it correctly.

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 0%, and the description adds no parameter meaning at all. It never explains what 'program' selects when null vs. set, or what 'limit' bounds, leaving three parameters (one optional, one defaulted) undocumented.

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 ('List analyzed functions') and even names the fields returned (address + name), so an agent knows exactly what this produces. It doesn't explicitly differentiate from ghidra_decompile or ghidra_import, but the 'analyzed functions' scope is distinct enough to route correctly.

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 when-to-use guidance, no mention of prerequisites (e.g., a project must already be imported/analyzed), and no named alternatives. The agent must infer that this is the enumeration step preceding ghidra_decompile.

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

ghidra_importC

Headless Ghidra import into a project (analysis: full or none).

ParametersJSON Schema
NameRequiredDescriptionDefault
binaryYes
projectYes
analysisNofull
timeout_minNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says 'headless import' but does not disclose what happens to an existing project, whether it overwrites data, what permissions or environment are required, or what the output/return is. Only the analysis option is hinted at.

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?

Single sentence with no wasted words and the core action is front-loaded. The parenthetical is efficient, though the sentence is quite dense and could have been split to improve readability without adding much length.

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?

Given four parameters, no annotations, no output schema, and 0% schema coverage, the description is too thin. It does not cover return values, side effects, or the roles of binary, project, and timeout_min, leaving the definition incomplete for a mutation-style import operation.

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 0%, so the description must compensate. It only mentions one of four parameters (analysis) and does so with a brief value list. It adds no meaning for binary, project, or timeout_min, leaving agents to guess their formats and constraints.

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 (import) and resource (Ghidra) plus the target (a project), and highlights the analysis mode. It distinguishes from siblings like ghidra_decompile and ghidra_funcs, which operate on an already-imported binary, though it does not explicitly name them.

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?

No guidance on when to use this tool versus alternatives or prerequisites. It does not mention that it should be run before ghidra_decompile/ghidra_funcs, nor does it describe when to choose 'full' versus 'none' analysis beyond the option name.

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

rebuild_importsC

Rebuild a dump's IAT/import directory from dump_meta.json module metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
outYes
dump_metaYes
dump_pathYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. It does not say whether the dump file is modified in place or a new artifact is written to 'out', whether existing imports are overwritten, or what permissions/inputs must be valid — all critical for a mutation tool.

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 tight sentence with zero filler, front-loading the action and the artifact. Being one sentence, it is efficient but arguably under-specified rather than optimally concise.

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?

With no annotations, no output schema, and three required parameters at 0% schema coverage, the description is far too thin for an agent to invoke this correctly. It should specify the in-place vs. output-file behavior and the format of each path argument.

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 0%, so the description must compensate for all three parameters. It only clarifies that dump_meta is JSON module metadata; dump_path and out are left entirely undefined (input dump vs. output artifact path is guessed, not stated).

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 (Rebuild) and resource (a dump's IAT/import directory) plus the source of truth (dump_meta.json module metadata). It is clear what the tool produces, though it never distinguishes itself from the related sibling rebuild_pe, which an agent would plausibly confuse it with.

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 explicit when-to-use, when-not-to-use, or alternative routing. The name implies it is used after a dump exists, but nothing states prerequisites or when rebuild_pe would be preferred instead.

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

rebuild_peB

Rebuild a file-aligned PE from a runtime memory image (Scylla-style unmap).

ParametersJSON Schema
NameRequiredDescriptionDefault
outYes
dump_pathYes
image_base_guessNo

TDQS

B3.3/5.0
Behavior3/5

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

No annotations, so the description carries full behavioral burden. It discloses the nature of the transformation (unmapping a runtime image into a file-aligned PE, Scylla-style), which is meaningful context. However it omits side effects, whether it writes the output file or mutates inputs, and failure conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense, front-loaded sentence with zero filler. Every clause contributes specification.

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?

For a specialized reversing operation with no annotations, no output schema, and 0% parameter documentation, the description covers intent but not the parameters or behavioral details an agent needs. Adequate at the minimum viable level given the Scylla jargon is meaningful to the audience.

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 coverage is 0%, so the description must compensate. 'Runtime memory image' loosely implies dump_path and 'file-aligned PE' implies the out target, but image_base_guess is entirely unexplained and no parameter meaning is added explicitly.

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 (rebuild) and resource (PE) plus the transformation context (file-aligned from a runtime memory image via Scylla-style unmap). This is clearly distinct from trim_pe or rebuild_imports, though it does not explicitly name those siblings to route the agent.

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 phrase 'from a runtime memory image' implies the workflow (run/dump then rebuild), but there is no explicit when-to-use, prerequisite, or when-to-prefer-an-alternative guidance. Usage must be inferred from the domain jargon.

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

run_and_dumpC

Launch a target (optionally elevated), wait, dump all module images, terminate it.

ParametersJSON Schema
NameRequiredDescriptionDefault
exeYes
outdirNodumps
wait_msNo
elevatedNo
include_mainNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose meaningful behavior: the target is launched, optionally elevated, and then terminated after dumping. That termination step is a destructive side effect worth knowing. It does not state permission requirements for elevation, failure handling, or kill semantics if the wait expires, so the disclosure is partial.

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 compact sentence ordered as the actual runtime sequence, with no filler. It is front-loaded and readable, though it is under-specified rather than truly concise for a five-parameter tool.

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 whose schema is entirely undocumented, with no annotations and no output schema, the description is too thin. It omits where dumps land, what form they take, and the meaning of default-on options like elevated and include_main, which an agent needs to call it correctly.

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 0% across five parameters, so the description is responsible for their meaning. It only hints at 'elevated' and the wait step; it says nothing about exe path handling, outdir destination, or what include_main controls, leaving most parameters opaque.

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 clear verb sequence (launch, wait, dump module images, terminate) applied to an executable target, so an agent can tell what the tool does. However, it does not distinguish itself from a close sibling like dump_process, leaving ambiguity about when this composite flow is preferable to a plain process dump.

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 when-to-use guidance and no alternative named, despite siblings such as dump_process and debug_launch that overlap in intent. The agent must infer that this is for dump-then-terminate workflows rather than interactive debugging.

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

strings_scanC

Extract printable strings with file offsets. encoding: ascii, utf16, both.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
limitNo
regexNo
min_lenNo
encodingNoascii

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only extraction and notes that offsets are included, but says nothing about the limit cap (2000 default) truncating results, regex filtering behavior, min_len filtering, or whether scanning large binaries is expensive. Significant gaps for a no-annotation tool.

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?

Two short sentences, front-loaded with the core action and offsets, with the encoding enumeration compactly appended. No filler, though the terseness contributes to the missing parameter detail rather than offsetting it.

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?

With 5 parameters, no annotations, no output schema, and 0% schema coverage, the description is not sufficient to call the tool confidently. It never explains what limit or regex do, so an agent must guess at result truncation and filtering semantics.

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 0% across 5 parameters, so the description must compensate and largely does not. It documents only three valid encoding values (ascii, utf16, both) while limit, regex, and min_len are left entirely unexplained in both the schema and the description.

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 states a specific verb and resource: 'Extract printable strings with file offsets.' That is concrete and distinct from sibling names like bin_info or entropy_map. It stops short of differentiating itself explicitly from the nearest alternative, find_blobs, so it is clear but not maximally discriminating.

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 statement of when to use this tool versus alternatives such as find_blobs or yara_scan, and no prerequisites (e.g. file must exist on disk). Only the encoding values are given, which is configuration, not usage guidance.

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

trim_peC

Shrink an unpacked PE for analysis: huge protector arenas keep only a prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
outYes
entry_rvaNo
rebuilt_pathYes
scratch_prefix_endNo
huge_section_thresholdNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the key destructive trait: huge arenas are truncated to a prefix, so payload beyond the cut is lost. It says nothing about overwriting the out path, permissions, return value, or how truncation interacts with the entry point, leaving real gaps for a file-mutating tool.

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, but it is arguably over-terse for a 5-parameter mutating tool, so a bit of the space it saves is space it should have used.

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 mutation tool with 5 undocumented parameters, no annotations, and no output schema, the description is too thin: no input expectations, no output description, and no indication of what the trimmed file is useful for downstream.

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 0% across 5 parameters, so all semantics rest on the schema's bare titles and defaults. The description only loosely gestures at 'prefix' (scratch_prefix_end) and 'huge' (huge_section_threshold) without explaining units, thresholds, or what rebuilt_path/entry_rva expect.

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 (shrink/trim) and resource (unpacked PE) plus the mechanism (huge protector arenas keep only a prefix). An agent can tell this rewrites a PE down to a truncated form, distinct from rebuild_pe, though the term 'shrink' is slightly loose about whether a new file is emitted.

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 phrase 'for analysis' hints at the motivating scenario but gives no when-to-use/when-not guidance, no prerequisites (unpacked vs packed input), and does not name rebuild_pe or any sibling as the alternative for the opposite case.

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

xrefsC

Find absolute-immediate references to a value or string.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
limitNo
stringNo
targetNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Find' implies a read-only query, but the description does not disclose result format, pagination, safety guarantees, or the effect of the limit parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words. However, for a four-parameter tool with no annotations it is arguably under-specified rather than optimally concise.

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?

With no annotations, no output schema, and 0% parameter description coverage, the one-sentence description leaves the agent without enough context to correctly invoke the tool. It omits path usage, limit behavior, and target/string semantics.

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 0% for four parameters. The phrase 'to a value or string' loosely maps to the target and string parameters, but path and limit are never mentioned and the distinction between target and string is not clarified.

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 (Find) and resource (absolute-immediate references) and restricts scope to a value or string. The qualifier 'absolute-immediate' implicitly distinguishes this from the sibling xrefs_rip, but no sibling is named explicitly.

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?

Provides no guidance on when to use this tool versus alternatives such as xrefs_rip, disasm, or callgraph. There are no exclusions, prerequisites, or context cues.

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

xrefs_ripC

Find RIP-relative memory refs and direct branches (RVA space; layout auto/dump/file).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
limitNo
layoutNoauto
stringNo
targetNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, and it discloses only the analysis domain (RVA space) and layout modes. It says nothing about whether this is a read-only scan, how results are returned, how 'limit' caps output, or what happens with the string/target filters.

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 compact sentence that front-loads the core operation, with zero filler. It is arguably over-terse rather than verbose, which costs a point only in that it packs qualifiers densely.

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 five-parameter tool with no annotations, no output schema, and 0% schema description coverage, this one-liner leaves an agent guessing about filtering semantics, output shape, and defaults. It is far too thin for the configuration surface it exposes.

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 coverage is 0% across five parameters. The description clarifies only 'layout' (auto/dump/file) and implies an RVA target space; path, limit, string and target remain undocumented in both schema and description, so it fails to compensate for the coverage gap.

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 ('Find RIP-relative memory refs and direct branches') and adds a scope qualifier (RVA space). It is clearly distinguishable from generic tools like bin_info or strings_scan, but it never contrasts itself with the sibling xrefs, which an agent would plausibly confuse it with.

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?

No when-to-use or when-not-to-use guidance is given, and no alternative (e.g. xrefs) is named. The layout modes are listed but framed as options rather than as conditions for selecting this tool.

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

yara_packC

Alias for yara_scan with the bundled packer profiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
rules_fileNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. Saying it is an alias of yara_scan does convey that behavior is inherited, but it discloses nothing about side effects, permissions, read-vs-write nature, or what the packer profiles actually detect.

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, front-loaded sentence with no filler or redundancy. It is efficient, though the terseness is a symptom of under-specification rather than disciplined editing.

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?

With no annotations, no output schema, 0% parameter coverage, and one line of prose, the definition is far too thin for a two-parameter scanning tool. An agent cannot determine what 'path' points at, what overriding rules_file does, or what results to expect.

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?

There are 2 parameters at 0% schema description coverage, and the description supplies no meaning for either 'path' (file or directory?) or 'rules_file'. The alias claim only indirectly suggests they mirror yara_scan's parameters; the description does essentially nothing to compensate for the coverage gap.

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

Purpose3/5

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

The description does name a specific sibling ('alias for yara_scan') and a distinguishing feature ('bundled packer profiles'), so an agent can roughly place it relative to yara_scan. However, it never states the actual action or resource in its own right — it defines the tool only by reference to another tool, forcing the agent to open yara_scan to learn what it does.

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?

'With the bundled packer profiles' weakly implies a use case (scanning packed binaries), but there is no explicit when-to-use, no when-NOT-to-use, and no guidance on choosing this over yara_scan itself. The alias framing arguably leaves the selection decision entirely to the agent.

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

yara_scanB

Run YARA rules; without rules_file the bundled packer/anti-debug pack is used.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
rules_fileNo

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It discloses the default rule pack, which is useful, but omits read-only safety, permissions, output format, and performance characteristics. This leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero waste: purpose is front-loaded, followed by the key default behavior. Every clause earns its place.

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?

For a simple scan tool with no output schema and no annotations, the description covers purpose and default rules but omits what the scan returns (matches, format) and scope limits. It is adequate but not fully complete.

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 0%, so the description must compensate. It adds valuable meaning for rules_file (defaults to bundled packer/anti-debug pack) but does not explain the path parameter. Partial compensation warrants a 3.

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 states a specific verb+resource: 'Run YARA rules'. It also clarifies the default rule pack when rules_file is omitted. However, it does not differentiate from sibling tools like yara_pack or strings_scan, so a 4 rather than 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?

The only guidance is the implicit condition for using the bundled pack when rules_file is absent. There is no explicit when-to-use versus alternatives, no prerequisites, and no exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 35 tool updatesv0.3.0
    • First observedbin_info
    • First observedcallgraph
    • First observeddebug_breakpoint_add
    • First observeddebug_breakpoint_remove
    • First observeddebug_close
    • First observeddebug_continue
    • First observeddebug_dump
    • First observeddebug_launch
    • First observeddebug_read_memory
    • First observeddebug_registers
    • First observeddebug_state
    • First observeddebug_write_memory
    • First observeddelphi_methods
    • First observeddelphi_units
    • First observeddisasm
    • First observeddotnet_type
    • First observeddotnet_types
    • First observeddump_process
    • First observedemulate
    • First observedentropy_map
    • First observedevidence_list
    • First observedevidence_read
    • First observedfind_blobs
    • First observedghidra_decompile
    • First observedghidra_funcs
    • First observedghidra_import
    • First observedrebuild_imports
    • First observedrebuild_pe
    • First observedrun_and_dump
    • First observedstrings_scan
    • First observedtrim_pe
    • First observedxrefs
    • First observedxrefs_rip
    • First observedyara_pack
    • First observedyara_scan

TDQS

B3/5.0

Scored across 35 tools

Disambiguation5/5

Each tool targets a distinct analysis action or resource, from static metadata (bin_info) to dynamic debugging (debug_*), decompilation (ghidra_*), and evidence journaling (evidence_*). Overlaps like yara_scan vs yara_pack are explicitly aliases, and the dump variants are scoped by context (run_and_dump, dump_process, debug_dump).

Naming Consistency4/5

All names use snake_case, but the patterns vary: verb_noun (rebuild_pe), noun_noun (strings_scan), single words (disasm), and prefixed groups (debug_*, ghidra_*, dotnet_*). The grouping is consistent within subsystems, making the set readable despite not following one uniform convention.

Tool Count2/5

With 35 tools, the set far exceeds the typical 3–15 range and crosses into heavy territory. While many tools have distinct purposes, several could be consolidated (e.g., debug operations into an action parameter, Ghidra operations into fewer endpoints), making the surface overwhelming.

Completeness4/5

The server covers a broad reverse-engineering lifecycle: static analysis, PE manipulation, dynamic debugging, decompilation, .NET, YARA, and evidence tracking. Minor gaps exist, such as no debug_attach for existing processes or a dedicated import table viewer, but agents can work around them with available tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to inspect and reverse engineer native binaries, JavaScript/Electron applications, .NET assemblies, websites, and runtime behavior, returning evidence-backed findings that can be explained, implemented, or tested.
    415,576 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables agents to reverse-engineer software across native binaries, managed code, Electron apps, websites, and live runtime behavior, returning findings linked to the evidence and limitations behind each conclusion. It also maintains a durable workspace where those behaviors can be inspected, questioned, compared against real execution, and exported as runnable handoffs.
    415,576 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to locally analyze and reverse engineer binaries through a compact 12-tool MCP interface for triage, function discovery, disassembly/decompilation, cross-references, strings/imports, call graphs, memory reads, annotations, and binary diffs.
    1
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Serves 170 reverse-engineering tools over a local stdio MCP process, letting an agent drive disassembly, decompilation, and dynamic analysis through the engines already installed on the user's machine (Ghidra, Hopper, IDA, JEB, JADX, adb, mitmproxy, Chrome). Binaries never leave the host, and every finding comes back with an evidence contract covering evidence ids, capture tool, coverage, and explicit unknowns.
    -