list_issues
Retrieve and filter security issues from Intruder accounts by target addresses, tags, snoozed status, or severity levels.
Instructions
List issues in the Intruder account with optional filters.
Args:
target_addresses: Filter by a list of target addresses
tag_names: Filter by a list of tag names
snoozed: Filter by snoozed status (true or false)
severity: Filter by severity level (one of 'critical', 'high', 'medium', 'low')
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| target_addresses | No | ||
| tag_names | No | ||
| snoozed | No | ||
| severity | No |
Implementation Reference
- intruder_mcp/server.py:39-60 (handler)MCP tool handler and registration for 'list_issues'. Decorated with @mcp.tool(), executes logic to fetch and format issues using api.list_issues_all.@mcp.tool() async def list_issues(target_addresses: Optional[List[str]] = None, tag_names: Optional[List[str]] = None, snoozed: Optional[bool] = None, severity: Optional[str] = None) -> str: """ List issues in the Intruder account with optional filters. Args: target_addresses: Filter by a list of target addresses tag_names: Filter by a list of tag names snoozed: Filter by snoozed status (true or false) severity: Filter by severity level (one of 'critical', 'high', 'medium', 'low') """ issues = api.list_issues_all( target_addresses=target_addresses, tag_names=tag_names, snoozed=snoozed, severity=severity ) formatted = [f"{issue.id} - {issue.title} ({issue.severity})" for issue in issues] return "\n".join(formatted)
- intruder_mcp/api_client.py:47-60 (helper)Helper method list_issues_all in IntruderAPI class, which fetches all issues by paginating the API calls. Called by the tool handler.def list_issues_all(self, severity: Optional[str] = None, snoozed: Optional[bool] = None, issue_ids: Optional[List[int]] = None, tag_names: Optional[List[str]] = None, target_addresses: Optional[List[str]] = None) -> Generator[Issue, None, None]: offset = 0 while True: response = self.list_issues(severity=severity, snoozed=snoozed, issue_ids=issue_ids, tag_names=tag_names, target_addresses=target_addresses, limit=100, offset=offset) for issue in response.results: yield issue if not response.next: break offset += len(response.results)
- intruder_mcp/enums.py:151-162 (schema)Pydantic model defining the structure of an Issue, used in API responses for list_issues.class Issue(BaseModel): id: int severity: str title: str description: str remediation: str snoozed: bool snooze_reason: Optional[str] = None snooze_until: Optional[date] = None occurrences: Optional[HttpUrl] = None exploit_likelihood: Union[ExploitLikelihoodEnum, None] cvss_score: Optional[float] = None