mulder (calebevans/mulder) is an MCP server listed on the M8ven Trust Index. It scores 53 out of 100, grade D. It declares 141 tools. No publisher has claimed this listing.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

calebevans

Source: github_repo_search

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Tool descriptions don’t match what handlers do
4 tools describe read intent but their handlers mutate — run_vshadow_info (line 853: proc = subprocess.run(); run_mmls (line 515: proc = subprocess.run(); run_fls (line 604: return subprocess.run(cmd, capture_output=True, timeout=TOOL_TIMEOUT, check=False))
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
// tools this server exposes140 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

run_parallel

Run multiple tool calls in parallel and return all results.

run_volatility

Run a single Volatility 3 plugin against a memory dump and index the output.

parse_browser_history

Extract browser history from Chrome, Firefox, and Safari databases.

parse_plist

Extract and parse macOS plist files from a disk image.

query_sqlite_from_image

Extract a SQLite database from a disk image and run a SQL query.

list_directory

List files and directories at a given path.

read_evidence_file

Read a text file from the evidence directory.

detect_steganography

Scan image files for hidden steganographic content.

extract_steganography

Extract hidden data from a steganographic JPEG image.

detect_timestomping

Analyze MFT data for files with manipulated timestamps (timestomping).

parse_autoruns

Parse Sysinternals Autoruns CSV output to identify persistence mechanisms.

lookup_attack_technique

Search the MITRE ATT&CK knowledge base for techniques.

triage_binary

Triage a binary using rabin2 for forensic analysis.

run_capa

Identify capabilities in a binary using Mandiant CAPA.

run_floss

Extract obfuscated strings from a binary using FLOSS.

run_detect_it_easy

Identify packers, compilers, and protectors using Detect-It-Easy.

get_carved_iocs

Retrieve IOC data carved by bulk_extractor from the case database.

scan_evidence

Scan an evidence directory and create a new case for investigation.

list_cases

List all cases in the database directory.

open_case

Switch the active case to an already-existing case.

verify_evidence_integrity

Verify the integrity of all indexed source data.

extract_archive

Extract a compressed evidence archive to make its contents accessible.

run_chainsaw

Analyze Windows artifacts using Chainsaw with Sigma rules.

list_sources

List all evidence sources currently indexed in the active case.

get_source_stats

Return per-source statistics including citation coverage.

correlate_across_sources

Cross-reference all evidence sources within a time window.

list_processes_from_memory

List all processes captured in the memory dump (Volatility pslist).

get_process_tree

Return the process parent-child tree from memory (Volatility pstree).

get_eventlog_anomalies

Find anomalous entries in a Windows Event Log channel.

extract_mft_timeline

Extract the Plaso super-timeline for a time range.

parse_prefetch

Return all parsed Windows Prefetch data.

get_amcache

Return parsed AmCache / registry system hive data.

scan_hidden_processes

Detect processes hidden from the linked list by comparing psscan against pslist.

get_process_environment

Return environment variables for a specific process from memory.

get_process_privileges

Return token privileges for a specific process from memory.

scan_kernel_modules

Detect hidden kernel modules by comparing modscan (pool-tag) against modules (linked list).

get_userassist

Return UserAssist registry entries extracted from memory.

scan_files_in_memory

Return a summary of file objects cached in the memory dump (Volatility filescan).

get_raw_output

Retrieve full raw text from a specific evidence source with cursor pagination.

decode_payload

Safely decode an encoded payload found in evidence.

bookmark_window

Bookmark a specific window for later review.

get_bookmarks

Retrieve all bookmarked windows with their notes.

remove_bookmark

Remove a bookmark by ID.

get_tool_guide

Return a reference guide of available forensic tools and their relationships.

analyze_office_document

Analyze a Microsoft Office document for malicious content.

analyze_pdf

Analyze a PDF file for malicious indicators.

parse_pst

Parse Outlook PST/OST files for forensic email analysis.

enrich_iocs

Enrich IOCs against public threat intelligence APIs.

parse_mft

Return MFT entries within a time range, parsed by MFTECmd (EZ Tools).

parse_usn_journal

Return USN Journal entries within a time range, parsed by MFTECmd (EZ Tools).

_fn
submit_finding

Record a forensic finding with validated evidence references and metadata.

update_finding

Update or correct an existing finding.

delete_finding

Delete a finding that was submitted in error.

submit_narrative

Submit the long-form investigation narrative report.

finalize_report

Generate the final investigation report from all submitted findings.

deduplicate_findings

Identify and consolidate duplicate findings across systems.

run_hayabusa

Detect threats in EVTX files using 3,700+ Sigma rules via Hayabusa.

run_hindsight

Analyze Chrome/Chromium browser artifacts using Hindsight.

start_extraction_batch

Submit long-running extraction tools for background execution and return immediately.

check_extraction_status

Poll the progress of a background extraction batch.

get_completed_results

Retrieve extraction summaries from completed background jobs.

wait_all

Wait for multiple extraction batches to complete simultaneously.

wait

Wait for extraction batches or individual jobs to complete.

run_mvt_android

Scan Android device backup for spyware indicators using MVT.

run_mvt_ios

Scan iOS backup or filesystem dump for spyware indicators using MVT.

carve_sqlite_from_raw

Carve SQLite databases from a raw binary image (phone dump).

parse_android_artifacts

Parse Android artifacts from a logical extraction or carved databases.

parse_ios_artifacts

Parse iOS artifacts from an iTunes/Finder backup or extracted files.

decrypt_app_data

Attempt to decrypt and parse application data.

run_aleapp

Parse Android forensic artifacts using ALEAPP.

run_ileapp

Parse iOS forensic artifacts using iLEAPP.

get_plaso_stats

Return Plaso parser hit statistics collected during ingest.

filter_timeline

Query the Plaso timeline with time range and optional filters.

export_timeline_slice

Export a 5-minute timeline slice centred on a timestamp.

audit_evidence_coverage

Identify indexed evidence sources not cited by any submitted finding.

audit_tool_coverage

Report applicable forensic tools that were never invoked during the investigation.

check_finalize_readiness

Check whether the investigation meets all finalize_report requirements.

track_progress

Record investigation progress for a specific system.

get_ioc_summary

Extract and deduplicate IOCs from findings and bulk_extractor data.

list_partitions

Return the partition table extracted from the disk image (TSK mmls).

list_files

List files from the disk image filesystem (TSK fls).

get_deleted_files

Return a summary of deleted files detected in the disk image.

get_fs_timeline

Return the filesystem timeline (mactime) within a time range.

extract_file_by_inode

Extract a file from the disk image by inode number using TSK icat.

get_file_metadata

Return file metadata (MAC times, size, blocks) for an inode using TSK istat.

yara_scan_files

Scan a mounted filesystem or extracted directory for malware using YARA rules.

yara_scan_memory

Scan the memory dump with YARA rules for malware signatures.

yara_scan_with_volatility

Scan process virtual address descriptors with YARA via Volatility 3's vadyarascan.

run_zircolite

Apply Sigma detection rules to Linux logs using Zircolite.

find_execution_evidence

Build a unified execution evidence view from multiple artifact sources.

analyze_execution_timeline

Build a unified execution timeline from prefetch, amcache, and shimcache.

find_data_exfiltration_indicators

Detect potential data exfiltration by correlating network, URL, and file access artifacts.

find_file_staging

Detect signs of data staging and exfiltration preparation in filesystem data.

find_lateral_movement_indicators

Detect lateral movement by correlating logon events, network connections, and RDP artifacts.

find_defense_evasion

Detect defense evasion techniques across memory, filesystem, and event logs.

reconstruct_execution_chains

Reconstruct parent-child process execution chains from memory forensics.

assess_recovery

Assess evidence recoverability by cross-referencing deleted files, carving results, and anti-forensics indicators.

correlate_pcap_with_host

Cross-reference PCAP network events with host artifacts.

find_persistence_mechanisms

Detect persistence mechanisms across registry, services, event logs, and timeline.

40 further tools are not listed here. The complete surface is in the source.

// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configMULDER_CASE_ID
configNO_COLOR
configMULDER_ASSET_ROOT
configXDG_CACHE_HOME
configPIPX_BIN_DIR
configMULDER_PROXY_PORT
configCLAUDE_CODE_USE_VERTEX
configCLAUDE_CODE_USE_BEDROCK
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

141/141 tools missing one or more hints — run_parallel (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); run_volatility (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); parse_browser_history (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +138 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Destructive tools are labelled

4 tools perform destructive updates without destructiveHint — extract_steganography deletes at line 904 (out_file.unlink(missing_ok=True)); run_hayabusa deletes at line 325 (Path(out_path).unlink(missing_ok=True)); parse_android_artifacts deletes at line 408 (shutil.rmtree(cleanup_tmpdir, ignore_errors=True))

Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.

Descriptions match behaviour

4 tools describe read intent but their handlers mutate — run_vshadow_info (line 853: proc = subprocess.run(); run_mmls (line 515: proc = subprocess.run(); run_fls (line 604: return subprocess.run(cmd, capture_output=True, timeout=TOOL_TIMEOUT, check=False))

Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.

Tool inputs are validated

139/140 tool handlers declare input schemas (99%)

Declare an inputSchema with zod/joi/yup on every tool definition.

Tool description accuracy

3 tools have description/behavior mismatches: run_vshadow_info: description implies read-only but handler writes/deletes/executes; run_mmls: description implies read-only but handler writes/deletes/executes; run_fls: description implies read-only but handler writes/deletes/executes

Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/calebevans/mulder?variant=verified)](https://m8ven.ai/mcp/calebevans/mulder)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: fe7217f1d727909426f663fbf34854eaae831abe
code hash: 7e8adc1e47166483ab153ef8916fa0ac66de1613ba9123b9ea440cf024bca197
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client