list_scan_schedules
Retrieve all scan schedules from your Intruder account, including complete details for each.
Instructions
List all scan schedules in the Intruder account, including the full record for each.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- intruder_mcp/server.py:309-337 (handler)MCP tool handler that lists all scan schedules by calling the API client and formatting each schedule's details (id, name, schedule_period, status, timestamps, targets, tags, etc.) into a readable string.
@mcp.tool() async def list_scan_schedules() -> str: """ List all scan schedules in the Intruder account, including the full record for each. """ response = api.list_scan_schedules() if not response.results: return "No scan schedules found." blocks = [] for s in response.results: block = [ f"{s.id} - {s.name}", f" schedule_period: {s.schedule_period}", f" status: {s.status}", f" first_scan_time: {s.first_scan_time}", f" next_scan_date: {s.next_scan_date}", f" throttled: {s.throttled}", f" web_ports_only: {s.web_ports_only}", f" upload_to_drata: {s.upload_to_drata}", f" upload_to_vanta: {s.upload_to_vanta}", f" latest_scan_id: {s.latest_scan_id}", f" latest_scan_status: {s.latest_scan_status}", f" last_scan_start_time: {s.last_scan_start_time}", f" last_scan_end_time: {s.last_scan_end_time}", f" targets: {', '.join(map(str, s.targets)) if s.targets else '(none)'}", f" target_tags: {', '.join(s.target_tags) if s.target_tags else '(none)'}", ] blocks.append("\n".join(block)) return "\n\n".join(blocks) - intruder_mcp/server.py:309-310 (registration)Tool registration using @mcp.tool() decorator, registering 'list_scan_schedules' as an MCP tool on the FastMCP server instance.
@mcp.tool() async def list_scan_schedules() -> str: - intruder_mcp/api_client.py:293-294 (handler)API client method that performs the actual HTTP GET request to /v1/scans/schedules/ and deserializes the response into an AssessmentScheduleListResponse.
def list_scan_schedules(self) -> AssessmentScheduleListResponse: return AssessmentScheduleListResponse(**self.client.get(f"{self.base_url}/scans/schedules/").json()) - intruder_mcp/enums.py:292-294 (schema)Response schema model containing count and results list of AssessmentScheduleList objects.
class AssessmentScheduleListResponse(BaseModel): count: int results: List[AssessmentScheduleList] - intruder_mcp/enums.py:274-290 (schema)Schema for individual scan schedule items with fields like id, name, schedule_period, status, timestamps, targets, tags, and upload flags.
class AssessmentScheduleList(BaseModel): id: int name: str schedule_period: SchedulePeriodEnum first_scan_time: datetime next_scan_date: datetime status: str throttled: bool web_ports_only: bool latest_scan_id: Optional[int] = None latest_scan_status: Optional[str] = None last_scan_start_time: Optional[datetime] = None last_scan_end_time: Optional[datetime] = None targets: List[int] = [] target_tags: List[str] = [] upload_to_drata: bool upload_to_vanta: bool