Skip to main content
Glama
drvcvt
by drvcvt

diff_binaries

Compare two binary versions to reveal added, removed, and changed functions, imports, strings, plus instruction-level diffs for modified functions.

Instructions

Compare two binary versions: find added, removed, and changed functions, imports, strings, and show instruction-level diffs for modified functions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
binary_path_aYesAbsolute path to the first (original) binary
binary_path_bYesAbsolute path to the second (patched) binary
max_function_diffsNoMaximum number of changed functions to show instruction-level diffs for

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.9/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 reveal meaningful behavior: it finds several categories of differences and can produce instruction-level diffs for modified functions. However, it does not state whether the tool performs its own analysis, requires already-loaded binaries, is read-only, or has notable performance implications on large binaries.

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?

The description is a single, dense sentence that front-loads the core purpose and immediately lists the concrete outputs. Every clause adds useful information, with no filler or redundancy.

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 input schema is well-documented and the description lists the output categories, but no output schema exists and the description does not explain the return format or result structure. For a binary diffing tool of this complexity, an agent would benefit from knowing how results are organized and whether pre-analysis is required before invoking the tool.

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 the baseline applies: the schema already documents binary_path_a, binary_path_b, and max_function_diffs clearly. The description's mention of 'instruction-level diffs for modified functions' loosely aligns with max_function_diffs but does not add substantial semantic value beyond what the parameter descriptions already state.

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

Purpose5/5

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

The description clearly identifies the tool as binary version comparison, with a specific verb ('Compare') and a concrete resource ('two binary versions'). It enumerates exactly what kinds of findings are produced: added/removed/changed functions, imports, strings, and instruction-level diffs, which clearly distinguishes it from analytical siblings like analyze_binary or list_functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description strongly implies the appropriate use case: when an agent needs to compare two versions of a binary to identify differences. It does not explicitly name alternatives or exclusion criteria, but the tool's purpose is distinctive enough among the sibling list that an agent can infer when to select it.

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