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,884
포크
2,402

설치 방법

기본적으로 소스를 먼저 확인하는 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에서 보기