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.

Ir a la instalación

Datos de origen

Repositorio
prowler-cloud/prowler
Última actividad en el origen
26 de agosto de 2026 a las 09:06
Idioma detectado de SKILL.md
inglés
Estrellas
14.842
Forks
2391

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
4 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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
Ver en GitHub