create_scan
Initiate a new scan on Intruder.IO, specifying target addresses and tags to assess network security vulnerabilities systematically.
Instructions
Create a new scan.
Args:
target_addresses: List of target addresses to scan
tag_names: List of tag names to scan targets with these tags
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tag_names | No | ||
| target_addresses | No |
Input Schema (JSON Schema)
{
"properties": {
"tag_names": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Tag Names"
},
"target_addresses": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Target Addresses"
}
},
"title": "create_scanArguments",
"type": "object"
}
Implementation Reference
- intruder_mcp/server.py:144-155 (handler)MCP tool handler for 'create_scan'. Decorated with @mcp.tool() for registration. Calls the API client to create a scan and returns a formatted string with scan ID and type.@mcp.tool() async def create_scan(target_addresses: Optional[List[str]] = None, tag_names: Optional[List[str]] = None) -> str: """ Create a new scan. Args: target_addresses: List of target addresses to scan tag_names: List of tag names to scan targets with these tags """ scan = api.create_scan(target_addresses=target_addresses, tag_names=tag_names) return f"Created scan {scan.id} ({scan.scan_type})"
- intruder_mcp/enums.py:142-145 (schema)Pydantic model used as input schema for the create_scan API request, matching the tool parameters.class ScanRequest(BaseModel): target_addresses: Optional[List[str]] = None tag_names: Optional[List[str]] = Field(None, min_items=1)
- intruder_mcp/api_client.py:180-183 (helper)Helper method in IntruderAPI client that sends POST request to the Intruder API to create a scan, used by the tool handler.def create_scan(self, target_addresses: Optional[List[str]] = None, tag_names: Optional[List[str]] = None) -> Scan: data = ScanRequest(target_addresses=target_addresses, tag_names=tag_names) return Scan(**self.client.post(f"{self.base_url}/scans/", json=data.dict(exclude_none=True)).json())
- intruder_mcp/enums.py:125-134 (schema)Pydantic model for the Scan response object returned by the API.class Scan(BaseModel): id: int status: ScanStatusField created_at: datetime target_addresses: Optional[List[str]] = None scan_type: ScanTypeEnum schedule_period: SchedulePeriodEnum start_time: Optional[datetime] = None completed_time: Optional[datetime] = None