SuperAPI AI 工具集

prowler-mcp

安全与审计

查看项目

更新于 10-16 04:35

技能介绍

用途:该技能面向在 Prowler 仓库 mcp_server/ 目录中开发 MCP 工具的开发者,指导如何按既有模式新增工具。

主要能力与结构:Prowler MCP Server 由三个子服务器组成,使用前缀命名空间。Prowler(前缀 prowler_,需要认证)提供 Prowler Cloud、Private Cloud 与 Local Server 管理工具;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() 工厂方法,并采用两层模型(列表用 Simplified,单项用 Detailed);不得返回原始 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 检查清单:工具 docstring 需描述对 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。

限制:资料未提供安装命令、收费、价格、平台支持或效果数据,暂未提供。