Skip to main content
Glama
Heretek-RE

re-binary-diff

by Heretek-RE

re-binary-diff

MCP server for read-only binary comparison: a unified diff between two files, and a per-section fingerprint of one file. Dry-run only — the server never writes a byte to disk.

Why

The 2026-06-05 stress test surfaced a need to compare an original binary against a patched copy (the Output/.../patches/ workflow) without re-introducing the on-disk patch primitive. re-binary-diff is the read-only cousin: it reports the diff, it never applies it.

Related MCP server: BinaryAnalysis-MCP

Tools

Tool

What it does

check_binary_diff

Health check — re-binary-diff has no system deps; always status: OK

unified_diff

Run difflib.unified_diff over the byte streams of two files (or, if too large, hash their chunks) and return a structured diff

fingerprint_sections

Return per-chunk SHA-256 + offset + size for a single file (a structural fingerprint, like re-lief.normalize_for_diff but at chunk granularity)

Install

Part of the RE-AI plugin; ./install.sh installs the package. To install standalone:

pip install -e ./servers/re-binary-diff

Run

re-binary-diff                              # stdio transport (default for MCP)
python -m re_binary_diff                    # equivalent

Available Tools

3 tools
check_binary_diffA

Return server status + version. Always status: OKre-binary-diff has no external system dependencies.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

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

The description discloses that the tool always returns 'status: OK' and has no external dependencies, which is useful behavioral context beyond a typical read operation. However, it does not specify the format or content of the version string.

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 extremely concise, with two sentences that front-load the key purpose and a notable characteristic (no dependencies). Every sentence adds value.

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?

Given no parameters, no output schema, and no annotations, the description is fairly complete but lacks explicit details about the return structure (e.g., is version a string? object?). Minimal viable score.

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

Parameters4/5

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

There are no parameters, so the description cannot add meaning beyond the schema. Baseline of 4 applies as there are no gaps.

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 clearly states it returns server status and version, with a specific verb 'Return' and resource. However, it does not differentiate from sibling tools like fingerprint_sections or unified_diff, which are likely diffing tools.

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 is provided on when to use this tool versus alternatives. The description implies it's a health check, but lacks context such as prerequisites or typical usage scenarios.

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

fingerprint_sectionsA

Return a per-chunk SHA-256 + offset + size fingerprint of path.

Useful for finding the structural delta between two versions of a binary without loading either into memory. Pair with unified_diff (chunk mode) for large files.

Args: path: file to fingerprint chunk_size: bytes per chunk (default 1 MiB) max_chunks: 0 = no cap; > 0 = return at most N chunks

Returns::

{
  "path": "...",
  "size": N,
  "chunk_size": N,
  "truncated": bool,
  "chunks": [
    {"index": 0, "offset": 0, "size": 1048576, "sha256": "..."},
    ...
  ],
}
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
chunk_sizeNo
max_chunksNo

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so the description carries full burden. It describes the output format and parameter behavior, but does not explicitly disclose safety traits (e.g., read-only, no side effects). Some behavioral context is implied but not fully transparent.

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 well-structured with a summary line, a usage note, an Args section, and a Returns section. It is clear and front-loaded, though could be slightly more concise without losing information.

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?

Given three parameters, no output schema, and no annotations, the description is fairly complete: it explains all parameters, the return format, and usage context. It lacks error handling details but is sufficient for an agent to understand the tool.

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

Parameters4/5

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

Schema description coverage is 0%, so the description compensates well. It explains each parameter in the Args block: path is the file, chunk_size is bytes per chunk with default, max_chunks explains 0 meaning no cap. This adds meaning beyond the schema's titles and types.

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

Purpose5/5

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

The description clearly states the tool returns a per-chunk SHA-256+offset+size fingerprint of a path, with a specific verb and resource. It distinguishes from siblings by mentioning pairing with unified_diff for large files.

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 explains when to use the tool: for finding structural delta between binary versions without loading into memory, and suggests pairing with unified_diff. It does not explicitly state when not to use, but the context is adequate.

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

unified_diffA

Compute a unified-style diff between path_a and path_b.

For small files (<= 8 MiB per side) the function runs difflib.unified_diff over the byte streams (decoded as latin-1). For large files it falls back to a per-chunk SHA-256 diff.

Args: path_a: first file (the "before" or "original") path_b: second file (the "after" or "patched")

Returns::

{
  "path_a": "...",
  "path_b": "...",
  "size_a": N,
  "size_b": N,
  "mode": "sha256_equal" | "inline_unified_diff" | "chunk_sha256_diff",
  "equal": bool,
  "diff_lines": ["...", ...],   (inline mode)
  "chunk_diff": [{...}, ...],   (chunk mode)
}

The function is read-only. The "patched" copy at path_b is not modified.

ParametersJSON Schema
NameRequiredDescriptionDefault
path_aYes
path_bYes

TDQS

A4.1/5.0
Behavior4/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 explicitly states the tool is read-only, describes the mode of operation (difflib vs chunk SHA-256), and outlines the return format. It could mention error handling but is sufficient for transparency.

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 detailed but every sentence adds value: main verb, algorithm, parameters, return format, read-only note. It could be slightly more concise, but it is well-structured and front-loaded with the key purpose.

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?

Given no output schema or annotations, the description covers purpose, algorithm, threshold, return format, and read-only nature. It is complete enough for an agent to select and invoke, though lacking examples or error conditions.

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

Parameters4/5

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

Schema description coverage is 0%, so the description compensates by providing clear parameter semantics: path_a is 'before/original' and path_b is 'after/patched'. This adds meaning beyond the raw schema, though no additional constraints or formats are given.

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

Purpose5/5

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

The description clearly states the tool computes a unified-style diff between two files, specifies the algorithm (difflib for small, SHA-256 for large), and the return structure. It distinguishes itself from sibling tools by its specific focus on unified diff.

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 provides usage context (small vs large files) but does not explicitly compare to sibling tools or state when to use this vs alternatives. Usage is implied by the description of what it does.

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. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedcheck_binary_diff
    • First observedfingerprint_sections
    • First observedunified_diff

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: a health check, a single-file fingerprint, and a two-file diff. There is no ambiguity about which tool to use for a given task.

Naming Consistency3/5

Tool names use different patterns: 'check_binary_diff' (verb_noun), 'fingerprint_sections' (verb_noun), and 'unified_diff' (adjective_noun). The mixing of conventions reduces consistency.

Tool Count4/5

With 3 tools, the server is well-scoped for binary diffing tasks. It covers the essential operations without excess, though some might argue a tool to list chunks could be merged.

Completeness4/5

The tool set covers the core workflow: fingerprint a file, compare two files, and check server status. There are minor gaps (e.g., no explicit tool to fetch specific chunks), but the provided tools are sufficient for the domain.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables intelligent file and folder comparison with advanced text normalization, duplicate detection, and line-level diff analysis. Provides secure workspace-constrained file operations with CRC32-based exact matching and smart text comparison capabilities.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables analysis of binary files (PE, ELF, Mach-O, COFF) by providing tools to retrieve info, headers, sections, imports, exports, libraries, security hardening, signatures, and COFF object file details.
    25
    GPL 3.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Heretek-RE/re-binary-diff'

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