Skip to main content
Glama
x746b

mem-forensics-mcp

by x746b

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.2.2

  • Disambiguation3/5

    While most tools target distinct high-level tasks, the generic `memory_run_plugin` overlaps with specialized tools like `memory_find_injected_code` and `memory_get_command_history`, since these can also be replicated via plugin execution. Additionally, `memory_full_triage` and `memory_analyze_image` both serve as entry points for analysis, creating potential confusion despite different workflows.

    Naming Consistency4/5

    All tools consistently use the `memory_` prefix and snake_case, with most following a verb_noun pattern (e.g., `list_sessions`, `dump_process`). However, `memory_full_triage` deviates as an adjective_noun phrase, and the mix of `list` vs. `get` for similar enumeration actions (e.g., `list_plugins` vs. `get_process_tree`) introduces minor inconsistency.

    Tool Count5/5

    With 15 tools, the server sits at the upper boundary of the optimal 3-15 range, but each tool covers a meaningful part of the memory forensics workflow. Administrative tools (list_sessions, get_status, list_plugins) are not redundant, and the count remains manageable for agent navigation.

    Completeness4/5

    The toolkit covers major memory forensics tasks including image analysis, process inspection, anomaly detection, code injection, C2 discovery, credential extraction, and memory dumping. The generic `memory_run_plugin` provides extensibility to Vol3 plugins, but a dedicated file extraction tool is missing (only listing is available), and registry analysis is not directly exposed.

  • Average 3.5/5 across 15 of 15 tools scored. Lowest: 2.6/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of disclosing behavior. It only states that it 'Finds suspicious network connections' and mentions implementation details, but does not reveal read-only status, output format, side effects, or any limitations. This is insufficient for a memory analysis tool.

    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 concise at two sentences, with the main purpose front-loaded. However, the second sentence about implementation details is somewhat extraneous and could have been used for more useful operational context, but it does not significantly hurt the clarity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given no output schema, no annotations, and only 33% schema coverage, the description should provide much more context. It lacks information about return values, parameter semantics, when to use, and what the agent should expect. The description is minimal and does not compensate for these gaps.

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

    Parameters1/5

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

    Only the required image_path parameter has a schema description. The booleans include_listening and include_legitimate are undocumented in both the schema and the description. The description does not clarify what these booleans control, leaving the agent to guess their semantics.

    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 the verb 'Find' and the resource 'suspicious network connections', which distinguishes this tool from siblings like memory_find_injected_code or memory_hunt_process_anomalies. However, it does not explicitly mention that it operates on a memory dump (though implied by the parameter) or scope the meaning of 'suspicious'.

    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 given on when to use this tool versus alternatives. It does not mention preconditions, exclusions, or that other memory tools might have overlapping functionality. The implementation detail (Rust/Python) does not help the agent decide when to invoke it.

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

  • Behavior2/5

    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, but it only states a high-level action. It does not mention potential side effects like writing output files (despite output_dir parameter), required permissions, or operational considerations such as whether it reads from a dump file or a live process. This leaves significant behavioral ambiguity.

    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 a single, concise sentence that is front-loaded with the core action and key details. There is no superfluous text, making it efficient and easy to parse.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the lack of an output schema and the presence of numerous sibling tools, the description is too sparse to fully contextualize the tool's operation. It doesn't explain what the output looks like, how memory regions and DLLs are presented, or when to prefer this over more specific sibling tools, so it falls short of complete guidance.

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

    Parameters3/5

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

    Schema coverage is 100%, with each parameter having a description, so the baseline is 3. The tool description adds no extra parameter-level meaning beyond what the schema already provides, but it does loosely align with the notion of dumping process information.

    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 the tool's action ('Get process info') and specifies content ('memory regions and loaded DLLs'), giving a clear sense of purpose. However, it does not differentiate from sibling tools like memory_dump_vad or memory_analyze_image, which may also involve process or memory details.

    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 regarding when to use this tool versus alternatives such as memory_dump_vad or memory_analyze_image. The description offers no context for selection or exclusions, leaving the agent without criteria to choose appropriately.

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

  • Behavior2/5

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

    No annotations are present, so the description must disclose behavioral traits. It indicates a read-only listing operation but doesn't mention any side effects, permissions, output format, or interaction with the memory image. The agent gets minimal safety or behavior information.

    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 a single clear sentence, front-loaded with the action. It's concise and free of fluff, though it could include more useful information without sacrificing brevity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With no annotations, no output schema, and a terse description, the tool lacks context about expected outputs, use cases, and how the pid filter works. While the core function is clear, the overall context is insufficient for confident tool selection.

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

    Parameters3/5

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

    Schema description coverage is 100%, and the schema already explains both parameters. The description adds no additional parameter context, so it meets the baseline but doesn't enhance meaning.

    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 uses a specific verb ('list') and resource ('files that can be extracted from memory cache'), clearly conveying the tool's function. It doesn't explicitly differentiate from sibling tools like memory_list_sessions or memory_list_plugins, but the resource is distinct enough.

    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 such as memory_dump_process or memory_list_plugins. The description only states what it does, not the context or preconditions for use.

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

  • Behavior3/5

    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 add useful context about the tool's implementation: 'Uses Rust malfind (fast), falls back to Vol3 malfind + YARA.' This reveals the dual-method approach and fallback behavior. However, it does not disclose whether the operation is read-only, what output to expect, or any side effects, leaving gaps in transparency.

    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, consisting of two short sentences. It front-loads the primary purpose ('Scan for code injection') and immediately adds technical detail about the fallback mechanism. Every word contributes meaning, with no filler or redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool has 4 parameters, no annotations, and no output schema, the description is too minimal to be complete. It does not explain return values, potential side effects, or the meaning of key parameters like dump_payloads. The description fails to provide enough context for an agent to fully understand the tool's behavior and limitations.

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

    Parameters2/5

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

    Schema description coverage is 50%, so the description must compensate for undocumented parameters. However, it mentions no parameters directly. The description's reference to Rust malfind and YARA hints at the yara_scan parameter but does not clarify the meanings of yara_scan or dump_payloads. The schema already describes image_path and pid, so the description adds no additional semantic value.

    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 the tool's purpose: 'Scan for code injection.' The verb 'scan' and specific target 'code injection' make the function distinct from vague generic names. However, it does not explicitly distinguish itself from sibling tools like memory_hunt_process_anomalies, which might also detect injected code, so it loses a point.

    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?

    The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or scenarios where this tool is preferred. The context is limited to the tool's own functionality without comparative guidance.

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

  • Behavior3/5

    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 an extra behavior of highlighting suspicious processes, which is useful. However, it doesn't explain the criteria for suspicion, the output structure, or the effect of the root_pid parameter. It is minimally adequate but lacks depth.

    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 two concise sentences, front-loaded with the core purpose. No fluff, repetition, or unnecessary technical jargon.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    There is no output schema, and the description does not explain the returned tree structure or format. It also fails to position the tool within the broader memory analysis workflow, which is relevant given the many sibling tools.

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

    Parameters2/5

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

    The description adds little beyond the schema. It hints at the highlight_suspicious parameter but doesn't explain root_pid or image_path. With only 67% schema description coverage, the description should compensate more but does not.

    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 the tool's function with a specific verb ('Get') and resource ('process tree'), elaborating on parent-child relationships. It also mentions the highlighting of suspicious processes, which distinguishes it from simple listing tools. However, it doesn't explicitly compare to memory_hunt_process_anomalies, which may also deal with suspicious processes.

    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?

    The description provides no guidance on when to use this tool over its siblings. There is no mention of alternatives, prerequisites, or use cases. The agent must infer that it's for viewing process hierarchy from a memory dump, but no explicit conditional usage is given.

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

  • Behavior2/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 of behavioral disclosure. It merely says 'Examine' without stating whether it is read-only, what the return format is, potential side effects, or prerequisites. This is insufficient for a forensics tool.

    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 a single sentence that is front-loaded with the core action, and every word earns its place. It is concise without being overly sparse, though it could be expanded with behavioral details without harming clarity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a 3-parameter tool with no output schema and no annotations, this description is too minimal. It lacks details on output, workflow context, and how it differs from sibling memory-analysis tools. The 'useful for injected code regions' hint is not enough to guide an agent effectively.

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

    Parameters3/5

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

    Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds contextual meaning by interpreting VAD as 'memory region' and linking it to injected code, but it does not clarify parameter formatting or relationships beyond what the schema already provides.

    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 uses a specific verb 'Examine' with a clear resource 'specific VAD (memory region)', which distinguishes it from sibling tools like memory_dump_process and memory_find_injected_code. However, 'examine' could imply a broader set of actions than just reading memory, leaving some ambiguity about the exact operation.

    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 phrase 'Useful for injected code regions' implies a use case but provides no explicit when-to-use or when-not-to-use guidance. It does not mention alternative tools like memory_find_injected_code or memory_dump_process, so the agent must infer tool selection from minimal context.

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

  • Behavior2/5

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

    With no annotations provided, the description must carry the full burden of behavioral disclosure. It mentions the use of Rust pslist+psscan and a Python analyzer, but it does not disclose whether the operation is read-only, what side effects may occur, what permissions are required, or what the output contains. This is insufficient for a tool that analyzes potentially sensitive memory dumps.

    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 concise, consisting of two sentences. The first sentence states the purpose, while the second adds implementation detail. Both sentences are relevant, though the second is somewhat optional. It is appropriately sized without unnecessary fluff.

    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?

    For a tool with no output schema, the description gives a clear high-level functionality, but it lacks details about the return format, how anomalies are presented, or any caveats about memory dump compatibility. Given the complexity of memory analysis and the large sibling set, more context on expected outputs or limitations would be helpful.

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

    Parameters3/5

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

    The schema provides 100% coverage for both parameters, so the baseline is 3. The description adds no additional parameter-specific meaning beyond what the schema already states; it does not explain how 'include_normal' affects results or how the image_path should be formatted.

    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 the tool's purpose: detecting hidden processes, unusual parent-child relationships, and suspicious process attributes. It uses a specific verb ('Detect') and identifies the resource ('process anomalies'). However, it does not explicitly distinguish itself from sibling tools like memory_get_process_tree or memory_find_injected_code, though the focus on 'hidden processes' and 'suspicious attributes' differentiates it to some extent.

    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 implies usage for process anomaly detection, but it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or scenarios where other tools would be more appropriate. No guidance on prerequisites (e.g., memory dump format) is provided.

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

  • Behavior2/5

    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 states what the tool lists, but does not describe that it reads the memory dump, whether it may be slow, or what constitutes 'available' plugins. This leaves significant behavioral aspects undefined.

    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 a single, concise sentence that conveys the core purpose without any filler. The 'Rust + Vol3' detail adds value and does not bloat the text.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description is too terse for an agent to fully understand the tool's context. It does not disclose the return format, which is critical since no output schema exists, nor does it explain what 'available' means in relation to the image_path. Sibling tools exist that could confuse selection, and the description offers no differentiation.

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

    Parameters3/5

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

    The input schema has 100% description coverage for the single parameter image_path ('Path to memory dump file'). The description adds no additional semantics beyond the schema, so the baseline of 3 applies.

    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 uses a specific verb ('List') and resource ('available plugins'), clearly stating the tool's function. The parenthetical '(Rust + Vol3)' adds specificity about plugin types, and the action of listing is distinct from running plugins (as seen in the sibling name memory_run_plugin).

    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. It does not mention that this should be used for enumeration before running plugins, nor does it contrast with sibling tools like memory_run_plugin or memory_get_status.

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

  • Behavior2/5

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

    With no annotations provided, the description must carry the burden of disclosing behavior, but it only lists artifact types. It does not state whether the operation is read-only, whether any prerequisites (e.g., Volatility installation) are needed, or what side effects or limitations exist.

    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 a single, well-structured sentence that front-loads the action and artifact types. There is no redundant information or filler; every word contributes to understanding what the tool does.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a memory analysis tool with no annotations and no output schema, this description is too sparse. It leaves out how results are returned, what to do with the extracted data, and the purpose of include_machine_accounts, making it incomplete for an agent attempting a correct invocation without further assumptions.

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

    Parameters2/5

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

    Schema coverage is only 50% (only image_path is described). The tool description adds no parameter meaning: it never mentions image_path or include_machine_accounts, so the boolean parameter remains ambiguous beyond its name. The description fails to compensate for the schema's incomplete parameter documentation.

    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 specific verb 'Extract' and the resource 'credential artifacts via Vol3', enumerating subcategories (NTLM hashes, LSA secrets, cached domain credentials). This gives a precise, distinctive purpose that sets it apart from sibling tools like memory_full_triage or memory_run_plugin.

    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 implied usage is obvious: use this tool when you need to extract credential artifacts from a memory dump. However, there is no explicit comparison to alternative tools, no mention of when not to use it, and no prerequisites or context that would guide selection among the many memory_* siblings.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. It mentions using 'Rust cmdscan' and Vol3, but doesn't clarify output format, filtering behavior (e.g., include_benign default), or any side effects. The phrase 'attacker commands' suggests filtering, but the parameter behavior is not transparent.

    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?

    Two concise sentences front-load the purpose and add implementation context without redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Without annotations or an output schema, the description lacks critical context about output structure, filtering, and usage boundaries. It is too brief to fully guide an agent, especially with three parameters and no example usage.

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

    Parameters3/5

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

    The schema covers pid and image_path, but not include_benign. The description's focus on 'attacker commands' implies the default filtering, adding some semantic meaning. Yet it doesn't explicitly explain the parameters or the include_benign toggle.

    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's function: recovering attacker commands from cmd.exe history and process command lines. This distinct purpose differentiates it from sibling tools like memory_find_c2_connections or memory_extract_credentials.

    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 implies the tool is for extracting command history from memory dumps, providing clear context for when to use it. However, it doesn't explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

  • Behavior3/5

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

    With no annotations, the description carries the burden of explaining tool behavior. It discloses the use of Rust and Python engines and the production of an executive summary, but omits details about side effects, prerequisites, or performance implications. It provides a reasonable overview but lacks depth.

    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 two sentences, front-loaded with the main action, and every sentence contributes meaning. There is no filler or redundancy, 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.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity, the description adequately covers its purpose and outputs. Without an output schema, it effectively communicates the executive summary contents. It could mention the impact of quick_scan on results, but that detail is present in the parameter schema.

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

    Parameters3/5

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

    Schema coverage is 100%—both parameters (image_path and quick_scan) are described in the schema. The description itself adds no parameter-specific value, but the schema fully compensates, so the baseline score of 3 applies.

    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's verb ('Run complete automated triage') and resource ('memory dump'), establishing a clear purpose. It differentiates from siblings by emphasizing the comprehensive, automated triage scope and specifying outputs (executive summary, risk level, findings, IOCs).

    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 implies use for full triage but provides no explicit guidance on when to choose this tool over more specialized siblings like memory_analyze_image or memory_extract_credentials. It does not mention alternatives or exclusions, leaving the usage context somewhat ambiguous.

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

  • Behavior4/5

    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 reveals a significant behavioral trait: trying the Rust engine first with fast ISF auto-detection and falling back to Vol3. It also discloses the output (session ID), which is crucial for chaining operations. However, it does not mention side effects or failure modes, but the disclosed behaviors add substantial value.

    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 two sentences with the core purpose front-loaded. Every clause earns its place: the engine fallback behavior and session ID return are both essential for understanding how to use the tool. There is no redundancy or filler.

    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?

    The tool is an initializer with a simple interface, and the description covers the essential workflow: initialize, receive a session ID, and use it for subsequent operations. It does not detail the return format, but the concept of a session ID is conveyed and no output schema exists. The description is complete enough for its scope.

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

    Parameters3/5

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

    The schema already provides complete descriptions for all three parameters, including valid file extensions and override purposes. The description adds no extra parameter-specific semantics, relying on the schema's high coverage. A baseline score of 3 is appropriate.

    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's purpose with a specific verb ('Initialize') and resource ('memory image analysis'). It also distinguishes itself from sibling tools by noting it returns a session ID for subsequent operations, making it the entry point in the memory analysis workflow.

    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 implies when to use this tool: before other memory analysis operations, as it provides a session ID for subsequent steps. It does not explicitly name alternative tools or state exclusions, but the context is clear enough for an agent to infer it is the first step.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the burden of disclosing behavior. 'List all' implies a read-only operation with no destructive side effects, but it does not explicitly state whether the operation is safe or if any system state changes. It also does not mention potential performance implications or pagination; the description is minimal but not misleading.

    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?

    Two short sentences convey the full purpose and output fields without any redundancy or filler. The information is front-loaded with the primary action and resource.

    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 the simplicity of the tool (no parameters, no output schema), the description sufficiently covers what the tool returns. It names the key data present in a session. It could briefly explain what an 'active session' means, but this is a minor gap for such a simple 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?

    The tool takes zero parameters, and the description correctly states 'all' sessions, implying no filtering is needed. Since the schema is empty, there is nothing to explain, so the description adds appropriate clarity relative to the 0-parameter design.

    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 uses a specific verb and resource: 'List all active memory analysis sessions' and further specifies the output fields (session IDs, image paths, engine status). This clearly distinguishes it from sibling analysis tools like memory_analyze_image or memory_full_triage, which perform different actions.

    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 phrase 'List all active' establishes a clear use case: retrieving an overview of current sessions. It does not explicitly exclude alternatives, but the context of being a listing tool among more analytical siblings implies when it is appropriate. No exclusions are stated.

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

  • 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 clearly indicates a non-mutating status operation by using 'Get' and 'Shows', which implies no side effects. While not explicitly stating 'read-only', the behavior is inherently transparent for a status tool.

    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 two short sentences with the main purpose front-loaded in the first sentence. Every word adds value, and there is no redundancy or filler.

    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?

    For a simple zero-parameter status tool with no output schema, the description adequately communicates the tool's function and expected output content. It could mention the return format or whether it supports any flags, but given the low complexity, the description is sufficiently complete.

    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?

    The tool has zero parameters and the schema coverage is 100% (empty schema). According to the rubric, a baseline of 4 is appropriate when no parameters exist, and the description does not need to compensate for parameter documentation.

    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's purpose: 'Get status and capabilities' with a specific verb and resource. It further details what it shows (available engines and analyses), distinguishing it from sibling analysis tools that perform actual memory forensics.

    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 implies usage as a precursor to selecting analysis tools, since it shows which engines and analyses are available. However, it does not explicitly state when not to use it or name alternative tools, but the context is clear enough for a status/capability check.

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

  • Behavior4/5

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

    With no annotations, the description reveals important behavioral traits: tiered plugin performance (Rust vs Vol3), automatic name resolution and fallback failures, server-side filtering to avoid truncation, and the exact parameter structure for 'search'. It doesn't mention output format, but for a plugin runner that varies and is not strictly required.

    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?

    Three sentences: the first states purpose, the second explains plugin naming conventions, and the third gives usage tips. Each sentence provides essential operational detail with no filler, and key information is front-loaded.

    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 the tool's complexity (5 parameters, nested 'params', no output schema, no annotations), the description covers critical aspects: plugin tiers, name resolution fallback, filter usage, and search parameters. It omits mention of 'pid', but that is a simple filter and self-explanatory in the schema. The lack of return-value description is mitigated by the variability across plugins.

    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 coverage is 100%, giving baseline 3. The description adds meaning by explaining how to use 'filter' (case-insensitive, server-side, avoids truncation) and detailing the JSON structure for 'params' when using search plugins, which goes beyond the schema's generic 'Additional plugin parameters'.

    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 starts with a clear action: 'Run a forensics plugin,' identifying the specific resource (memory image) and the tool's role as a generic plugin executor. It distinguishes from sibling tools by listing plugin categories and examples, making its purpose unambiguous.

    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?

    Provides concrete guidance on when to use short names vs. full Vol3 paths, and instructs use of the 'filter' and 'params' parameters for specific scenarios like large result sets or search plugins. However, it doesn't explicitly compare to sibling specialized tools like 'memory_full_triage' or 'memory_hunt_process_anomalies', so exclusion guidance is implicit.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mem_forensics-mcp MCP server

Copy to your README.md:

Score Badge

mem_forensics-mcp MCP server

Copy to your README.md:

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/x746b/mem_forensics-mcp'

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