mcpField
P
prowler-mcp

prowler-mcp

github.com/prowler-cloud开发15.1k68 次安装今天更新
代码仓库

关于 prowler-mcp

prowler-mcp 是用于开发 Prowler MCP 服务的技能,说明工具实现和响应模型规范,并分别介绍 Prowler 管理、安全检查目录及文档搜索工具。

主要功能

  1. 01Prowler 工具实现规范
  2. 02响应模型与 API 客户端指引
  3. 03工具自动注册说明
  4. 04Hub 与 Docs 工具模式
  5. 05测试与质量检查清单

适用场景

  1. 01添加 Prowler 管理工具
  2. 02实现安全检查目录或文档工具
  3. 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.py
models.py
tool_implementation.py

详细介绍

概述

Prowler MCP Server 使用三个带前缀命名空间的子服务:

子服务前缀身份验证用途
Prowlerprowler_*必需Prowler Cloud、Private Cloud 和本地服务管理工具
Prowler Hubprowler_hub_*否安全检查目录
Prowler Docsprowler_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 工具

  1. 在 prowler_app/tools/ 中创建扩展 BaseTool 的工具类
  2. 在 prowler_app/models/ 中使用 MinimalSerializerMixin 创建模型
  3. 工具会通过 tool_loader.py 自动注册

QA 检查清单(Prowler 工具)

  • 工具文档字符串描述与 LLM 相关的行为
  • 模型使用 MinimalSerializerMixin
  • 将 API 响应转换为简化模型
  • 必须抛出失败,绝不返回失败。返回错误字典会被报告为成功。参数错误时抛出 InvalidArgument,让 ProwlerAPIError/ProwlerAPIUnreachable 向上传播;只有当 lib/errors.py 无法得知某句话时(资源名称、前置条件、接下来要调用的工具),才抛出不带 from 子句的 ToolError
  • 参数使用带描述的 Field()
  • 不硬编码密钥
  • 在 mcp_server/tests/ 下添加测试

资源

评论

支持 Markdown