Skip to main content

prowler-mcp

Creates MCP tools for Prowler MCP Server. Covers BaseTool pattern, model design, and API client usage. Trigger: When working in mcp_server/ on tools (BaseTool), models (MinimalSerializerMixin/from_api_response), or API client patterns.

跳到安装

来源信息

仓库
prowler-cloud/prowler
最近来源活动
2026年8月26日 09:06
检测到的 SKILL.md 语言
英语
星标
14,842
分支
2,391

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
4 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
prowler-mcp
description
Creates MCP tools for Prowler MCP Server. Covers BaseTool pattern, model design, and API client usage. Trigger: When working in mcp_server/ on tools (BaseTool), models (MinimalSerializerMixin/from_api_response), or API client patterns.
license
Apache-2.0
metadata
{"author":"prowler-cloud","version":"1.0","scope":["root","mcp_server"],"auto_invoke":"Working on MCP server tools"}
allowed-tools
Read, Edit, Write, Glob, Grep, Bash, WebFetch, WebSearch, Task
## Overview The Prowler MCP Server uses three sub-servers with prefixed namespacing: | Sub-Server | Prefix | Auth | Purpose | |------------|--------|------|---------| | Prowler | `prowler_*` | Required | Prowler Cloud, Private Cloud & Local Server management tools | | Prowler Hub | `prowler_hub_*` | No | Security checks catalog | | Prowler Docs | `prowler_docs_*` | No | Documentation search | For complete architecture, patterns, and examples, see [docs/developer-guide/mcp-server.mdx](../../../docs/developer-guide/mcp-server.mdx). --- ## Critical Rules (Prowler Tools Only) ### 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 ### 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 ### API Client - **ALWAYS**: Use `self.api_client` singleton - **ALWAYS**: Use `build_filter_params()` for query parameters - **NEVER**: Create new httpx clients --- ## Hub/Docs Tools Use `@mcp.tool()` decorator directly—no BaseTool or models required. --- ## Quick Reference: New Prowler Tool 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` --- ## QA Checklist (Prowler Tools) - [ ] Tool docstrings describe LLM-relevant behavior - [ ] Models use `MinimalSerializerMixin` - [ ] API responses transformed to simplified models - [ ] Failures are **raised**, never returned. A returned error dict is reported as a success. Raise `InvalidArgument` for a bad argument, let `ProwlerAPIError`/`ProwlerAPIUnreachable` propagate, and raise `ToolError` **without a `from` clause** only for a sentence `lib/errors.py` cannot know (a resource name, a precondition, the next tool to call) - [ ] Parameters use `Field()` with descriptions - [ ] No hardcoded secrets - [ ] Tests added under `mcp_server/tests/` --- ## Resources - **Full Guide**: [docs/developer-guide/mcp-server.mdx](../../docs/developer-guide/mcp-server.mdx) - **Templates**: See [assets/](assets/) for tool and model templates - **Testing**: See [prowler-test-mcp](../prowler-test-mcp/SKILL.md) for fixtures and test patterns
在 GitHub 查看