Skip to main content
Glama
drvcvt
by drvcvt

analyze_function_deep

Perform deep single-function analysis on a binary by providing its path and function address or name, returning disassembly, decompilation, variables, xrefs, callers, callees, strings, and complexity metrics in one call.

Instructions

Deep single-function analysis: disassembly, decompilation, variables, xrefs, callers, callees, strings, and complexity metrics in one call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addressNoHex address of the function (e.g. "0x08048000")
binary_pathYesAbsolute path to the binary file
function_nameNoName of the function to analyze (e.g. "main")

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does convey that this is a read-only aggregate analysis scoped to one function, which is meaningful context. But it omits how the target function is selected given that address and function_name are both optional in the schema, and it says nothing about output format, error conditions, or the potential cost of a deep analysis.

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 sentence that front-loads the core purpose ('Deep single-function analysis') and then lists the value-adding specifics with a colon and comma-separated enumeration. No filler, no redundancy; 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?

The description usefully inventories the returned data, which partially compensates for the missing output schema. However, this is a complex aggregator tool with no annotations, and the description leaves a genuine gap: only binary_path is required while address and function_name are optional, yet the tool is described as analyzing one function. Function identification precedence, failure behavior, and runtime cost are all unexplained.

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 description coverage is 100%, so all three parameters are already documented in the schema. The description adds only the framing that the analysis targets a single function; it does not clarify the relationship between address and function_name, which takes precedence, or whether either is effectively required. This stays at the baseline of 3.

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

Purpose5/5

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

The description states a specific verb and scope ('Deep single-function analysis') and enumerates the concrete deliverables: disassembly, decompilation, variables, xrefs, callers, callees, strings, and complexity metrics. The 'in one call' phrasing clearly distinguishes it from narrower siblings like disassemble, decompile_function, and get_xrefs.

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 'in one call' phrasing implies this is the tool to use when a comprehensive view of a single function is needed rather than making several individual calls. However, no alternative sibling is explicitly named and no when-not-to-use conditions are given, leaving the agent to infer when it should prefer disassemble or decompile_function for narrower queries.

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