Atlas / MCP servers / keyuraghao / EDB_FILE_EXPLORER

EDB_FILE_EXPLORERSAFE

mcp/keyuraghao/edb-file-explorer

Cross-platform GUI, CLI and MCP server for Microsoft ESE databases (ntds.dit, SRUDB.dat, Exchange .edb, WebCacheV01.dat, Windows.edb) - digital forensics tool with multi-format extract and reporting

Verdict
SAFE
Grade
B
Trust score
87 /100
Exposed tools
31 27r · 4w · 0d
Transport
streamable-http
License
MIT
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

EDB Explorer

Cross-platform GUI, CLI and MCP server for forensic database analysis. Opens ESE (ntds.dit, SRUDB.dat, Exchange, WebCache), SQLite (iOS, Android, browsers, macOS, Windows apps), Windows Event Logs (.evtx), LevelDB (Chromium / Electron), Access, dBase, Berkeley DB and SQL / BSON dumps - read-only - with SQL over any of them, a cross-database timeline, artifact views for ~60 applications, multi-format extraction, analyst reports and signed, encrypted project files for hand-over between machines.

Why

Evidence lives in databases: the Active Directory store, SRUM's per-app network usage, a phone's messages and call log, browser history, macOS's knowledgeC, a web app's LevelDB cache, an old Access application, a mysqldump from a comp

Read from source at commit 01d34285367bOBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add edb-explorer -- uvx edb-explorer
claude-desktop
{
  "mcpServers": {
    "edb-explorer": {
      "command": "uvx",
      "args": [
        "edb-explorer"
      ]
    }
  }
}
03

Exposed tools (31)

27 read · 4 write · 0 destructive.

ToolRiskDescription
close_databasereadClose an open database and release its file handle.
column_statisticsreadProfile a table
count_recordsreadCount the records in a table (walks the whole B-tree; cached afterwards).
database_summaryreadAnalysis overview of a database: detected application/platform, tables with timestamp columns,
describe_tablereadReturn the schema of a table: columns (name, JET type, storage class, encoding) and indexes.
detect_timestampsreadWhich columns of a table hold timestamps and in which encoding (webkit, cocoa, unix_ms, filetime ...).
exchange_exportreadExport messages (a whole mailbox, one folder, or specific ids) as eml / html / txt / json files
exchange_foldersreadFolder tree of a mailbox with item counts (Inbox, Sent Items, Deleted Items, ...).
exchange_mailboxesreadList the mailboxes of an Exchange mailbox database (.edb): owner, message counts, last logon.
exchange_messagereadFull message: headers, decoded body (text/HTML), recipients, attachments and every MAPI property.
exchange_messagesreadList messages of a mailbox (newest first): subject, sender, recipients, dates, attachments flag.
exchange_save_attachmentwriteSave one attachment (by its inid from exchange_message) to disk.
export_database_to_directoryreadExtract every table (or a chosen subset) of a database into a directory, one file per table.
export_table_to_filereadExport a table to CSV, JSON or JSON Lines on disk.
generate_reportwriteWrite an analyst report describing one or more open databases.
get_database_inforeadReturn metadata for an open database: format, page size, shutdown state, timestamps, profile.
get_recordreadFetch a single record by its `_row` index with full (untruncated) values.
get_record_rawreadReturn one binary/text value as hex, a hexdump and every decoding attempt (UTF-16, SID, GUID...).
interpret_timestampreadDecode an unknown numeric timestamp every plausible way (FILETIME, OLE date, Unix s/ms/us, WebKit...).
list_databasesreadList the databases currently open in this session.
list_formatsreadList the database formats this server can open (ESE, SQLite, LevelDB, Access, DBF, Berkeley DB, SQL/BSON dumps).
list_known_profilesreadList the database types EDB Explorer recognises and how it identifies them.
list_tablesreadList tables in a database with friendly names (e.g. SRUM GUID tables) and column counts.
list_viewsreadList the ready-made artifact views for a database
open_databasereadOpen a database file read-only and return its metadata. Any supported format is auto-detected:
query_tablereadPage through the records of a table with optional filtering.
run_sqlwriteRun read-only SQL against a database of ANY format (ESE, SQLite, LevelDB, Access, DBF ...).
run_viewwriteRun one of the profile
scan_directoryreadFind supported database files (and LevelDB directories) under a directory by file signature.
searchreadSearch for a string (or regex) across all tables and columns of a database.
timelinereadBuild a unified timeline: one event per row and timestamp column across tables and databases,
04

Trust audit

SAFEgrade B · trust 87/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (10)

MEDIUMAuth / authz · mcp.remote_no_auth · CWE-287, CWE-862
streamable-http
Why it matters. a network transport with no auth environment variable found
Fix. require a token
LOWInventory / provenance · inv.hidden_file · CWE-1104
.pre-commit-config.yaml
.pre-commit-config.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/edb_explorer/core/backends/ese.py:114
return hashlib.sha1(repr((code.co_argcount, code.co_names, code.co_varnames)).encode()).hexdigest()[:12]
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/edb_explorer/core/backends/sqldump.py:247
row.append(bytes.fromhex(text[i + 2 : j]))
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/edb_explorer/core/backends/sqldump.py:292
return bytes.fromhex(tok[2:])
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/edb_explorer/core/project.py:364
Ed25519PublicKey.from_public_bytes(base64.b64decode(public_b64)).verify(base64.b64decode(signature_b64), data)
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/edb_explorer/core/project.py:610
fp = _fingerprint(base64.b64decode(public))
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/edb_explorer/core/project.py:646
key = _derive_key(password, base64.b64decode(crypto["salt"]))
LOWPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
.github/workflows/ci.yml:49
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends libegl1 libgl1 libxkbcommon0 libdbus-1-3 libfontconfig1
Why it matters. asks for elevated privileges
LOWPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
.github/workflows/release.yml:48
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends libegl1 libgl1 libxkbcommon0 libdbus-1-3 libfontconfig1
Why it matters. asks for elevated privileges

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 01d34285367bfull audit observations/trust-audit/mcp-server/keyuraghao__edb_file_explorer.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1101d34285367bSAFEB87first audit
06

Questions

What is the EDB_FILE_EXPLORER MCP server?

Cross-platform GUI, CLI and MCP server for Microsoft ESE databases (ntds.dit, SRUDB.dat, Exchange .edb, WebCacheV01.dat, Windows.edb) - digital forensics tool with multi-format extract and reporting

What tools does EDB_FILE_EXPLORER expose?

31 in total: 27 read-only, 4 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is EDB_FILE_EXPLORER safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (87/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does EDB_FILE_EXPLORER need?

No credential environment variables were found in its source, so it appears to need none.

How does EDB_FILE_EXPLORER run?

It speaks streamable-http, so it runs as a service you connect to over the network. It is published on PyPI as edb-explorer.

How current is this page?

The grade is for one exact copy of the source (01d34285367b), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement