Read and verify your local media archive's 3-2-1 coverage across tape, disk, NAS, and cloud.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
One-click editor setup isn’t available for this listing yet — we don’t have a confirmed install command, and we’d rather show nothing than point your editor at the wrong package or host. Follow the project’s own setup instructions, linked above.
Exposes the Hiberden archive engine (hiberden-core) as Model Context
Protocol tools over the stdio transport
(newline-delimited JSON-RPC 2.0).
MCP is an open, vendor-neutral standard, so this one server is drivable from any MCP client: Claude Desktop / Claude Code, OpenAI's Agents SDK and ChatGPT desktop, Gemini, Cursor, Windsurf, and others. There is no model and no API key in this process. The client brings the LLM; this binary only answers tool calls against the local catalog. In its default mode it performs no network I/O.
The server advertises and answers the read/verify tools below by default, and
nothing mutates configuration. The only state any default tool ever writes
is what verify_copy records: the copy's status, its verify-pass provenance
(which algorithm ran, when the last full pass succeeded), and an audit-log
row for each completed verify — and it only does that after a genuine
read-back from the medium.
Write and delete tools (catalog management, destinations, policies) ARE
implemented, but behind a catalog-persisted permission tier that defaults to
read-only and is only changeable in the Hiberden desktop app's settings; a
tool above the active tier is neither advertised nor accepted. See
docs/Hiberden_MCP_Command_Surface_and_Permission_Model.md (which supersedes
docs/mcp/write-gate-design.md).
| Tool | Args | What it does |
|---|---|---|
list_projects | none | Top-level projects (containers). For each: name, policy, archive count, and a roll-up of how many of its archives sit in each coverage state. |
list_archives | project_id?, collection_id?, name? | The archives (leaves actually written to media). For each: project, size, SHA-256, 3-2-1 coverage, and per-copy status (destination + kind + status). Narrow by project, Collection, and/or a case-insensitive name substring. |
list_collections | project_id | The Collections inside one project (catalog-only organizational nodes): id, name, parent, archive count. |
coverage_status | none | Library-wide 3-2-1 roll-up: total archives plus counts in unconfigured, unprotected, in_progress, at_risk, and fully_covered. |
archive_detail | archive_id | Full detail for one archive: project, size, SHA-256, legacy MD5 (if imported), coverage, and every copy with its destination, kind, status, address, and written/verified timestamps. |
list_destinations | none | Configured destinations (Tape, LocalFs, NAS, Cloud) with id, slot, kind, name, and enabled/retired state. |
list_tapes | none | Tapes: serial, volume label, uuid, capacity, used bytes, last verified time, and copy count. |
tape_detail | serial | One cartridge by barcode: label, capacity, used bytes, last verified, and the archives stored on it. |
recent_activity | limit? | Recent copy activity, newest first (default 20): each copy's archive, destination, status, and write/verify timestamps. |
find_file | query, limit? | Find a file by name/path fragment across every archive, with the archive and every destination it is stored in. |
list_archive_files | archive_id, offset?, limit? | The file manifest of one archive from the catalog index (path, size, per-file SHA-256), paginated. The report enabler: client-ready deliverable lists and checksum manifests from the index (a one-time backfill may read a local copy of a pre-index archive). Archives with no buildable index (legacy tape-only imports) report indexed: false — manifest unavailable, not empty. |
list_jobs | limit? | Recent background jobs (saves, verifies, restores), newest first: verb, state, archive, destination, bytes, timestamps, and the recorded failure reason on failed/interrupted rows. |
catalog_stats | none | One-call inventory + capacity roll-up: counts, total archived bytes, copies by status, destinations by kind, tape capacity vs. use. |
verify_copy | archive_id, destination_id, mode? | Re-reads the copy off its medium and compares it to what was recorded. Default mode: "full" re-hashes SHA-256 plus the recorded BLAKE3 and stored signature when present, then stamps the copy Verified on a match, Failed on a mismatch, or Missing if the file is gone — the only pass that can promote. mode: "fast" is a BLAKE3-only re-read that sustains an already-Verified copy or exposes a mismatch but never promotes (no recorded fast hash falls back to a full pass, with the reason surfaced). Results and audit rows name the algorithm that ran. |
verify_copy is the differentiator: it is proof from the actual medium, not a
stored flag. Identify the copy by archive_id + destination_id. It works for
disk and NAS copies and for tape copies (the cartridge is mounted and read
back). Cloud (S3) read-back verify runs in the Hiberden desktop app, not here:
for a cloud copy the tool returns a clear message that the copy was checked in
the desktop, not here, so it has not passed or failed. That message is a
not-attempted result, not a verification failure.
Adding archives (writing bytes), save, and restore are not exposed here. Catalog, destination, and policy configuration tools exist behind the permission tier described above; at the default read-only tier they are neither advertised nor accepted.
The server reads the single catalog shared by the desktop app, the CLI, and this server. Path resolution:
HIBERDEN_DB environment variable, if set.%LOCALAPPDATA%\Hiberden\catalog.db on Windows, or
~/.hiberden/catalog.db on Linux.The catalog is opened fresh per tool call (sub-millisecond) rather than held for
the process lifetime. With WAL mode and a busy timeout, the desktop app and this
server can run against the same catalog.db at the same time without a
multi-process locking hazard.
All diagnostics go to stderr. stdout carries the JSON-RPC channel; anything written to stdout that is not a JSON-RPC message corrupts the stream.
Linux binaries are published on the releases page and at
cdn.hiberden.app. They are built on Ubuntu 22.04, so they run on Ubuntu
22.04+, Debian 12+, and equivalents; verified on debian:bookworm-slim and
ubuntu:22.04.
hiberden-mcp-linux-x86_64 is the same connector as the Windows build. The
CLI (hiberden) catalogs and archives with no display server and no network —
the whole point of the kit is that an air-gapped or headless machine can run
it.
Linux reached general availability on 2026-08-11 at version 1.3.1, alongside Windows. What that does and does not cover, precisely:
.deb and .AppImage
from hiberden.app/linux. A macOS beta for
Apple Silicon is at hiberden.app/download.HIBERDEN_TAPE_FAKE=1 to exercise the flows without one.~/.hiberden/keys/ (owner-only). It is the same custody model as the OS
keyrings on other platforms, and no stronger: it is not hardware-backed.The binary self-installs into known MCP clients:
install writes (or updates) an mcpServers.hiberden entry pointing at this
executable. It is zero-config for the catalog: the entry only pins HIBERDEN_DB
when you already have it set in your environment, otherwise it relies on the
default %LOCALAPPDATA%\Hiberden\catalog.db path.
To wire it up by hand, add this to your client's config (Claude Desktop:
claude_desktop_config.json; Claude Code: .mcp.json; Cursor / Windsurf use the
same mcpServers shape). command is the path to the executable. env is
optional: include HIBERDEN_DB only if your catalog lives somewhere other than
the default path.
This pipes three requests (initialize, list tools, read coverage) straight into the binary:
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/hiberden)<a href="https://allmcps.com/mcp/hiberden"><img src="https://allmcps.com/api/badge/hiberden?style=directory" alt="Hiberden on AllMCPs" /></a>