Skip to main content
Glama
joesecurity

JoeSandboxMCP

Official
by joesecurity

Joe Sandbox MCP Server

A Model Context Protocol (MCP) server for interacting with Joe Sandbox Cloud.
This server exposes rich analysis and IOC extraction capabilities from Joe Sandbox and integrates cleanly into any MCP-compatible application (e.g. Claude Desktop, Glama, or custom LLM agents).

Features

  • Flexible Submission: Submit local files, remote URLs, websites, or command lines for dynamic analysis.

  • IOC Extraction: Retrieve indicators of compromise for dropped files, IPs, domains, and URLs.

  • Signature Detections: Retrieve and extract actionable evidence from sandbox signatures.

  • Process Trees: Visualize full execution hierarchies, including command lines and parent-child relationships.

  • Unpacked PE Files: Download in-memory unpacked binaries extracted during execution, often revealing runtime payloads.

  • PCAP Downloads: Retrieve the full network traffic capture (PCAP) recorded during analysis for offline inspection.

  • LLM-Suitable Responses: All results are structured for clear consumption by language models, with truncation and relevant filtering.

Related MCP server: didlogic_mcp

Quick Start

Installation via uv (Recommended)

  1. Clone the repository:

    git clone https://github.com/joesecurity/joesandboxMCP.git
    cd joesandboxMCP
  2. Install dependencies using uv:

    uv venv
    uv pip install -e .
  3. Launch the MCP server (see configuration below)


Example Configuration

{
  "mcpServers": {
    "JoeSandbox": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/joesandboxMCP",
        "run",
        "main.py"
      ],
      "env": {
        "JBXAPIKEY": "your-jbxcloud-apikey",
        "ACCEPTTAC": "SET_TRUE_IF_YOU_ACCEPT"
      }
    }
  }
}

Use of this integration with Joe Sandbox Cloud requires acceptance of the Joe Security Terms and Conditions.

By setting the environment variable ACCEPTTAC=TRUE, you explicitly confirm that you have read and accepted the Terms and Conditions.


Available Tools

The Joe Sandbox MCP server provides a wide range of tools to help you interact with sandbox reports, monitor executions, and extract threat intelligence in a format that's easy for large language models to understand.

1. Submit Analysis

Submit files, URLs, websites, or command lines for sandbox analysis.
You can choose whether to wait for results or return immediately and check back later.
Supports various options like internet access, script logging, and archive passwords.

2. Search Past Analyses

Look up historical submissions using hashes, filenames, detection status, threat names, and more.
Quickly find whether something has already been analyzed.

3. Check Submission Status

Get the current status and key metadata for a previously submitted sample.
Includes detection verdict, systems used, and analysis score.

4. AI Summaries

Retrieve high-level reasoning statements generated by the sandbox's AI.
Helpful for understanding complex behavior in plain language.

5. Malicious Dropped Files

See which files were dropped during execution and marked as malicious.
Includes hash values, filenames, origin processes, and detection indicators.

6–8. Network Indicators

Show domains, IP addresses, or URLs contacted during analysis.
Can be filtered to focus only on clearly malicious items or high-confidence detections.
Includes details like IP resolution, geographic hints, communication context, and detection evidence.

9. Behavioral Detections (Signatures)

Get a summary of key behavioral detections triggered during execution.
Can be filtered to focus only on high impact items.

10. Process Tree

Visualize the full hierarchy of processes that ran during execution.
Shows parent-child relationships, command lines, and termination info.

11. Unpacked Binaries

Retrieve executable files that were unpacked or decrypted in memory.
Great for identifying payloads not visible in the original file.

12. Network Traffic (PCAP)

Download the full network packet capture recorded during analysis.
Useful for traffic inspection, C2 callbacks, or domain/IP extraction.

13. Recent Activity

List your most recent sandbox submissions and see what systems they ran on, how they scored, and what verdicts were returned.

14. Memory Dumps

Retrieve raw memory dumps captured during runtime.

15. Dropped Files

Retrieve all files dropped during analysis.


License

This project is licensed under the MIT License.

Available Tools

15 tools
get_ai_summariesA
Retrieve the AI summaries for a specific analysis run, either from cache or by downloading it.

Joe Sandbox analyses may run on multiple system configurations (e.g., different Windows/Linux variants).
Each run is indexed in the `runs` array of the analysis metadata. This function retrieves the report
corresponding to a specific run.

Args:
    webid: The submission ID of the analysis (unique identifier).
    run (optional, default = 0): The index of the analysis run to retrieve the report for.
                                 Use 0 for the first run, 1 for the second, etc.
                                 If not specified, defaults to 0 (the first run).

Returns:
    A dictionary containing AI reasoning summaries with fields:
    - webid: The analysis ID
    - run: The run index
    - reasonings: List of AI reasoning entries
    - count: Number of reasoning entries found

Notes:
    - Reports are cached in memory by key: "{webid}-{run}".
    - Use `run` to distinguish between different environments used during analysis.
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and effectively discloses key behavioral traits: it explains caching behavior ('Reports are cached in memory'), clarifies the purpose of the run parameter for distinguishing environments, and describes the return structure. It does not cover aspects like error handling or rate limits, but provides substantial operational context.

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 well-structured with clear sections (purpose, args, returns, notes), front-loading the core purpose. It is appropriately sized, though the notes section could be slightly more concise, but every sentence adds valuable information without waste.

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 complexity (2 parameters, no annotations, no output schema), the description is largely complete: it covers purpose, parameters, return values, and behavioral notes. It could improve by mentioning error cases or authentication needs, but it provides sufficient context for effective tool use.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must compensate, and it does so comprehensively. It explains both parameters: webid as 'The submission ID of the analysis (unique identifier)' and run as 'The index of the analysis run to retrieve the report for', including default values and usage examples, adding full meaning beyond the bare schema.

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 action ('Retrieve the AI summaries for a specific analysis run') and resource ('analysis run'), distinguishing it from siblings like get_analysis_info or get_list_of_recent_analyses by focusing on AI summaries rather than general analysis data.

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 provides clear context for when to use this tool ('for a specific analysis run'), including optional parameter usage and default behavior. However, it does not explicitly state when not to use it or name alternatives among siblings, such as get_analysis_info for broader metadata.

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

get_analysis_infoA
Retrieve metadata and status for a previously submitted analysis by its submission ID.

Use this tool to check whether an analysis is finished, whether the sample was classified as malicious,
and to retrieve contextual metadata such as score, system, and tags.

Args:
    webid (required): The submission ID (also called webid) returned when the sample was uploaded.

Returns:
    If successful, returns a dictionary with fields such as:

    - status (e.g. "finished", "in progress"): Global analysis state.
    - detection (e.g. "malicious", "clean"): Overall result summary.
    - score (integer, e.g. 0-100): The final aggregated threat score.
    - filename: The original filename or download URL of the submitted sample.
    - tags: A list of classification or behavioral tags.
    - scriptname: The Joe Sandbox script used to run the analysis.
    - has_malwareconfig: True if malware configuration extraction succeeded.
    - md5, sha1, sha256: Hashes of the submitted sample.
    - time: The ISO8601 timestamp when the analysis was submitted.
    - duration: Total time (in seconds) the analysis took.
    - classification: Internal or customer-specific label (if set).
    - comments: Analyst comments or notes.
    - encrypted: Whether the submitted file was password-protected.
    - threatname: Identified malware families or on behavioral or signature matches.

    - runs: A list of dictionaries describing individual analysis runs on different systems.
        Each run contains:
        - system: The sandbox environment used (e.g., "w7x64l", "w10x64", "lnxubuntu20").
        - score: Detection score for that system.
        - detection: Result for that specific system (e.g., "malicious", "clean").
        - yara, sigma, suricata: Boolean flags indicating whether detection engines matched.
        - error: Any error that occurred during that specific run.

    Notes:
        - The `runs` array is useful when the same sample is executed on multiple OS environments.
        - The top-level `score` and `detection` reflect the most severe result across all runs.

    If the submission ID is invalid or expired, returns an error object with a reason.
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes

TDQS

A4.5/5.0
Behavior4/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 effectively describes key behaviors: it's a read-only retrieval operation (implied by 'Retrieve'), handles invalid/expired IDs with error returns, and explains the structure and utility of the 'runs' array. It lacks details on rate limits or authentication needs, but covers the core operational behavior well.

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 well-structured with a clear purpose statement, usage guidance, parameter explanation, and detailed return value documentation. It is appropriately sized for the tool's complexity, though the extensive list of return fields could be slightly condensed without losing clarity. Every sentence adds value.

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

Completeness5/5

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

Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is highly complete. It covers purpose, usage, parameter meaning, return structure with examples, and edge cases (invalid IDs). For a retrieval tool, this provides all necessary context for an agent to use it correctly.

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

Parameters5/5

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

The input schema has 0% description coverage, so the description must fully compensate. It clearly explains the single parameter 'webid' as 'The submission ID (also called webid) returned when the sample was uploaded,' adding essential context beyond the schema's basic type definition. This is comprehensive for the one parameter.

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 action ('Retrieve metadata and status') and resource ('previously submitted analysis by its submission ID'), distinguishing it from siblings like 'submit_analysis_job' (which creates analyses) and 'get_list_of_recent_analyses' (which lists multiple analyses). The purpose is precise and 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?

The description explicitly states when to use this tool ('Use this tool to check whether an analysis is finished...'), providing clear context for its application. However, it does not mention when not to use it or name specific alternatives among the sibling tools (e.g., 'search_analysis' might overlap in some scenarios), which prevents a perfect score.

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

get_domain_infoA
Retrieve domains in a completed analysis, along with their associated detection indicators.

This tool extracts domains gathered by the sandbox engine and returns relevant context such as resolved IP address, activity status, and detection metadata.
Optional filtering parameters allow control over the inclusion of domains and indicators based on their assessed severity.

Args:
    webid (required): The submission ID of the analysis.
    run (default: 0): Index of the sandbox run to inspect (from the `runs` array in analysis info).
    only_malicious_elements (default: True): If True, returns only domains explicitly classified as malicious by the sandbox engine.
    only_malicious_indicators (default: True): If True, limits the returned indicators to those considered clearly malicious by the detection logic.
        This excludes low-impact behavioral signals and focuses on indicators with a high likelihood of malicious intent or confirmed threat classification.
        If False, all observed indicators are included regardless of their severity.

Returns:
    A dictionary containing a list of malicious domains. Each entry includes:
      - name: The domain name.
      - ip: The resolved IP address, if available.
      - active: Whether the domain was reachable during analysis.
      - malicious: 'true' for domains classified as malicious
      - indicators: List of triggered detection rules, if any. Each entry includes:
          - desc: Description of the matched detection rule.
          - data: Matched content or signature.
          - source: The detection subsystem responsible (e.g. Suricata, Sigma, global traffic etc.).
            - impact: Either "high" or "low", indicating the severity or confidence of the detection.  
                High-impact indicators are strongly associated with malicious behavior or confirmed threats.  
                Low-impact indicators reflect general behavior or environmental traits that may not be malicious on their own.
Notes:
    - Empty Array returned if no domain was gathered during the analysis
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
only_malicious_elementsNo
only_malicious_indicatorsNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by disclosing key behaviors: it extracts domains gathered by the sandbox engine, returns empty arrays when no domains were gathered, explains the filtering logic for malicious elements and indicators, and describes the return structure. However, it doesn't mention rate limits, authentication requirements, or potential errors.

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?

Well-structured with clear sections (description, args, returns, notes) but somewhat verbose in the parameter explanations. The 'Returns' section could be more concise, and some sentences repeat information. Overall efficient but with minor redundancy.

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

Completeness5/5

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

Given the complexity (4 parameters, no annotations, no output schema), the description provides excellent completeness: explains purpose, parameters, return structure with nested objects, filtering behavior, edge cases (empty arrays), and includes helpful notes about detection subsystems and impact levels. Covers all essential aspects for a domain retrieval tool.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing detailed semantics for all 4 parameters: explains webid as submission ID, run as sandbox run index, and gives comprehensive explanations of the two boolean filters including their default values and the practical implications of True/False settings.

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 retrieves domains from a completed analysis with their detection indicators. It specifies the resource (domains in analysis), the verb (retrieve/extract), and distinguishes from siblings by focusing specifically on domain information rather than files, IPs, URLs, or other analysis components.

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 context (completed analysis with sandbox engine data) but doesn't explicitly state when to use this tool versus alternatives like get_ip_info or get_url_info. It mentions filtering capabilities but doesn't provide guidance on tool selection among the sibling analysis tools.

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

get_dropped_filesA
Download all dropped files from a Joe Sandbox analysis.

This tool retrieves the 'dropped' archive from the specified analysis run and extracts
all contents into a local directory for further inspection.

Files are extracted as-is without renaming or classification.

Output path logic:
- If `save_path` is valid, dumps go to `{save_path}/droppedfiles/{webid}`
- If not, fallback is `droppedfiles/{webid}` under the current directory

Args:
    webid (str): Joe Sandbox analysis ID
    run (int, optional): Run index (default: 0)
    save_path (str, optional): Optional base path to save dumps

Returns:
    dict: {
        "output_directory": absolute path to extraction folder,
        "files": list of files with full path
        "note": status message (e.g. fallback notice)
    }
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
save_pathNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behaviors: it downloads and extracts files 'as-is without renaming or classification', details output path logic with fallback rules, and describes the return structure. It doesn't mention permissions, rate limits, or error handling, but covers core operational traits adequately.

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 front-loaded with the core purpose, followed by behavioral details, output logic, and parameter/return explanations in a logical flow. Every sentence adds value—no fluff or repetition—making it efficiently structured and easy to parse.

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 tool with 3 parameters, no annotations, and no output schema, the description is largely complete: it covers purpose, behavior, parameter meanings, and return format. It lacks details on error cases or authentication needs, but given the context, it provides sufficient guidance for effective use.

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 description coverage is 0%, so the description must compensate. It adds meaningful context for all three parameters: webid as 'Joe Sandbox analysis ID', run as 'Run index (default: 0)', and save_path as 'Optional base path to save dumps'. This clarifies purpose beyond schema titles, though it could detail format constraints (e.g., webid structure).

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 action ('download all dropped files'), the resource ('from a Joe Sandbox analysis'), and distinguishes it from siblings like get_dropped_info (which likely provides metadata) and get_unpacked_files (which handles different file types). The verb+resource combination is precise and 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?

The description implies usage context by specifying 'for further inspection' and distinguishes from metadata tools like get_dropped_info through its focus on file extraction. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings, missing full explicit guidance.

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

get_dropped_infoA
Retrieve metadata for files dropped in a completed analysis, along with their associated detection indicators.

This tool returns information about dropped files for a specific sandbox run of an analysis.
Each result includes relevant metadata and detection indicators where available.

Args:
    webid (required): The submission ID of the analysis.
    run (optional, default = 0): The index of the analysis run to inspect.
                                 Use 0 for the first run, 1 for the second, etc.
    only_malicious_elements (default: True): If True, returns only dropped files explicitly classified as malicious by the sandbox engine.
    only_malicious_indicators (default: True): If True, limits the returned indicators to those considered clearly malicious by the detection logic.
        This excludes low-impact behavioral signals and focuses on indicators with a high likelihood of malicious intent or confirmed threat classification.
        If False, all observed indicators are included regardless of their severity.

Returns:
    A dictionary with:
      - webid: The analysis ID.
      - malicious_dropped_files: A list of dropped files marked as malicious, each with:
          - filename
          - sha256
          - size
          - type
          - process (originating process)
          - dump_name (sandbox-internal reference)
          - category (e.g., "dropped", "modified")
          - indicators: List of triggered detection rules, if any. Each entry includes:
              - desc: Description of the matched detection rule.
              - data: Matched content or signature.
              - source: The detection subsystem responsible (e.g. Suricata, Sigma, global traffic etc.).
                  - impact: Either "high" or "low", indicating the severity or confidence of the detection.  
                      High-impact indicators are strongly associated with malicious behavior or confirmed threats.  
                      Low-impact indicators reflect general behavior or environmental traits that may not be malicious on their own.
      - count: Total number of malicious dropped files found
Notes:
    - Empty Array returned if no dropped file was gathered during the analysis
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
only_malicious_elementsNo
only_malicious_indicatorsNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it specifies the return format in detail (dictionary structure), notes that empty arrays are returned if no dropped files were gathered, explains the filtering logic for malicious elements and indicators, and describes the impact levels of indicators. However, it doesn't mention potential errors, rate limits, or authentication requirements.

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 well-structured with clear sections (Args, Returns, Notes) and front-loaded purpose statement. While comprehensive, some sentences could be more concise (e.g., the repeated explanations of 'malicious' filtering). Overall, most content earns its place by adding necessary context beyond structured fields.

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

Completeness5/5

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

For a tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description provides exceptional completeness: it fully documents all parameters, explains the return structure in detail, includes important notes about empty returns, and gives operational context. No significant gaps remain given the complexity level.

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

Parameters5/5

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

Given 0% schema description coverage, the description fully compensates by providing comprehensive parameter semantics: it explains all 4 parameters (webid, run, only_malicious_elements, only_malicious_indicators) with clear definitions, default values, and operational implications. The detailed explanations of the boolean parameters' effects on filtering are particularly valuable beyond basic schema information.

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 specific verbs ('Retrieve metadata for files dropped in a completed analysis') and distinguishes it from sibling tools like 'get_dropped_files' by specifying it returns metadata and detection indicators rather than the files themselves. It explicitly mentions the resource ('dropped files') and context ('for a specific sandbox run of an analysis').

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 context by specifying it's for 'a completed analysis' and 'a specific sandbox run,' but doesn't explicitly state when to use this tool versus alternatives like 'get_dropped_files' or 'get_analysis_info.' It provides some operational guidance (e.g., 'Use 0 for the first run') but lacks explicit comparisons or exclusions for sibling tools.

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

get_ip_infoA
Retrieve IP addresses in a completed analysis, along with their associated detection indicators.

This tool extracts IP addresses gathered by the sandbox engine and returns relevant context such as geolocation, status, and detection metadata.
Optional filtering parameters allow control over the inclusion of IP addresses and indicators based on their assessed severity.

Args:
    webid (required): The submission ID of the analysis.
    run (default: 0): Index of the sandbox run to inspect (from the `runs` array in analysis info).
    only_malicious_elements (default: True): If True, returns only IP addresses explicitly classified as malicious by the sandbox engine.
    only_malicious_indicators (default: True): If True, limits the returned indicators to those considered clearly malicious by the detection logic.
        This excludes low-impact behavioral signals and focuses on indicators with a high likelihood of malicious intent or confirmed threat classification.
        If False, all observed indicators are included regardless of their severity.

Returns:
    A dictionary containing a list of malicious IP addresses. Each entry includes:
      - ip: The IP address in question.
      - country: Country code associated with the IP.
      - pingable: Whether the IP responded during analysis.
      - domain: Resolved domain name (if available).
      - malicious: 'true' for IP addresses classified as malicious
      - indicators: List of triggered detection rules, if any. Each entry includes:
          - desc: Description of the matched detection rule.
          - data: Matched content or signature.
          - source: The detection subsystem responsible (e.g. Suricata, Sigma, global traffic etc.).
            - impact: Either "high" or "low", indicating the severity or confidence of the detection.  
                High-impact indicators are strongly associated with malicious behavior or confirmed threats.  
                Low-impact indicators reflect general behavior or environmental traits that may not be malicious on their own.
Notes:
    - Empty Array returned if no ip was gathered during the analysis
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
only_malicious_elementsNo
only_malicious_indicatorsNo

TDQS

A4.5/5.0
Behavior4/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 effectively describes key behaviors: it's a read-only retrieval tool (implied by 'Retrieve', 'extracts'), mentions that it returns data from a 'completed analysis', specifies that an empty array is returned if no IPs were gathered, and details the structure and semantics of the return data including severity classifications. However, it lacks information on error conditions, rate limits, or authentication requirements.

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 well-structured with clear sections (purpose, args, returns, notes) and front-loaded key information. While comprehensive, some sentences could be more concise (e.g., the explanation of 'only_malicious_indicators' uses multiple sentences where one might suffice). Overall, it efficiently conveys necessary information without significant waste.

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

Completeness5/5

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

Given the tool's moderate complexity (4 parameters, no annotations, no output schema), the description provides excellent completeness. It covers the purpose, all parameter semantics, detailed return structure with nested object explanations, and important behavioral notes. The description fully compensates for the lack of structured metadata, making the tool's functionality clear to an AI agent.

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

Parameters5/5

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

With 0% schema description coverage (titles only provide parameter names), the description fully compensates by providing detailed semantic explanations for all four parameters. It clearly explains the purpose of 'webid' as the submission ID, 'run' as the sandbox run index, and provides nuanced explanations for the two boolean filters including their default behaviors and the implications of setting them to True or False.

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 action ('Retrieve', 'extracts') and resource ('IP addresses in a completed analysis', 'IP addresses gathered by the sandbox engine'), distinguishing it from sibling tools like get_domain_info or get_url_info by focusing exclusively on IP addresses. It precisely defines what the tool does without being tautological.

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 provides clear context for when to use this tool: for retrieving IP addresses from a completed sandbox analysis. It mentions optional filtering parameters for controlling output based on severity, but does not explicitly state when to use this tool versus alternatives like get_analysis_info or search_analysis, nor does it provide exclusion criteria or prerequisites.

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

get_list_of_recent_analysesA
List recent analyses submitted by the user.

This tool returns a summary of the most recent sandbox analyses performed in the current account. Each entry includes the submission ID and a minimal set of metadata useful for follow-up actions such as downloading artifacts or examining behavior.

By default, the tool returns the latest 20 analyses. You can override the `limit` parameter to retrieve more or fewer entries.

For each analysis, the following fields are returned:
    - webid: Unique submission identifier.
    - time: Timestamp of when the analysis was submitted.
    - filename: Original submitted filename or URL.
    - sha256: SHA-256 hash of the submitted object.
    - score: Final detection score assigned by the sandbox.
    - detection: Verdict (e.g., clean, suspicious, malicious).
    - classification: Malware family or type (if available).
    - threatname: Named threat label (e.g., campaign or actor), if detected.
    - systems: List of sandbox systems the sample was run on.
    - num_runs: Total number of sandbox executions (runs) for this submission.

Args:
    limit (optional, default = 20): The number of most recent analyses to return.

Returns:
    A list of dictionaries summarizing each recent analysis.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well: it discloses the default behavior (returns latest 20 analyses), return format (list of dictionaries with specific fields), and purpose (summary for follow-up actions). It doesn't mention rate limits, authentication needs, or pagination behavior, leaving some gaps.

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?

Well-structured and appropriately sized: front-loaded with core purpose, followed by behavioral details, parameter explanation, and return format. Every sentence adds value—no redundancy or fluff. The bulleted list of return fields is efficient for clarity.

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 tool with no annotations, no output schema, and 1 parameter with 0% schema coverage, the description is quite complete: it covers purpose, behavior, parameter semantics, and return structure. However, it lacks details on error handling, authentication, or rate limits, which could be relevant given the sibling tools suggest a security analysis context.

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

Parameters5/5

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

The schema has 0% description coverage (only title 'Limit'), so the description must compensate fully. It clearly explains the 'limit' parameter's purpose ('override to retrieve more or fewer entries'), default value (20), and effect ('number of most recent analyses to return'), adding significant meaning beyond the bare schema.

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 specific verb ('List') and resource ('recent analyses submitted by the user'), distinguishing it from siblings like 'get_analysis_info' (detailed single analysis) or 'search_analysis' (filtered search). It explicitly mentions 'sandbox analyses' and 'current account' context.

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 provides clear context for when to use this tool ('summary of the most recent sandbox analyses') and implies usage for follow-up actions like downloading artifacts. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools, though the distinction is reasonably inferable.

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

get_memory_dumpsA
Download and extract memory dumps from a Joe Sandbox analysis.

This tool retrieves the 'memdumps' archive from the specified analysis run and extracts
all contents into a local directory for further inspection. These files represent raw 
memory snapshots taken during execution.

Files are extracted as-is without renaming or classification.

Output path logic:
- If `save_path` is valid, dumps go to `{save_path}/memdumps/{webid}`
- If not, fallback is `memdumps/{webid}` under the current directory

Args:
    webid (str): Joe Sandbox analysis ID
    run (int, optional): Run index (default: 0)
    save_path (str, optional): Optional base path to save dumps

Returns:
    dict: {
        "output_directory": absolute path to extraction folder,
        "info": "Info string detailing how many memory dumps were downloaded"
        "note": status message (e.g. fallback notice)
    }
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
save_pathNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it describes the extraction process ('extracts all contents into a local directory'), file handling ('extracted as-is without renaming or classification'), and output path logic with fallback behavior. It doesn't mention permissions, rate limits, or error handling, but provides substantial operational context.

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 efficiently structured with purpose first, then behavioral details, output logic, and parameter explanations. Every sentence adds value with zero waste, and it's appropriately sized for a tool with 3 parameters and complex behavior.

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 tool with 3 parameters, no annotations, and no output schema, the description provides substantial context including purpose, behavior, parameter semantics, and return value structure. It lacks details about authentication requirements, error conditions, or rate limits, but covers most operational aspects well given the complexity.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by explaining all 3 parameters: webid ('Joe Sandbox analysis ID'), run ('Run index with default 0'), and save_path ('Optional base path to save dumps'). It adds meaningful context beyond basic types, including default values and optional status.

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 action ('download and extract memory dumps') and resource ('from a Joe Sandbox analysis'), distinguishing it from siblings like get_analysis_info or get_dropped_files which handle different data types. It precisely defines what the tool does with memory snapshots.

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 provides clear context about when to use this tool (for retrieving memory dumps from Joe Sandbox analyses) but doesn't explicitly mention when not to use it or name specific alternatives among the sibling tools. The context is well-defined but lacks explicit exclusion guidance.

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

get_pcap_fileA
Retrieve the network traffic capture (PCAP) file from a sandbox analysis.

This tool downloads the full packet capture generated during execution of the submitted sample. The PCAP file contains all recorded network traffic for the specified sandbox run, including DNS requests, HTTP traffic, and raw TCP/UDP communications.

The PCAP is saved locally with the name `{webid}-{run}.pcap`. If a custom `save_path` is provided, the file is written to that directory. If the path is invalid or inaccessible, the file is saved to a fallback directory named `pcap/`.

Args:
    webid (required): The submission ID of the analysis.
    run (optional, default = 0): Index of the sandbox run to retrieve.
    save_path (optional): Custom directory to save the PCAP file. If invalid, a fallback location is used.

Returns:
    A dictionary containing:
    - output_file: Absolute path to the downloaded PCAP file.
    - note: Message indicating whether the fallback directory was used.
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
save_pathNo

TDQS

A4.5/5.0
Behavior4/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 effectively describes key behaviors: the tool downloads and saves a file locally, specifies the naming convention (`{webid}-{run}.pcap`), explains fallback directory logic if save_path is invalid, and outlines the return structure. It covers mutation (file creation) and error handling, though it doesn't mention permissions, rate limits, or file size considerations.

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 well-structured and front-loaded: the first sentence states the core purpose, followed by elaboration on the PCAP content, file handling details, and clear parameter/return sections. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.

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 moderate complexity (3 parameters, file download operation) and lack of annotations or output schema, the description does an excellent job covering purpose, behavior, parameters, and returns. It explains the local file save process and fallback logic. A slight gap exists in not detailing potential errors (e.g., invalid webid) or performance aspects, but it's largely complete for practical use.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must fully compensate. It provides detailed semantics for all three parameters: webid as the required submission ID, run as the optional sandbox run index with default value, and save_path as the optional custom directory with fallback behavior. This adds substantial meaning beyond the bare schema, clarifying usage and consequences.

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 action ('Retrieve', 'downloads') and resource ('network traffic capture (PCAP) file from a sandbox analysis'), distinguishing it from sibling tools like get_analysis_info or get_memory_dumps which retrieve different analysis artifacts. It explicitly mentions the content of the PCAP file (DNS requests, HTTP traffic, TCP/UDP communications), making the 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?

The description provides clear context for when to use this tool: to retrieve the full packet capture from a sandbox analysis run. It implicitly suggests alternatives by mentioning the PCAP contains specific traffic types, but does not explicitly name when not to use it or which sibling tools might be better for other data (e.g., get_domain_info for domain-specific insights). The guidance is sufficient but lacks explicit exclusions.

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

get_process_infoA
Extract and return the full process tree for a specific analysis run from a Joe Sandbox report.

This tool traverses the execution tree recorded during dynamic analysis and returns a structured
process hierarchy, showing which processes spawned others, with their respective attributes.

Each process node includes:
  - name: Process executable name
  - pid: Process ID
  - cmdline: Full command-line invocation
  - path: File path of the executable
  - has_exited: Boolean flag indicating if the process terminated
  - children: List of child processes (if any), recursively structured
  - targetid: purely internal field, ignore this when replying to the user

The result can be large and deeply nested, depending on the behavior of the sample. To improve
readability, consider representing the tree using indentation or a UNIX-style `tree` layout. If the cmd args are not too long, consider displaying them as well, e.g.:

    parent.exe (1000) - "C:\Program Files\Parent\parent.exe"
    ├── child1.exe (1001) - "C:\Program Files\Parent\child1.exe --option"
    │   └── grandchild1.exe (1002) - "grandchild1.exe /silent"
    └── child2.exe (1003) - "child2.exe --config config.yaml --verbose"
        ├── grandchild2.exe (1004) - "grandchild2.exe"
        └── grandchild3.exe (1005) - "grandchild3.exe --debug --log-level=info"

Args:
    webid (required): Submission ID of the analysis.
    run (default: 0): Index of the sandbox run to inspect (from the `runs` array in analysis info).

Returns:
    Dictionary representing the root-level processes and their child process trees.
    If parsing or report retrieval fails, returns an error dictionary with a reason.
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo

TDQS

A4.7/5.0
Behavior5/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 and does so comprehensively. It describes the tool's behavior (traversing execution trees, returning structured hierarchies), discloses that results can be large and deeply nested, provides formatting suggestions for readability, and explains error handling (returns error dictionary on failure).

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 well-structured with clear sections (purpose, node details, formatting suggestions, args, returns) and appropriately sized. While comprehensive, some formatting examples could be slightly condensed, but every sentence adds value and the information is front-loaded with the core purpose first.

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

Completeness5/5

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

Given the tool's complexity (process tree extraction with hierarchical data), no annotations, and no output schema, the description provides complete context. It explains what the tool does, detailed node structure, parameter meanings, return format, error handling, and even provides formatting recommendations for the complex nested output.

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

Parameters5/5

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

Despite 0% schema description coverage, the description fully compensates by providing detailed parameter semantics. It explains that 'webid' is the submission ID of the analysis and 'run' is the index of the sandbox run to inspect, including that run defaults to 0 and comes from the 'runs' array in analysis info. This adds substantial meaning beyond the bare schema.

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 extracts and returns the full process tree from a Joe Sandbox report, specifying it traverses the execution tree and returns a structured process hierarchy. It distinguishes from siblings by focusing specifically on process tree extraction rather than summaries, analysis info, or other report components.

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 provides clear context about when to use this tool (for extracting process trees from analysis runs) and mentions the result can be large and deeply nested. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools for different data needs.

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

get_signature_infoA
Retrieve high-impact signature detections from a sandbox analysis report.

This tool extracts detection signatures triggered during the specified analysis run. These signatures reflect behavioral or static patterns typically associated with malware, such as code injection, credential theft, or suspicious memory activity as well as general behavioural indicators.
Optional filtering parameters allow control over the inclusion of all signatures or only those with high impact.

Args:
    webid (required): The submission ID of the analysis.
    run (optional, default = 0): Index of the sandbox run to inspect (from the `runs` array in analysis info). Use 0 for the first run.
    only_malicious_indicators (default: True): If True, limits the returned signatures to those considered high impact by the detection logic.

Returns:
    A dictionary containing a list of triggered detection signatures. Each entry includes:
    - desc: Description of the detected malicious behavior or technique.
    - indicators: List of up to three supporting observations. Each indicator includes:
        - desc: Action or operation that triggered the detection (e.g., "Section loaded").
        - context: Process name or source related to the event.
        - evidence: Supporting detail, such as file paths, memory dumps, or rule names.
        - impact: Either "high" or "low", indicating the severity or confidence of the detection.  
            High-impact indicators are strongly associated with malicious behavior or confirmed threats.  
            Low-impact indicators reflect general behavior or environmental traits that may not be malicious on their own.
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
only_malicious_indicatorsNo

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by explaining what the tool returns (a dictionary with specific structure), the nature of the data (malware-related signatures with high/low impact indicators), and the filtering behavior. It doesn't mention rate limits, authentication needs, or error conditions, but provides substantial behavioral context beyond basic functionality.

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 well-structured with clear sections (purpose, args, returns) and front-loaded information. Every sentence earns its place by providing essential context about what the tool does, how to use parameters, and what to expect in return, with no wasted words.

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

Completeness5/5

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

Given the complexity of malware analysis tools and the absence of both annotations and output schema, the description provides complete context. It explains the tool's purpose, parameter usage, return structure with detailed field descriptions, and the significance of high/low impact indicators, making it fully self-contained for an agent.

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

Parameters5/5

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

Despite 0% schema description coverage, the description provides excellent parameter semantics in the 'Args' section, explaining all three parameters with clear purpose, defaults, and usage guidance. It adds significant value beyond the bare schema, fully compensating for the lack of schema descriptions.

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 specific verbs ('retrieve', 'extracts') and resources ('high-impact signature detections', 'sandbox analysis report'). It distinguishes itself from siblings like get_analysis_info or get_process_info by focusing specifically on detection signatures rather than general analysis data or other report components.

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 provides clear context about when to use this tool (to extract detection signatures from analysis reports) and mentions optional filtering parameters. However, it doesn't explicitly state when NOT to use it or name specific alternative tools for different types of analysis data, though the sibling list suggests alternatives like get_analysis_info for general information.

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

get_unpacked_filesA
Retrieve and classify in-memory unpacked binaries from a sandbox analysis.

This tool extracts executable artifacts that were unpacked in memory during the dynamic execution of the submitted sample. These binaries typically reflect runtime-decrypted payloads or memory-resident code generated by the sample or its child processes.

Each extracted file is associated with:
- The process ID (pid) responsible for its memory region.
- A classification that indicates **when** during execution the memory snapshot was taken.

If a custom `save_path` is provided, the files are saved under `{save_path}/{webid}-{run}`. If the path is invalid or inaccessible, a fallback directory under `unpacked_files/{webid}-{run}` is used instead.

Snapshot types:
    - "Snapshot at beginning of execution": Memory captured at process start.
    - "Snapshot taken on unpacking (modifying executable sections or adding new ones)": Captured at runtime after self-modifying code or section manipulation.
    - "Snapshot at the end of execution": Captured near process termination.
    - "Snapshot taken when memory gets freed": Captured when memory regions were released.

Args:
    webid (required): The submission ID of the analysis.
    run (optional, default = 0): Index of the sandbox run to process (typically 0 for the first run).
    save_path (optional): Optional base directory to store the unpacked files. If not valid, a default directory is used.

Returns:
    A dictionary containing:
    - output_directory: Absolute path where the files were saved.
    - files: A list of unpacked file entries, each with:
        - unpacked_file: Absolute path to the file on disk.
        - pid: ID of the process associated with the memory region.
        - type: A human-readable label describing when the snapshot was taken.
    - note: A message indicating whether the fallback directory was used.
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
save_pathNo

TDQS

A4.1/5.0
Behavior4/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 effectively describes what the tool does (extracts and classifies memory artifacts), how it handles file storage (with fallback directory logic), and what it returns (structured dictionary with paths and metadata). It provides useful context about snapshot types and classification criteria, though it doesn't mention error conditions or performance characteristics.

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 well-structured with clear sections (purpose, details, parameters, returns) and front-loaded key information. Most sentences earn their place by providing necessary context, though some formatting (like the bulleted snapshot types) could be more concise. The overall length is appropriate for the tool's complexity.

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 moderate complexity (3 parameters, no annotations, no output schema), the description provides comprehensive coverage. It explains what the tool does, how it behaves, what parameters mean, what it returns, and includes important behavioral details like fallback directory logic. The main gap is the lack of explicit error handling or performance information, but overall it's quite 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?

With 0% schema description coverage, the description must fully compensate. It provides clear semantic explanations for all three parameters: webid ('submission ID of the analysis'), run ('index of the sandbox run'), and save_path ('optional base directory to store unpacked files'). It also explains default values and fallback behavior for save_path, adding significant value beyond what the bare schema provides.

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 specific verbs ('retrieve and classify') and resource ('in-memory unpacked binaries from a sandbox analysis'). It distinguishes from sibling tools like get_dropped_files by focusing specifically on memory-resident unpacked executables rather than files written to disk.

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 context through phrases like 'from a sandbox analysis' and 'during the dynamic execution of the submitted sample,' suggesting this tool should be used after analysis execution. However, it doesn't explicitly state when to use this tool versus alternatives like get_memory_dumps or get_dropped_files, nor does it mention prerequisites or exclusions.

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

get_url_infoA
Retrieve urls in a completed analysis, along with their associated detection indicators.

This tool extracts urls gathered by the sandbox engine and returns relevant context such as ip address, source, and detection metadata.
Optional filtering parameters allow control over the inclusion of urls and indicators based on their assessed severity.

Args:
    webid (required): The submission ID of the analysis.
    run (default: 0): Index of the sandbox run to inspect (from the `runs` array in analysis info).
    only_malicious_elements (default: True): If True, returns only urls explicitly classified as malicious by the sandbox engine.
    only_malicious_indicators (default: True): If True, limits the returned indicators to those considered clearly malicious by the detection logic.
        This excludes low-impact behavioral signals and focuses on indicators with a high likelihood of malicious intent or confirmed threat classification.
        If False, all observed indicators are included regardless of their severity.

Returns:
    A dictionary containing a list of malicious URLs. Each entry includes:
      - url: The observed URL (may be truncated if extremely long).
      - ip: The resolved IP address associated with the URL (if available).
      - fromMemory: Whether the URL was extracted from memory.
      - source: Subsystem or extraction context (e.g., browser, process).
      - malicious: 'true' for urls classified as malicious
      - indicators: List of triggered detection rules, if any. Each entry includes:
          - desc: Description of the matched detection rule.
          - data: Matched content or signature.
          - source: The detection subsystem responsible (e.g. Suricata, Sigma, global traffic etc.).
- impact: Either "high" or "low", indicating the severity or confidence of the detection.  
    High-impact indicators are strongly associated with malicious behavior or confirmed threats.  
    Low-impact indicators reflect general behavior or environmental traits that may not be malicious on their own.

Notes:
    - Very long URLs are truncated for readability but include their original length as a hint.
    - Empty Array returned if no url was gathered during the analysis
ParametersJSON Schema
NameRequiredDescriptionDefault
webidYes
runNo
only_malicious_elementsNo
only_malicious_indicatorsNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does an excellent job disclosing behavioral traits. It explains what data gets returned, truncation behavior for long URLs, empty array returns when no URLs exist, and the filtering logic based on severity assessment. The only minor gap is lack of explicit mention about authentication requirements or rate limits.

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 well-structured with clear sections (Args, Returns, Notes) and front-loads the core purpose. While comprehensive, some sentences could be more concise (e.g., the explanation of 'only_malicious_indicators' uses multiple sentences that could be streamlined). Overall, most content earns its place.

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

Completeness5/5

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

Given the tool's complexity (4 parameters, no annotations, no output schema), the description provides complete context. It explains the purpose, parameters, return structure with detailed field descriptions, and behavioral notes. The return value documentation effectively substitutes for a missing output schema by detailing the dictionary structure and all nested fields.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing detailed semantic explanations for all 4 parameters. It clarifies that 'webid' is a required submission ID, 'run' is an index from the runs array, and both boolean parameters control filtering based on malicious classification with clear explanations of what 'True' and 'False' values mean.

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 specific verbs ('retrieve', 'extracts') and resources ('urls in a completed analysis', 'associated detection indicators'). It distinguishes from siblings by focusing specifically on URL extraction from sandbox analysis, unlike tools like get_domain_info or get_ip_info that handle different data types.

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 provides clear context about when to use this tool - specifically for retrieving URL information from completed sandbox analyses. However, it doesn't explicitly state when NOT to use it or name alternative tools for related but different purposes (e.g., using get_analysis_info for general analysis metadata).

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

search_analysisA
Search the JoeSandbox Cloud for malware analyses using structured search parameters.

Args:
    - md5, sha1, sha256: Exact match
    - filename, url, tag, comments, ioc_url, ioc_dropped-file: Substring match
    - detection: One of 'clean', 'suspicious', 'malicious', 'unknown'
    - threatname: Exact match
    - before_date, after-date: ISO 8601 format (YYYY-MM-DD). These are exclusive (the date itself is not included).
    - ioc_domain, ioc_public_ip: Exact match

    Notes:
        - You must provide at least one of the supported parameters.
        - If multiple parameters are provided, all conditions must match (AND logic).
        - Searches are case-insensitive.
        - On the Cloud version, date comparisons use the CET/CEST time zone.
        - The 'q' parameter is not supported and should not be used.

    Examples:
        {"md5": "661f3e4454258ca6ab1a4c31742916c0"}
        {"threatname": "agenttesla", "before_date": "2024-12-01"}
        {"filename": "agent.exe", "detection": "malicious"}
ParametersJSON Schema
NameRequiredDescriptionDefault
md5No
sha1No
sha256No
filenameNo
urlNo
tagNo
commentsNo
ioc_urlNo
ioc_dropped_fileNo
detectionNo
threatnameNo
before_dateNo
after_dateNo
ioc_domainNo
ioc_public_ipNo

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers excellent behavioral transparency. It discloses critical operational details: case-insensitive searches, AND logic for multiple parameters, time zone considerations (CET/CEST), exclusive date handling, and explicit warnings about unsupported parameters ('q' parameter not supported).

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 well-structured with clear sections (Args, Notes, Examples) and every sentence adds value. It could be slightly more front-loaded by moving the 'must provide at least one parameter' requirement earlier, but overall it's efficiently organized with no wasted text.

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 complex 15-parameter search tool with no annotations and no output schema, the description provides excellent coverage of input behavior, constraints, and examples. The main gap is lack of information about return values (format, pagination, etc.), but given the tool's primary focus is search filtering rather than output structure, this is a minor omission.

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

Parameters5/5

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

Given 0% schema description coverage and 15 parameters, the description compensates fully by explaining each parameter's matching behavior (exact vs substring match), providing format requirements (ISO 8601 for dates), enumerating detection values, and giving concrete examples. This adds substantial meaning beyond the bare schema.

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: 'Search the JoeSandbox Cloud for malware analyses using structured search parameters.' It specifies the exact resource ('malware analyses'), the platform ('JoeSandbox Cloud'), and the method ('structured search parameters'), distinguishing it from sibling tools like 'get_list_of_recent_analyses' which likely returns unfiltered recent analyses.

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 provides clear usage context with the note 'You must provide at least one of the supported parameters' and explains AND logic for multiple parameters. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_list_of_recent_analyses' or other sibling tools, though the structured search focus is implied.

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

submit_analysis_jobA
Submit a file, URL, website, or command line for sandbox analysis using Joe Sandbox.

This tool analyzes one of the following:
- A local file (`sample_path`)
- A remote file URL (`sample_url`)
- A website to visit (`website_url`)
- A raw command line to execute (`command_line`)

Only one input type must be provided. The rest of the arguments configure how the analysis is performed.
For URL and website analysis, make sure `internet_access=True` to allow downloads or navigation.

Args:
    wait_for_analysis_end: If True, the tool will block and wait until the sandbox analysis is complete before returning. If False, the tool returns immediately after submission.
    timeout (default: 1200): Max number of seconds to wait for analysis completion, this is only relevant if wait_for_analysis_end is True.
    File to Upload (required — provide exactly one):
        sample_path: Path to a local file to upload and analyze.
        sample_url: Direct download URL for a file to analyze.
        website_url: Website to visit and analyze in a browser.
        command_line: Command line string to execute in the sandbox.

    Sandbox configuration parameters (optional):
        tags (default: null): Optional tags for the submission.
        analysis_time (default: 120): Time in seconds to run the analysis.
        internet_access (default: True): Enable internet during analysis.
        report_cache (default: False): Use cached results if available.
        powershell_logging (default: False): Enable PowerShell script logging.
        ssl_inspection (default: True): Enable HTTPS inspection.
        vba_instrumentation (default: True): Instrument VBA macros.
        hybrid_code_analysis (default: True): Enable Hybrid Code Analysis (HCA).
        js_instrumentation (default: True): Instrument JavaScript.
        java_jar_tracing (default: True): Enable Java tracing.
        start_as_normal_user (default: False): Run the sample without admin privileges.
        email_notification (default: False): Send notification when complete.
        secondary_results (default: False): Generate post-analysis artifacts.
        archive_password (default: None): This password will be used to decrypt submitted archives (zip, 7z, rar etc.).
        command_line_argument (default: null): Startup arguments for the sample.

Returns:
    A dictionary containing:
    - analyses: A list of extracted analysis entries, each with:
        - webid: Unique identifier for the individual analysis which can be used to retrieve results.
        - sha256: SHA-256 hash of the analyzed file or object.
        - filename: Name of the submitted file or artifact.
        - status: status of the analysis, either finished or running/submitted/accepted
ParametersJSON Schema
NameRequiredDescriptionDefault
wait_for_analysis_endYes
timeoutNo
sample_pathNo
sample_urlNo
website_urlNo
command_lineNo
tagsNo
analysis_timeNo
internet_accessNo
hybrid_code_analysisNo
report_cacheNo
powershell_loggingNo
ssl_inspectionNo
vba_instrumentationNo
js_instrumentationNo
java_jar_tracingNo
start_as_normal_userNo
email_notificationNo
secondary_resultsNo
archive_passwordNo
command_line_argumentNo

TDQS

A4.5/5.0
Behavior4/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 effectively explains key behaviors: the tool can block/wait for completion (wait_for_analysis_end), has a timeout mechanism, requires exactly one input type, and includes important configuration details like internet_access requirements. It also describes the return structure, which is crucial given the lack of 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections and bullet points, making it easy to parse. While comprehensive, it's appropriately sized for a complex tool with 21 parameters. Some sentences could be slightly more concise, but overall it's efficient and front-loaded with the core purpose.

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

Completeness5/5

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

For a complex tool with 21 parameters, no annotations, and no output schema, the description is remarkably complete. It covers the purpose, usage constraints, behavioral characteristics, parameter semantics, and return structure. The detailed explanation of the return dictionary is particularly valuable given the lack of output schema.

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

Parameters5/5

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

Given 0% schema description coverage for 21 parameters, the description compensates excellently. It organizes parameters into logical groups (wait/timeout, file upload options, sandbox configuration), explains the 'exactly one' constraint for input types, provides default values, and clarifies the purpose of key parameters like internet_access and archive_password. This adds substantial meaning beyond the bare schema.

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: 'Submit a file, URL, website, or command line for sandbox analysis using Joe Sandbox.' It specifies the exact action (submit for analysis) and the resources involved (four input types), distinguishing it from sibling tools that retrieve analysis results rather than initiate them.

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 provides clear context on when to use this tool: for submitting items to Joe Sandbox. It includes specific guidance like 'Only one input type must be provided' and 'For URL and website analysis, make sure internet_access=True.' However, it doesn't explicitly mention when NOT to use it or name alternatives among siblings, though the sibling names suggest this is the primary submission tool.

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

TDQS

A4.5/5.0
Disambiguation5/5

Every tool has a distinct purpose with clear boundaries. Tools are organized by resource type (analysis info, domains, IPs, files, processes, signatures, URLs, etc.) and action (get, submit, search, list), making it easy for an agent to select the correct one without confusion.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case (e.g., get_analysis_info, submit_analysis_job, search_analysis). The naming is predictable and uniform across all 15 tools, enhancing readability and usability.

Tool Count5/5

With 15 tools, the server is well-scoped for malware analysis. It covers submission, retrieval of various analysis artifacts (info, domains, IPs, files, memory dumps, PCAPs, processes, signatures, URLs), and search functionality, each earning its place without bloat.

Completeness5/5

The toolset provides complete coverage for malware analysis workflows: submit samples, list recent analyses, search analyses, and retrieve detailed results (metadata, AI summaries, domains, IPs, dropped files, memory dumps, PCAPs, processes, signatures, URLs, unpacked files). No obvious gaps exist for the domain.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    A Model Context Protocol (MCP) server implementation for the Didlogic API. This server allows Large Language Models (LLMs) to interact with Didlogic services through a standardized interface.
    22
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    This is an MCP (Model Context Protocol) compatible tool that allows MobSF (Mobile Security Framework) to scan APK and IPA files directly via Claude, 5ire, or any MCP-capable client.
    21
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A standalone Python/FastAPI server that implements the Model Context Protocol (MCP) for the OPTIX threat intelligence platform. It exposes 26 analyst-friendly tools that AI assistants and programmatic consumers can use to query threat feeds, search documents and indicators, manage watchlists, triage IOCs, generate detection rules, trigger AI research, and produce intelligence reports.
    MIT

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/joesecurity/joesandboxMCP'

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