关于 prowler-mcp
prowler-mcp 是用于开发 Prowler MCP 服务的技能,说明工具实现和响应模型规范,并分别介绍 Prowler 管理、安全检查目录及文档搜索工具。
主要功能
- 01Prowler 工具实现规范
- 02响应模型与 API 客户端指引
- 03工具自动注册说明
- 04Hub 与 Docs 工具模式
- 05测试与质量检查清单
适用场景
- 01添加 Prowler 管理工具
- 02实现安全检查目录或文档工具
- 03审查 MCP 工具变更和测试
MCP 相关
该技能介绍由三个带命名空间的子服务器构成的 Prowler MCP 服务,分别提供 Prowler 管理工具、Prowler Hub 安全检查目录和 Prowler Docs 搜索。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ prowler-cloud/ prowler --skill prowler-mcp安装后在 Claude Code 中输入/prowler-mcp确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/base_tool.pymodels.pytool_implementation.py详细介绍
概述
Prowler MCP Server 使用三个带前缀命名空间的子服务:
| 子服务 | 前缀 | 身份验证 | 用途 |
|---|---|---|---|
| Prowler | prowler_* | 必需 | Prowler Cloud、Private Cloud 和本地服务管理工具 |
| Prowler Hub | prowler_hub_* | 否 | 安全检查目录 |
| Prowler Docs | prowler_docs_* | 否 | 文档搜索 |
如需查看完整的架构、模式和示例,请参阅 docs/developer-guide/mcp-server.mdx。
关键规则(仅适用于 Prowler 工具)
工具实现
- 始终:扩展
BaseTool(通过tool_loader.py自动注册,只有类中的公共方法会作为工具公开) - 绝不:手动注册
BaseTool子类 - 绝不:在 server.py 中直接导入工具
模型
- 始终:使用
MinimalSerializerMixin处理响应 - 始终:实现
from_api_response()工厂方法 - 始终:使用两层模型(列表使用简化模型,单个项目使用详细模型)
- 绝不:返回原始 API 响应
API 客户端
- 始终:使用
self.api_client单例 - 始终:使用
build_filter_params()处理查询参数 - 绝不:创建新的 httpx 客户端
Hub/Docs 工具
直接使用 @mcp.tool() 装饰器——无需 BaseTool 或模型。
快速参考:新增 Prowler 工具
- 在
prowler_app/tools/中创建扩展BaseTool的工具类 - 在
prowler_app/models/中使用MinimalSerializerMixin创建模型 - 工具会通过
tool_loader.py自动注册
QA 检查清单(Prowler 工具)
- 工具文档字符串描述与 LLM 相关的行为
- 模型使用
MinimalSerializerMixin - 将 API 响应转换为简化模型
- 必须抛出失败,绝不返回失败。返回错误字典会被报告为成功。参数错误时抛出
InvalidArgument,让ProwlerAPIError/ProwlerAPIUnreachable向上传播;只有当lib/errors.py无法得知某句话时(资源名称、前置条件、接下来要调用的工具),才抛出不带from子句的ToolError - 参数使用带描述的
Field() - 不硬编码密钥
- 在
mcp_server/tests/下添加测试
资源
- 完整指南:docs/developer-guide/mcp-server.mdx
- 模板:工具和模型模板请参阅 assets/
- 测试:夹具和测试模式请参阅 prowler-test-mcp
评论
支持 Markdown