list_licenses
View your Intruder account's license usage and limits, including infrastructure and application licenses. Each used license is tied to a target for 30 days.
Instructions
List license information for the Intruder account. Shows usage and limits for infrastructure and application licenses. When a license is used, it is tied to the target that used it for 30 days.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- intruder_mcp/server.py:248-266 (handler)The MCP tool handler that lists license information. Calls api.list_licenses_all() and formats the results showing infrastructure and application license totals, available, and consumed counts.
@mcp.tool() async def list_licenses() -> str: """ List license information for the Intruder account. Shows usage and limits for infrastructure and application licenses. When a license is used, it is tied to the target that used it for 30 days. """ licenses = api.list_licenses_all() formatted = [] for license in licenses: formatted.append("Infrastructure Licenses:") formatted.append(f" Total: {license.total_infrastructure_licenses}") formatted.append(f" Available: {license.available_infrastructure_licenses}") formatted.append(f" Consumed: {license.consumed_infrastructure_licenses}") formatted.append("") formatted.append("Application Licenses:") formatted.append(f" Total: {license.total_application_licenses}") formatted.append(f" Available: {license.available_application_licenses}") formatted.append(f" Consumed: {license.consumed_application_licenses}") formatted.append("") return "\n".join(formatted) - intruder_mcp/api_client.py:112-118 (helper)API client method that calls the GET /licenses/ endpoint with optional pagination params.
def list_licenses(self, limit: Optional[int] = None, offset: Optional[int] = None) -> PaginatedLicensesList: params = {} if limit: params["limit"] = limit if offset: params["offset"] = offset return PaginatedLicensesList(**self.client.get(f"{self.base_url}/licenses/", params=params).json()) - intruder_mcp/api_client.py:120-128 (helper)Helper that paginates through all licenses using list_licenses with offset/limit.
def list_licenses_all(self) -> Generator[Licenses, None, None]: offset = 0 while True: response = self.list_licenses(limit=100, offset=offset) for license in response.results: yield license if not response.next: break offset += len(response.results) - intruder_mcp/enums.py:183-189 (schema)Pydantic model defining the Licenses schema with infrastructure and application license fields.
class Licenses(BaseModel): total_infrastructure_licenses: int available_infrastructure_licenses: int consumed_infrastructure_licenses: int total_application_licenses: int available_application_licenses: int consumed_application_licenses: int - intruder_mcp/enums.py:261-262 (schema)Pagination wrapper for Licenses list, extending PaginatedResponse.
class PaginatedLicensesList(PaginatedResponse): results: List[Licenses]