prowler-cloud/prowler/prowler-mcp
- community
Checking that the SKILL.md file is still in the repository.
Creates MCP tools for Prowler MCP Server. Covers BaseTool pattern, model design, and API client usage. Trigger: When working in mcp_server/ on tools (BaseTool), models (MinimalSerializerMixin/from_api_response), or API client patterns.
Install
npx vskill@latest install prowler-cloud/prowler/prowler-mcpSKILL.md
Overview
The Prowler MCP Server uses three sub-servers with prefixed namespacing:
| Sub-Server | Prefix | Auth | Purpose | |
|---|---|---|---|---|
| Prowler | prowler_* | Required | Prowler Cloud, Private Cloud & Local Server management tools | |
| Prowler Hub | prowler_hub_* | No | Security checks catalog | |
| Prowler Docs | prowler_docs_* | No | Documentation search |
For complete architecture, patterns, and examples, see docs/developer-guide/mcp-server.mdx.
Critical Rules (Prowler Tools Only)
Tool Implementation
- ALWAYS: Extend
BaseTool(auto-registered viatool_loader.py, only public methods from the class are exposed as a tool) - NEVER: Manually register BaseTool subclasses
- NEVER: Import tools directly in server.py
Models
- ALWAYS: Use
MinimalSerializerMixinfor responses - ALWAYS: Implement
from_api_response()factory method - ALWAYS: Use two-tier models (Simplified for lists, Detailed for single items)
- NEVER: Return raw API responses
API Client
- ALWAYS: Use
self.api_clientsingleton - ALWAYS: Use
build_filter_params()for query parameters - NEVER: Create new httpx clients
Hub/Docs Tools
Use @mcp.tool() decorator directly—no BaseTool or models required.
Quick Reference: New Prowler Tool
- Create tool class in
prowler_app/tools/extendingBaseTool - Create models in
prowler_app/models/usingMinimalSerializerMixin - Tools auto-register via
tool_loader.py
QA Checklist (Prowler Tools)
- [ ] Tool docstrings describe LLM-relevant behavior
- [ ] Models use
MinimalSerializerMixin - [ ] API responses transformed to simplified models
- [ ] Failures are raised, never returned. A returned error dict is reported
as a success. Raise InvalidArgument for a bad argument, let ProwlerAPIError/ProwlerAPIUnreachable propagate, and raise ToolError without a `from` clause only for a sentence lib/errors.py cannot know (a resource name, a precondition, the next tool to call)
- [ ] Parameters use
Field()with descriptions - [ ] No hardcoded secrets
- [ ] Tests added under
mcp_server/tests/
Resources
- Full Guide: docs/developer-guide/mcp-server.mdx
- Templates: See assets/ for tool and model templates
- Testing: See prowler-test-mcp for fixtures and test patterns
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/prowler-mcp/SKILL.md
Popularity
- Repository stars
- 13,377
- Repository forks
- 2,050
- 7-day trend score
- 48
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 22 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/prowler-cloud/prowler/prowler-mcp)