prowler-mcp
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseOverview
概述
The Prowler MCP Server uses three sub-servers with prefixed namespacing:
| Sub-Server | Prefix | Auth | Purpose |
|---|---|---|---|
| Prowler App | | Required | Cloud management tools |
| Prowler Hub | | No | Security checks catalog |
| Prowler Docs | | No | Documentation search |
For complete architecture, patterns, and examples, see docs/developer-guide/mcp-server.mdx.
Prowler MCP Server 使用三个带有前缀命名空间的子服务器:
| 子服务器 | 前缀 | 认证要求 | 用途 |
|---|---|---|---|
| Prowler App | | 需要 | 云管理工具 |
| Prowler Hub | | 不需要 | 安全检查目录 |
| Prowler Docs | | 不需要 | 文档搜索 |
完整的架构、模式及示例,请查看 docs/developer-guide/mcp-server.mdx。
Critical Rules (Prowler App Only)
关键规则(仅适用于Prowler App)
Tool Implementation
工具实现
- ALWAYS: Extend (auto-registered via
BaseTool, only public methods from the class are exposed as a tool)tool_loader.py - NEVER: Manually register BaseTool subclasses
- NEVER: Import tools directly in server.py
- 必须:继承 (通过
BaseTool自动注册,仅类中的公共方法会作为工具暴露)tool_loader.py - 禁止:手动注册BaseTool的子类
- 禁止:在server.py中直接导入工具
Models
模型
- ALWAYS: Use for responses
MinimalSerializerMixin - ALWAYS: Implement factory method
from_api_response() - ALWAYS: Use two-tier models (Simplified for lists, Detailed for single items)
- NEVER: Return raw API responses
- 必须:使用处理响应
MinimalSerializerMixin - 必须:实现工厂方法
from_api_response() - 必须:使用双层模型(列表用简化版,单个条目用详细版)
- 禁止:返回原始API响应
API Client
API客户端
- ALWAYS: Use singleton
self.api_client - ALWAYS: Use for query parameters
build_filter_params() - NEVER: Create new httpx clients
- 必须:使用单例
self.api_client - 必须:使用构建查询参数
build_filter_params() - 禁止:创建新的httpx客户端
Hub/Docs Tools
Hub/Docs工具
Use decorator directly—no BaseTool or models required.
@mcp.tool()直接使用装饰器——无需BaseTool或模型。
@mcp.tool()Quick Reference: New Prowler App Tool
快速参考:新建Prowler App工具
- Create tool class in extending
prowler_app/tools/BaseTool - Create models in using
prowler_app/models/MinimalSerializerMixin - Tools auto-register via
tool_loader.py
- 在目录下创建继承自
prowler_app/tools/的工具类BaseTool - 在目录下使用
prowler_app/models/创建模型MinimalSerializerMixin - 工具通过自动注册
tool_loader.py
QA Checklist (Prowler App)
QA检查清单(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 with descriptions
Field() - No hardcoded secrets
- 工具的文档字符串描述了与LLM相关的行为
- 模型使用了
MinimalSerializerMixin - API响应已转换为简化模型
- 错误处理返回格式
{"error": str, "status": "failed"} - 参数使用带描述的
Field() - 没有硬编码的密钥
Resources
资源
- Full Guide: docs/developer-guide/mcp-server.mdx
- Templates: See assets/ for tool and model templates
- 完整指南:docs/developer-guide/mcp-server.mdx
- 模板:查看assets/获取工具和模型模板