7.5 KiB
Prowler MCP Server
Access the entire Prowler ecosystem through the Model Context Protocol (MCP). This server provides two main capabilities:
- Prowler Cloud and Prowler App (Self-Managed): Full access to Prowler Cloud platform and Prowler Self-Managed for managing providers, running scans, and analyzing security findings
- Prowler Hub: Access to Prowler's security checks, fixers, and compliance frameworks catalog
Requirements
- Python 3.12+
- Network access to
https://hub.prowler.com(for Prowler Hub) - Network access to Prowler Cloud and Prowler App (Self-Managed) API (it can be Prowler Cloud API or self-hosted Prowler App API)
- Prowler Cloud account credentials (for Prowler Cloud and Prowler App (Self-Managed) features)
Installation
From Sources
It is needed to have uv installed.
git clone https://github.com/prowler-cloud/prowler.git
Using Docker
Alternatively, you can build and run the MCP server using Docker:
# Clone the repository
git clone https://github.com/prowler-cloud/prowler.git
cd prowler/mcp_server
# Build the Docker image
docker build -t prowler-mcp .
# Run the container with environment variables
docker run --rm --env-file ./.env -it prowler-mcp
Running
Using uv directly
After installation, start the MCP server via the console script:
cd prowler/mcp_server
uv run prowler-mcp
Alternatively, you can run from wherever you want using uvx command:
uvx /path/to/prowler/mcp_server/
Using Docker
Run the pre-built Docker container:
cd prowler/mcp_server
docker run --rm --env-file ./.env -it prowler-mcp
Available Tools
Prowler Hub
All tools are exposed under the prowler_hub prefix.
prowler_hub_get_check_filters: Return available filter values for checks (providers, services, severities, categories, compliances). Call this beforeprowler_hub_get_checksto build valid queries.prowler_hub_get_checks: List checks with option of advanced filtering.prowler_hub_search_checks: Full‑text search across check metadata.prowler_hub_get_compliance_frameworks: List/filter compliance frameworks.prowler_hub_search_compliance_frameworks: Full-text search across frameworks.prowler_hub_list_providers: List Prowler official providers and their services.prowler_hub_get_artifacts_count: Return total artifact count (checks + frameworks).
Prowler Cloud and Prowler App (Self-Managed)
All tools are exposed under the prowler_app prefix.
Findings Management
prowler_app_list_findings: List security findings from Prowler scans with advanced filteringprowler_app_get_finding: Get detailed information about a specific security findingprowler_app_get_latest_findings: Retrieve latest findings from the latest scans for each providerprowler_app_get_findings_metadata: Fetch unique metadata values from filtered findingsprowler_app_get_latest_findings_metadata: Fetch metadata from latest findings across all providers
Provider Management
prowler_app_list_providers: List all providers with filtering optionsprowler_app_create_provider: Create a new provider in the current tenantprowler_app_get_provider: Get detailed information about a specific providerprowler_app_update_provider: Update provider details (alias, etc.)prowler_app_delete_provider: Delete a specific providerprowler_app_test_provider_connection: Test provider connection status
Provider Secrets Management
prowler_app_list_provider_secrets: List all provider secrets with filteringprowler_app_add_provider_secret: Add or update credentials for a providerprowler_app_get_provider_secret: Get detailed information about a provider secretprowler_app_update_provider_secret: Update provider secret detailsprowler_app_delete_provider_secret: Delete a provider secret
Scan Management
prowler_app_list_scans: List all scans with filtering optionsprowler_app_create_scan: Trigger a manual scan for a specific providerprowler_app_get_scan: Get detailed information about a specific scanprowler_app_update_scan: Update scan detailsprowler_app_get_scan_compliance_report: Download compliance report as CSVprowler_app_get_scan_report: Download ZIP file containing scan report
Schedule Management
prowler_app_schedules_daily_scan: Create a daily scheduled scan for a provider
Processor Management
prowler_app_processors_list: List all processors with filteringprowler_app_processors_create: Create a new processor. For now, only mute lists are supported.prowler_app_processors_retrieve: Get processor details by IDprowler_app_processors_partial_update: Update processor configurationprowler_app_processors_destroy: Delete a processor
Configuration
Environment Variables
For Prowler Cloud and Prowler App (Self-Managed) features, you need to set the following environment variables:
# Required for Prowler Cloud and Prowler App (Self-Managed) authentication
export PROWLER_APP_EMAIL="your-email@example.com"
export PROWLER_APP_PASSWORD="your-password"
# Optional - in case not provided the first membership that was added to the user will be used. This can be found as `Organization ID` in your User Profile in Prowler App
export PROWLER_APP_TENANT_ID="your-tenant-id"
# Optional - for custom API endpoint, in case not provided Prowler Cloud API will be used
export PROWLER_API_BASE_URL="https://api.prowler.com"
MCP Client Configuration
Configure your MCP client, like Claude Desktop, Cursor, etc, to launch the server. Below are examples for both direct execution and Docker deployment; consult your client's documentation for exact locations.
Using uvx (Direct Execution)
{
"mcpServers": {
"prowler": {
"command": "uvx",
"args": ["/path/to/prowler/mcp_server/"],
"env": {
"PROWLER_APP_EMAIL": "your-email@example.com",
"PROWLER_APP_PASSWORD": "your-password",
"PROWLER_APP_TENANT_ID": "your-tenant-id", // Optional, this can be found as `Organization ID` in your User Profile in Prowler App,
"PROWLER_API_BASE_URL": "https://api.prowler.com" // Optional, in case not provided Prowler Cloud API will be used
}
}
}
}
Using Docker
{
"mcpServers": {
"prowler": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--env", "PROWLER_APP_EMAIL=your-email@example.com",
"--env", "PROWLER_APP_PASSWORD=your-password",
"--env", "PROWLER_APP_TENANT_ID=your-tenant-id", // Optional, this can be found as `Organization ID` in your User Profile in Prowler App
"--env", "PROWLER_API_BASE_URL=https://api.prowler.com", // Optional, in case not provided Prowler Cloud API will be used
"prowler-mcp"
]
}
}
}
Claude Desktop (macOS/Windows)
Add the example server to Claude Desktop's config file, then restart the app.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%AppData%\Claude\claude_desktop_config.json(e.g.C:\\Users\\<you>\\AppData\\Roaming\\Claude\\claude_desktop_config.json)
Cursor (macOS/Linux)
If you want to have it globally available, add the example server to Cursor's config file, then restart the app.
- macOS/Linux:
~/.cursor/mcp.json
If you want to have it only for the current project, add the example server to the project's root in a new .cursor/mcp.json file.
License
This project follows the repository’s main license. See the LICENSE file at the repository root.