Skip to main content
Glama

list_scans

View and filter scans in your Intruder account by status or type, including scheduled, new service, rapid remediation, and cloud security scans.

Instructions

List scans in the Intruder account with optional filters. Args: status: Filter by scan status (in_progress, completed, cancelled, cancelled_no_active_targets, cancelled_no_valid_targets, analysing_results) scan_type: Filter by scan type (assessment_schedule, new_service, cloudbot_new_target, rapid_remediation, advisory, cloud_security) The scan_type parameters mean: - assessment_schedule: Scans that run on a regular schedule - new_service: Scans that are triggered when a new service is exposed on a target - cloudbot_new_target: Scans that are triggered when CloudBot discovers a new target in a connected cloud account - rapid_remediation: Scans that a user can trigger to test if a specific issue has been remediated - advisory: An issue created by the Intruder security team based on their manual work - cloud_security: Scans of cloud accounts, checking the configuration of the resources in the cloud account

Input Schema

NameRequiredDescriptionDefault
scan_typeNo
statusNo

Input Schema (JSON Schema)

{ "properties": { "scan_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Scan Type" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" } }, "title": "list_scansArguments", "type": "object" }

Implementation Reference

  • The handler function for the MCP tool 'list_scans'. It is registered via @mcp.tool() decorator, fetches all scans using IntruderAPI.list_scans_all with optional filters, formats them into a readable string list, and returns it.
    @mcp.tool() async def list_scans(status: Optional[str] = None, scan_type: Optional[str] = None) -> str: """ List scans in the Intruder account with optional filters. Args: status: Filter by scan status (in_progress, completed, cancelled, cancelled_no_active_targets, cancelled_no_valid_targets, analysing_results) scan_type: Filter by scan type (assessment_schedule, new_service, cloudbot_new_target, rapid_remediation, advisory, cloud_security) The scan_type parameters mean: - assessment_schedule: Scans that run on a regular schedule - new_service: Scans that are triggered when a new service is exposed on a target - cloudbot_new_target: Scans that are triggered when CloudBot discovers a new target in a connected cloud account - rapid_remediation: Scans that a user can trigger to test if a specific issue has been remediated - advisory: An issue created by the Intruder security team based on their manual work - cloud_security: Scans of cloud accounts, checking the configuration of the resources in the cloud account """ scans = api.list_scans_all(status=status, scan_type=scan_type) formatted = [f"{scan.id} - {scan.scan_type} ({scan.status})" for scan in scans] return "\n".join(formatted)
  • Supporting helper method in IntruderAPI class that retrieves all scans by paginating through the API endpoints using list_scans.
    def list_scans_all(self, scan_type: Optional[str] = None, schedule_period: Optional[str] = None, status: Optional[str] = None) -> Generator[ScanList, None, None]: offset = 0 while True: response = self.list_scans(scan_type=scan_type, schedule_period=schedule_period, status=status, limit=100, offset=offset) for scan in response.results: yield scan if not response.next: break offset += len(response.results)
  • Low-level API method that queries the Intruder API for scans with pagination parameters, used by list_scans_all.
    def list_scans(self, scan_type: Optional[str] = None, schedule_period: Optional[str] = None, status: Optional[str] = None, limit: Optional[int] = None, offset: Optional[int] = None) -> PaginatedScanListList: params = {} if scan_type: params["scan_type"] = scan_type if schedule_period: params["schedule_period"] = schedule_period if status: params["status"] = status if limit: params["limit"] = limit if offset: params["offset"] = offset return PaginatedScanListList(**self.client.get(f"{self.base_url}/scans/", params=params).json())

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/intruder-io/intruder-mcp'

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