Skip to main content
Glama
Brucedh

AWS‑IReveal‑MCP

guardduty_list_findings

List AWS GuardDuty security findings by detector, with optional filtering by severity or specific IDs. Retrieve finding IDs to analyze security threats in your AWS environment.

Instructions

List GuardDuty finding IDs for a given detector.

Optionally, you can supply a list of finding IDs to retrieve specific findings or a minimum severity threshold to filter findings.

Parameters:
  aws_region (str): The AWS region - use 'us-east-1' if not specified.
  detector_id (str): The GuardDuty detector ID.
  finding_ids (list, optional): Specific finding IDs to query.
  severity_threshold (float, optional): If provided, returns only findings with severity greater than this value.

<IMPORTANT>
After calling this tool, you should call guardduty_get_findings multiple times with the finding_ids returned by this tool.
</IMPORTANT>

Returns:
  str: JSON-formatted list of finding IDs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
aws_regionYes
detector_idYes
finding_idsNo
severity_thresholdNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The handler function for the 'guardduty_list_findings' tool. It is registered via the @mcp.tool() decorator and implements the core logic to list GuardDuty findings for a specified detector using the AWS boto3 SDK. The function signature and docstring define the input schema and output format.
    @mcp.tool()
    async def guardduty_list_findings(
        aws_region: str,
        detector_id: str,
        finding_ids: list = None,
        severity_threshold: float = None
    ) -> str:
        """
        List GuardDuty finding IDs for a given detector.
        
        Optionally, you can supply a list of finding IDs to retrieve specific findings or a minimum severity threshold to filter findings.
        
        Parameters:
          aws_region (str): The AWS region - use 'us-east-1' if not specified.
          detector_id (str): The GuardDuty detector ID.
          finding_ids (list, optional): Specific finding IDs to query.
          severity_threshold (float, optional): If provided, returns only findings with severity greater than this value.
        
        <IMPORTANT>
        After calling this tool, you should call guardduty_get_findings multiple times with the finding_ids returned by this tool.
        </IMPORTANT>
    
        Returns:
          str: JSON-formatted list of finding IDs.
        """
        try:
            client = boto3.client('guardduty', region_name=aws_region)
            params = {}
            if finding_ids:
                params["FindingIds"] = finding_ids
            if severity_threshold is not None:
                # Apply a filter criterion for severity greater than the threshold.
                params["FindingCriteria"] = {
                    "Criterion": {
                        "severity": {
                            "Gt": int(severity_threshold)
                        }
                    }
                }
            response = client.list_findings(
                DetectorId=detector_id,
                **params
            )
            findings = response.get("FindingIds", [])
            return json.dumps(findings, indent=2)
        except Exception as e:
            return f"Error listing GuardDuty findings: {str(e)}"
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 explains the tool's behavior (returns JSON-formatted list of IDs), mentions optional filtering by severity, and provides important workflow context about calling 'guardduty_get_findings' afterward. It doesn't cover rate limits or authentication needs, but provides substantial behavioral 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 clear sections: purpose statement, optional capabilities, parameter explanations, and important workflow note. Every sentence earns its place, and the <IMPORTANT> tags effectively highlight critical information without unnecessary verbosity.

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, but has output schema), the description is complete: it explains purpose, parameters, return format, and critical workflow context. The output schema existence means the description doesn't need to detail return values, and it provides all necessary context 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?

With 0% schema description coverage, the description compensates well by explaining all 4 parameters: it clarifies that 'aws_region' defaults to 'us-east-1', explains what 'detector_id' is, and describes the optional 'finding_ids' and 'severity_threshold' parameters with their purposes. It adds meaningful context 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 ('GuardDuty finding IDs for a given detector'), and distinguishes it from its sibling 'guardduty_get_findings' by explaining this tool returns IDs while the sibling retrieves full finding details. The title being null doesn't affect this clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: it specifies that after calling this tool, 'guardduty_get_findings' should be called multiple times with the returned IDs, clearly indicating the workflow relationship. It also mentions optional filtering capabilities.

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

Install Server

Other Tools

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/Brucedh/aws-ireveal-mcp'

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