← Back to list

prowler-mcp
by prowler-cloud
Prowler is the world’s most widely used open-source cloud security platform that automates security and compliance across any cloud environment.
⭐ 12,764🍴 1,941📅 Jan 23, 2026
SKILL.md
name: prowler-mcp description: > 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. license: Apache-2.0 metadata: author: prowler-cloud version: "1.0" scope: [root, mcp_server] auto_invoke: "Working on MCP server tools" allowed-tools: Read, Edit, Write, Glob, Grep, Bash, WebFetch, WebSearch, Task
Overview
The Prowler MCP Server uses three sub-servers with prefixed namespacing:
| Sub-Server | Prefix | Auth | Purpose |
|---|---|---|---|
| Prowler App | prowler_app_* | Required | Cloud 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 App 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 App 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 App)
- Tool docstrings describe LLM-relevant behavior
- Models use
MinimalSerializerMixin - API responses transformed to simplified models
- Error handling returns
{"error": str, "status": "failed"} - Parameters use
Field()with descriptions - No hardcoded secrets
Resources
- Full Guide: docs/developer-guide/mcp-server.mdx
- Templates: See assets/ for tool and model templates
Score
Total Score
90/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
✓説明文
100文字以上の説明がある
+10
✓人気
GitHub Stars 1000以上
+15
✓最近の活動
1ヶ月以内に更新
+10
✓フォーク
10回以上フォークされている
+5
○Issue管理
オープンIssueが50未満
0/5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon

