New to Prowler MCP Server? Start with the user documentation:
- Overview - Key capabilities, use cases, and deployment options
- Installation - Install locally or use the managed server
- Configuration - Configure Claude Desktop, Cursor, and other MCP hosts
- Tools Reference - Complete list of all available tools
Introduction
The Prowler MCP Server brings the entire Prowler ecosystem to AI assistants through the Model Context Protocol (MCP). It enables seamless integration with AI tools like Claude Desktop, Cursor, and other MCP clients. The server follows a modular architecture with three independent sub-servers:| Sub-Server | Auth Required | Description |
|---|---|---|
| Prowler App | Yes | Full access to Prowler Cloud and Self-Managed features |
| Prowler Hub | No | Security checks catalog with over 1000 checks, fixers, and 70+ compliance frameworks |
| Prowler Documentation | No | Full-text search and retrieval of official documentation |
For a complete list of tools and their descriptions, see the Tools Reference.
Architecture Overview
The MCP Server architecture is illustrated in the Overview documentation. AI assistants connect through the MCP protocol to access Prowler’s three main components.Server Structure
The main server orchestrates three sub-servers with prefixed namespacing:Tool Registration Patterns
The MCP Server uses two patterns for tool registration:- Direct Decorators (Prowler Hub/Docs): Tools are registered using
@mcp.tool()decorators - Auto-Discovery (Prowler App): All public methods of
BaseToolsubclasses are auto-registered
Adding Tools to Prowler App
Step 1: Create the Tool Class
Create a new file or add to an existing file inprowler_app/tools/:
Step 2: Create the Models
Create corresponding models inprowler_app/models/:
Step 3: Verify Auto-Discovery
No manual registration is needed. Thetool_loader.py automatically discovers and registers all BaseTool subclasses. Verify your tool is loaded by checking the server logs:
Adding Tools to Prowler Hub/Docs
For Prowler Hub or Documentation tools, use the@mcp.tool() decorator directly:
Model Design Patterns
MinimalSerializerMixin
All models should useMinimalSerializerMixin to optimize responses for LLM consumption:
Nonevalues- Empty strings
- Empty lists
- Empty dictionaries
Two-Tier Model Pattern
Use two-tier models for efficient responses:- Simplified: Lightweight models for list operations
- Detailed: Extended models for single-item retrieval
Factory Method Pattern
Always implementfrom_api_response() for API transformation:
API Client Usage
TheProwlerAPIClient is a singleton that handles authentication and HTTP requests:
Helper Methods
The API client provides useful helper methods:Best Practices
Tool Docstrings
Tool docstrings become description that is going to be read by the LLM. Provide clear usage instructions and common workflows:Error Handling
Return structured error responses instead of raising exceptions:Parameter Descriptions
Use PydanticField() with clear descriptions. This also helps LLMs understand
the purpose of each parameter, so be as descriptive as possible:
Development Commands
- Installation Guide - Development setup instructions
- Configuration Guide - MCP client configuration
Related Documentation
MCP Server Overview
Key capabilities, use cases, and deployment options
Tools Reference
Complete reference of all available tools
Prowler Hub
Security checks and compliance frameworks catalog
Lighthouse AI
AI-powered security analyst
Additional Resources
- MCP Protocol Specification - Model Context Protocol details
- Prowler API Documentation - API reference
- Prowler Hub API - Hub API reference
- GitHub Repository - Source code

