EvidenceGene Court
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EvidenceGene Courtinvestigate the memory image from case 001 for malware"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EvidenceGene Court
Adversarial autonomous DFIR. A court of AI agents — Prosecutor, Defender, Arbiter — investigates disk and memory evidence through a typed, read-only MCP server. No finding can reach the report without a valid artifact reference in a SHA-256-chained audit log. Hallucinations are not discouraged by prompts — they are structurally rejected at the API boundary.
Built for FIND EVIL! (SANS Institute, 2026) — the first hackathon for autonomous AI incident response on the SIFT Workstation.
Demo video: youtu.be/HerCqv_LA3Q · Pattern: Custom MCP Server + Multi-Agent · Runs fully local (no cloud)

On DFIR Madness Case 001
the court autonomously identified the documented implant coreupdater.exe and
its C2 connection, promoted it to CONFIRMED by corroborating memory against
the disk timeline, and blocked an injected fabricated finding — all on a laptop
with a local model. See the accuracy report.
Why this exists
GTG-1002 showed attackers running MCP-orchestrated intrusions at 80–90% autonomy. EvidenceGene Court is the mirror image on defense: the same agent-plus-MCP shape, but with the trust boundary inverted — every tool is read-only, every output is content-addressed, and every claim is audited.
The full investigation runs on a single laptop with a local LLM (LM Studio / any OpenAI-compatible endpoint). Evidence containing PII or privileged material never leaves the machine. The same configuration flag points the court at a cloud API if your policy allows it.
Related MCP server: Protocol-SIFT-Async-Bridge
Architecture (pattern: Custom MCP Server + Multi-Agent)
flowchart TB
subgraph evidence [Read-only evidence]
IMG[Disk E01 / Memory image]
end
subgraph mcp [sift-gene-mcp — typed MCP server]
TOOLS[11 typed read-only tools]
STORE[Artifact store SQLite]
CHAIN[SHA-256 audit chain JSONL]
end
subgraph court [EvidenceGene Court]
P[Prosecutor]
D[Defender]
A[Arbiter]
end
GATE[FindingSerializer — fail-closed gate]
IMG --> TOOLS --> STORE --> CHAIN
STORE --> P & D
P --> A
D --> A
A --> GATE
GATE -->|valid artifact_refs| REPORT[Findings: CONFIRMED / INFERRED / ABSTAIN]
GATE -->|reject + log| ASecurity boundaries — all architectural, none prompt-based:
Boundary | Enforcement |
No shell, no writes | Tools do not exist on the wire; spoliation impossible |
Context-window safety | Tools return bounded previews + |
Anti-hallucination | Serializer rejects findings whose |
Tier integrity | CONFIRMED granted only for refs spanning >=2 distinct evidence sources |
Runaway loops | Hard |
Tamper evidence | Append-only JSONL with SHA-256 hash chain; |
v0.2 — Red-team, Ablation, Jury
Three additions push past "typed MCP + anti-hallucination" (now table stakes):
Injection Harness (
egc-court redteam) — the GTG-1002 mirror. Autonomously attacks our own defender with 6 payloads mapped to MITRE ATLAS, and proves each is neutralized architecturally (latest: 6/6 defended). Directly answers the judging criterion "are guardrails architectural or prompt-based — tested for bypass?". See docs/ATLAS_MAPPING.md.Counterfactual Ablation (
egc-court ablate) — remove one evidence source and watch CONFIRMED collapse to INFERRED. Findings are falsifiable; the tier is earned by the evidence, not asserted by the model.Jury of Models (
egc-court jury) — collect evidence once, run the court per juror model, promote only cross-model consensus. Resilient: a juror that errors abstains instead of crashing the panel.
Plus an ATT&CK kill-chain timeline and a self-contained HTML report
(egc-court report). Everything new is deterministic and offline-testable; only
the jury spends (local) LLM calls. A synthetic mini-fixture (egc-court fixture)
runs the whole pipeline in milliseconds without evidence images.
Quick start
# prerequisites: uv, sleuthkit (brew install sleuthkit libewf), python 3.12+
uv sync --extra dev --extra forensics
# health check (LLM endpoint + forensic tools)
uv run egc-court health
# run the MCP server standalone (stdio)
uv run egc-mcp
# run a full court investigation against a case
uv run egc-court investigate --memory /cases/case001/citadeldc01.mem --source memory:dc01Configuration via .env (see .env.example) — EGC_LLM_BASE_URL defaults to
LM Studio at http://localhost:1234/v1.
On the SIFT Workstation (for judges)
All tools used (Volatility 3, Sleuth Kit) ship with SIFT. See docs/TRY_IT_OUT.md for step-by-step instructions.
Dataset
Demo case: DFIR Madness Case 001 — The Stolen Szechuan Sauce (public, with published ground truth). See docs/DATASET.md.
Project layout
Path | What |
| Typed read-only MCP server + forensic wrappers |
| Prosecutor/Defender/Arbiter orchestrator + LLM client |
| FindingSerializer + tiers (the fail-closed gate) |
| Artifact store + SHA-256 audit chain |
| Architecture, dataset, accuracy report, try-it-out |
| Demo video, diagram, real sample-run logs |
Documentation
License
MIT — see LICENSE. Built by Aleksandr Mordvinov. Open source so the DFIR community can build on it.
Available Tools
11 toolsartifact_queryB
Page through or search the full rows of a previously recorded artifact.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| search | No | ||
| artifact_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It implies read-only operation through 'page through' and 'previously recorded,' but does not explicitly state safety, error behavior, or side effects. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundancy. Every word contributes to the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and sparse parameter documentation, the description is insufficient for an agent to fully understand query behavior, required parameters, or search scope. The output schema exists but does not compensate for missing behavioral and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify parameters. It hints at pagination and search behaviors but does not map them to specific parameter names, nor explain the required artifact_id or search semantics. The description adds only limited semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'page through' and 'search' with a clear resource ('full rows of a previously recorded artifact'). It clearly distinguishes from sibling tools, which focus on integrity verification, memory analysis, or disk operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no information about when to use this tool over alternatives or any exclusions. It simply states the tool's function without situational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cross_validate_processesA
Compare pslist vs psscan artifacts; returns ghost processes (hidden candidates).
| Name | Required | Description | Default |
|---|---|---|---|
| pslist_artifact | Yes | ||
| psscan_artifact | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the output behavior ('returns ghost processes') and implies a non-mutating comparison, but does not mention prerequisites (e.g., prior output from vol_pslist/vol_psscan), error conditions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence front-loads the core action and result. Every word is purposeful with no redundant content, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two string parameters and an output schema, the description provides the essential purpose but lacks usage guidance and prerequisite context. It is minimally sufficient but leaves gaps around when to invoke and how inputs should be prepared.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description only rephrases the parameter names ('pslist vs psscan artifacts') without adding format, source, or usage details. The agent gains little beyond what the parameter names already convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Compare pslist vs psscan artifacts' with a distinct outcome ('returns ghost processes'). It differentiates from siblings like vol_pslist and vol_psscan by focusing on cross-validation rather than standalone listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the comparison of two artifacts, suggesting it is used when investigating hidden processes. However, it does not explicitly state when to choose this over alternatives or when not to use it, lacking clear exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disk_file_timelineB
Sleuth Kit fls — recursive file timeline from a partition (MACB timestamps).
Use path_filter (substring) to focus, e.g. 'Windows/Prefetch' or 'Users'.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| image_path | Yes | ||
| path_filter | No | ||
| sector_offset | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description bears full responsibility for behavioral disclosure. It mentions recursive traversal and MACB timestamps but omits whether the operation is read-only, potential performance implications, or prerequisites like filesystem type. The description is not misleading but is incomplete for a forensic tool where safety and system impact are key.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence packs the tool's identity and function, the second provides a focused usage tip. It is front-loaded and every clause adds value, exemplifying concise structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, zero annotation coverage, and only an output schema to rely on, the description is too sparse. It explains only one parameter and gives no operational context for the required parameters or the tool's behavior in practice. The presence of an output schema covers return shape but not the input semantics, which remains a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. Only path_filter gets semantic explanation via the substring example and intended use. The required parameters image_path, source, and sector_offset remain completely opaque; the description adds no meaning to them, leaving the agent to guess their purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a 'recursive file timeline from a partition (MACB timestamps)' via 'Sleuth Kit fls', which is specific and distinct from sibling tools like disk_partitions or memory-based volatility tools. However, it does not explicitly name any alternative or contrast it with siblings, so it misses the highest bar of sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: when you need a MACB file timeline from a disk partition, use this tool. It provides a concrete hint on using path_filter with examples ('Windows/Prefetch', 'Users'), but offers no explicit 'when not to use' or references to alternative tools, leaving selection reasoning to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disk_partitionsC
Sleuth Kit mmls — partition table of a disk image (E01/raw).
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
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 only mentions the underlying tool (Sleuth Kit mmls) and the action, but does not state whether it is read-only, what output format to expect, or any side effects. This is a significant gap for a forensic tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no fluff or redundant content. However, its extreme brevity comes at the cost of essential details, making it concise but not optimally structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists (so return values need no explanation), the description omits critical context such as parameter meanings, usage scenarios, and any behavioral caveats. For a tool with two required parameters and no annotations, this description is materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage for both 'source' and 'image_path'. The description mentions the image format (E01/raw) but does not explicitly map it to image_path, and 'source' is completely unexplained. Since the description must compensate for schema gaps, this is clearly insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as listing the partition table of a disk image (E01/raw), which is a specific resource and distinguishes it from siblings like vol_pslist or disk_file_timeline. However, it lacks an explicit verb like 'list' or 'display', so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives among the siblings. It does not mention any prerequisites, exclusions, or comparison with other disk or process analysis tools, leaving usage entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_audit_chainA
Replay the SHA-256 audit chain; proves the investigation log is untampered.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 says the tool 'replays' and 'proves' but does not disclose whether it is a read-only operation, what happens if the chain is tampered, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and the purpose. No words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, the description provides clear purpose and outcome. However, since there is no output schema, the description could more explicitly state the return format or result type, though 'proves' implies a boolean/verification result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. There is no parameter information missing; the description is not required to elaborate on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Replay') and a clear resource ('SHA-256 audit chain'), and states the outcome ('proves the investigation log is untampered'). This clearly distinguishes it from sibling tools like verify_image_integrity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (verifying the integrity of the investigation log) but does not explicitly state when to use it versus alternatives, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_image_integrityA
Hash an evidence image (sha256/md5) for chain-of-custody. Run this first.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
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. While 'hash' implies a read-only operation, the description does not explicitly state that the tool does not modify the image or that it only reads the file. It adds the purpose (chain-of-custody) but stops short of detailing the output or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the primary action and purpose. Every word serves a function, and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two required parameters with no schema descriptions, and the description fails to clarify the 'source' parameter. While an output schema exists, the lack of parameter semantics leaves a significant gap in understanding the tool's full usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameters. The description indirectly references the image path via 'evidence image' but does not mention 'source' at all. The meaning of 'source' remains unclear—whether it refers to the hash algorithm source, the image origin, or something else is unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Hash an evidence image (sha256/md5) for chain-of-custody.' This uses a specific verb (hash), targets a specific resource (evidence image), and even includes the purpose (chain-of-custody). It also distinguishes itself from sibling tools by focusing on image integrity verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance with 'Run this first,' indicating this should be executed before other forensic tools. However, it does not name alternatives or explicitly state when not to use this tool, though the instruction to run first implies a specific position in the process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vol_cmdlineC
Volatility3 windows.cmdline — process command lines from memory.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description alone must disclose behavior. It only states that the tool reads command lines from memory, offering no detail about side effects, required permissions, or output characteristics beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally brief with no filler words. However, it is under-specified for the tool's complexity, providing little more than the plugin name and a noun-phrase description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is an output schema and only two simple string parameters, the tool itself is not complex, but the description is too sparse to be complete. It lacks any workflow context, parameter explanation, or usage conditions, making it hard for an agent to select correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two required parameters (image_path, source) with 0% schema description coverage, and the description adds no information about them. The agent must infer their meaning from the parameter names alone, which is insufficient for 'source'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as the Volatility3 windows.cmdline plugin and states its function: obtaining process command lines from memory. This is specific enough to distinguish it from sibling process-listing tools like vol_pslist and vol_psscan, though it uses the noun 'process' rather than an explicit verb like 'extract'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not mention when to use this tool versus vol_pslist, vol_psscan, or other alternatives, nor does it state any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vol_malfindC
Volatility3 windows.malfind — injected/suspicious executable memory regions.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
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 not state whether the tool is read-only, whether it requires a memory image, what side effects it might have, or how results are returned. The lack of any behavioral detail beyond the plugin name and target leaves significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler or repetition. It is front-loaded with the plugin name and immediately conveys the core concept. However, it is so terse that important details from other dimensions are omitted, making it efficient but not optimally structured for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is extremely sparse. For a Volatility memory analysis plugin, it does not explain required inputs (e.g., a memory image path), output structure, or how it differs from related plugins like vol_psscan. The tool is complex enough that this one-line description is insufficient for an agent to use it safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has two required parameters (source, image_path) with no descriptions, and the description provides zero information about either parameter. With schema description coverage at 0%, the description fails to compensate by explaining what these parameters represent or how they should be formatted. The agent receives no help beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as 'Volatility3 windows.malfind' and states it relates to 'injected/suspicious executable memory regions,' which clearly indicates it finds memory regions containing injected code. While it lacks an explicit verb like 'find' or 'scan,' the plugin name 'malfind' inherently conveys the action, and the distinction from sibling plugins (e.g., vol_pslist, vol_netscan) is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios, prerequisites, or why one might choose malfind over other Volatility plugins such as vol_pslist or vol_cmdline. The usage context is entirely implied by the tool's name and purpose, but no explicit comparisons or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vol_netscanC
Volatility3 windows.netscan — network connections and listeners from memory.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
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 not mention that this is a read-only memory scan, any permissions required, or potential performance implications. It only states the tool's general function, leaving the agent without safety or side-effect information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the tool name and core function. However, it is so brief that it omits useful context, though it does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks essential context for a memory-forensics tool. It does not mention the memory image, analysis environment, or any relationship to other Volatility plugins, leaving the agent underinformed about the tool's role and requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema includes two required parameters (source, image_path) with zero schema description coverage. The description does not explain the purpose or format of either parameter, failing to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (network connections and listeners) and the Volatility3 module, which distinguishes it from sibling process-listing tools. However, it lacks an explicit action verb like 'lists' or 'scans', relying on the module name to imply the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement simply describes what it does, without any context on prerequisites, ideal scenarios, or exclusions relative to sibling tools like vol_pslist or vol_malfind.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vol_pslistC
Volatility3 windows.pslist — processes from the active process list.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It mentions it reads the active process list but omits any details about prerequisites, limitations, or the fact that it is a read-only operation. The return format is left to the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and free of fluff, but it is under-specified to the point of being unhelpful. It front-loads the plugin name but saves no room for essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description fails to contextualize the tool's inputs, relationship to siblings, or operational expectations. For a tool with two required parameters and no annotations, this level of completeness is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no explanation of the 'source' and 'image_path' parameters. Users must infer their meaning from context, which is inadequate for a tool with two required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as Volatility3's windows.pslist plugin and specifies its function: listing processes from the active process list. This distinguishes it from sibling vol_psscan, which uses a different scanning technique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like vol_psscan or vol_cmdline. The description only states what it does, not the appropriate context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vol_psscanA
Volatility3 windows.psscan — pool-scanned processes (finds hidden/terminated).
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| image_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| source | Yes | |
| preview | Yes | First rows only; query the rest via artifact_query |
| row_count | Yes | |
| artifact_id | Yes | Cite this id in findings (artifact_refs) |
| payload_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does reveal the scanning technique (pool scan) and its special capability to find hidden/terminated processes, which is useful. Yet it does not address potential side effects, permissions, or limitations, leaving notable transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that leads with the plugin name and immediately states the tool's purpose. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description is insufficient for a complex Volatility operation. It lacks parameter explanations, prerequisites, usage alternatives, and any annotation support, making it inadequate for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage for 'source' and 'image_path', and the description does not mention either parameter. Neither the schema nor the description clarifies what 'source' means or how the two parameters relate, leaving the agent without needed guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as running the Volatility 3 windows.psscan plugin and states its specific function: 'pool-scanned processes (finds hidden/terminated).' This distinguishes it from siblings like vol_pslist, which lists standard processes, by emphasizing its unique ability to discover hidden or terminated processes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use this tool: when seeking hidden or terminated processes. However, it does not explicitly mention alternatives or define when not to use it, so it lacks the explicit exclusions that would earn a 5.
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.
11 tool updates
v0.1.0- First observed
artifact_query - First observed
cross_validate_processes - First observed
disk_file_timeline - First observed
disk_partitions - First observed
verify_audit_chain - First observed
verify_image_integrity - First observed
vol_cmdline - First observed
vol_malfind - First observed
vol_netscan - First observed
vol_pslist - First observed
vol_psscan
TDQS
Each tool targets a distinct forensic operation, though vol_pslist and vol_psscan both enumerate processes, differing only in technique. The descriptions clarify this, but the overlap is still a minor source of potential confusion.
The tool names mostly follow a predictable convention with domain prefixes like verify_, vol_, and disk_, but cross_validate_processes and artifact_query break the pattern, making the set slightly inconsistent.
With 11 tools, the server is well-scoped for a forensics toolkit. Each tool earns its place, covering integrity checks, memory analysis, disk analysis, and result browsing without unnecessary bloat.
The set covers the core forensic workflow: evidence integrity, audit verification, memory artifact extraction, disk timelines, and cross-validation. However, it lacks common operations like file extraction or advanced memory analysis, leaving minor gaps.
Maintenance
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
AI-security knowledge as MCP: standards-mapped tools (OWASP, NIST, MITRE) for AI agents.
Formally-verified injection/exfiltration detector for AI agents (MCP-02).
Trust gate for AI agents: multi-model adversarial consensus, signed and verifiable verdicts.
MCP server teaching AI agents to implement TideCloak: auth, E2EE, IGA, security analysis
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables autonomous digital forensics and incident response by wrapping SIFT Workstation tools as MCP tools and orchestrating a multi-agent AI pipeline for evidence analysis and remediation planning.2MIT
- AlicenseNot gradedqualityBmaintenanceA production-grade, type-safe MCP server for memory forensics via Volatility 3, enabling LLM-assisted incident response without timeouts or evidence spoliation.1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that transforms Claude Code into an autonomous DFIR analyst by providing typed, audited forensic tools for disk, memory, timeline, registry, and IOC analysis on the SANS SIFT Workstation.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to conduct evidence-grounded forensic triage of compromised hosts, with architectural safeguards against evidence spoliation and hallucinated findings, supporting self-correction and chain of custody.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/FUYOH666/evidencegene-court'
If you have feedback or need assistance with the MCP directory API, please join our Discord server