prowler-mcp

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Overview

概述

The Prowler MCP Server uses three sub-servers with prefixed namespacing:
Sub-ServerPrefixAuthPurpose
Prowler App
prowler_app_*
RequiredCloud management tools
Prowler Hub
prowler_hub_*
NoSecurity checks catalog
Prowler Docs
prowler_docs_*
NoDocumentation search
For complete architecture, patterns, and examples, see docs/developer-guide/mcp-server.mdx.

Prowler MCP Server 使用三个带有前缀命名空间的子服务器:
子服务器前缀认证要求用途
Prowler App
prowler_app_*
需要云管理工具
Prowler Hub
prowler_hub_*
不需要安全检查目录
Prowler Docs
prowler_docs_*
不需要文档搜索
完整的架构、模式及示例,请查看 docs/developer-guide/mcp-server.mdx

Critical Rules (Prowler App Only)

关键规则(仅适用于Prowler App)

Tool Implementation

工具实现

  • ALWAYS: Extend
    BaseTool
    (auto-registered via
    tool_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
  • 必须:继承
    BaseTool
    (通过
    tool_loader.py
    自动注册,仅类中的公共方法会作为工具暴露)
  • 禁止:手动注册BaseTool的子类
  • 禁止:在server.py中直接导入工具

Models

模型

  • ALWAYS: Use
    MinimalSerializerMixin
    for 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
  • 必须:使用
    MinimalSerializerMixin
    处理响应
  • 必须:实现
    from_api_response()
    工厂方法
  • 必须:使用双层模型(列表用简化版,单个条目用详细版)
  • 禁止:返回原始API响应

API Client

API客户端

  • ALWAYS: Use
    self.api_client
    singleton
  • ALWAYS: Use
    build_filter_params()
    for query parameters
  • NEVER: Create new httpx clients

  • 必须:使用
    self.api_client
    单例
  • 必须:使用
    build_filter_params()
    构建查询参数
  • 禁止:创建新的httpx客户端

Hub/Docs Tools

Hub/Docs工具

Use
@mcp.tool()
decorator directly—no BaseTool or models required.

直接使用
@mcp.tool()
装饰器——无需BaseTool或模型。

Quick Reference: New Prowler App Tool

快速参考:新建Prowler App工具

  1. Create tool class in
    prowler_app/tools/
    extending
    BaseTool
  2. Create models in
    prowler_app/models/
    using
    MinimalSerializerMixin
  3. Tools auto-register via
    tool_loader.py

  1. prowler_app/tools/
    目录下创建继承自
    BaseTool
    的工具类
  2. prowler_app/models/
    目录下使用
    MinimalSerializerMixin
    创建模型
  3. 工具通过
    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
    Field()
    with descriptions
  • 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/获取工具和模型模板