prowler-mcp_skill

This skill helps you implement Prowler MCP App tools by guiding BaseTool usage, MinimalSerializerMixin models, and API client patterns across the server.
  • Python

12.8k

GitHub Stars

1

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill prowler-cloud/prowler --skill prowler-mcp

  • SKILL.md2.5 KB

Overview

This skill documents how to create and maintain MCP tools for the Prowler MCP Server. It focuses on the Prowler App pattern: extending BaseTool, designing two-tier models with MinimalSerializerMixin, and using the shared API client. It highlights naming, registration, and QA expectations so new tools are consistent and safe.

How this skill works

When working in mcp_server/, the skill inspects tool classes in prowler_app/tools/, model definitions in prowler_app/models/, and API client usage across the app. It enforces that Prowler App tools extend BaseTool (auto-registered), responses use MinimalSerializerMixin and from_api_response(), and that the singleton self.api_client and build_filter_params() are used for requests. For Hub/Docs tools it expects use of the @mcp.tool() decorator without BaseTool or models.

When to use it

  • Adding a new cloud management tool under prowler_app/tools/
  • Creating list/detail models for API responses in prowler_app/models/
  • Refactoring raw API calls to the shared self.api_client singleton
  • Validating tool docstrings, parameter Field() descriptions, and error shapes
  • Implementing features that require auto-registration via tool_loader.py

Best practices

  • Always extend BaseTool for Prowler App tools; do not manually register classes
  • Model responses with MinimalSerializerMixin and implement from_api_response() factories
  • Use two-tier models: simplified models for lists and detailed models for single-item endpoints
  • Use self.api_client and build_filter_params() for every API call; never create new httpx clients
  • Return structured errors: {"error": str, "status": "failed"} and avoid leaking secrets
  • Keep tool public methods limited to intended surface; only public methods become tools

Example use cases

  • Create a new AWS IAM management tool class extending BaseTool that lists users with a Minimal list model
  • Add a detailed EC2 instance model with from_api_response() and a simplified list model for overview endpoints
  • Replace direct httpx usage with self.api_client and use build_filter_params() for query handling
  • Implement a Prowler Hub search tool using @mcp.tool() with no BaseTool or models
  • Run the QA checklist before merge: docstrings, Field() descriptions, model mixin, and error shape

FAQ

No. Hub and Docs tools should use the @mcp.tool() decorator directly and do not require BaseTool subclasses or model mixins.

What must models include for Prowler App responses?

Models must use MinimalSerializerMixin, provide a from_api_response() factory, and follow the two-tier pattern: simplified models for lists and detailed models for single items.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
prowler-mcp skill by prowler-cloud/prowler | VeilStrat