Skip to main content

An MCP exposing prompts and tools to help users write WAF rules, scenarios etc.

Project description

CrowdSec

Life is too short to write YAML, just ask nicely!

A Model Context Protocol (MCP) server to generate, validate, and deploy CrowdSec WAF rules & Scenarios.

Features

WAF Rules Features

  • WAF Rule Generation: Generate CrowdSec WAF rules from user input or a CVE reference
  • Validation: Validate syntaxical correctness of WAF rules
  • Linting: Get warnings and hints to improve your WAF rules
  • Deployment Guide: Step-by-step deployment instructions
  • Docker Test Harness: Spin up CrowdSec + nginx + bouncer to exercise rules for false positives/negatives
  • Nuclei Lookup: Quickly jump to existing templates in the official projectdiscovery/nuclei-templates repository for a given CVE

Scenarios Features

  • CrowdSec Scenarios Generation: Generate CrowdSec scenarios
  • Validation: Validate syntaxical correctness of scenarios
  • Linting: Get warnings and hints to improve your scenarios
  • Deployment Guide: Step-by-step deployment instructions
  • Docker Test Harness: Spin up CrowdSec to test scenario behavior

Demo

WAF Rules Creation and testing

Scenario Creation and testing

Prerequisites

  • uv 0.4 or newer, which provides the uvx runner used in the examples below.
  • Docker with the Compose plugin (Compose v2).

Installation

You can install the MCP using uvx or use packaged .mcpb file for claude code.

Using .mcpb package

If you're using claude desktop, you can configure the MCP directly by double-clicking the .mcpb file that accompanies the release.

[!IMPORTANT] On MacOS, configure uv path in the extension settings if uv isn't installed in the standard path.

Using uvx

  • Configure supported clients automatically with uvx --from crowdsec-local-mcp init <client>, where <client> is one of claude-desktop, claude-code, chatgpt, vscode, or stdio:
uvx --from crowdsec-local-mcp init --dry-run claude-code

Run uvx --from crowdsec-local-mcp init --help to see all flags and supported targets.

What init configures

The init helper writes the CrowdSec MCP server definition into the client’s JSON configuration:

  • claude-desktopclaude_desktop_config.json in the Claude Desktop settings directory
  • claude-code → invoke claude mcp command with needed args
  • chatgptconfig.json in the ChatGPT Desktop settings directory
  • vscodemcp.json for VS Code (stable and insiders are both detected)

If the client's configuration file already exists, a .bak backup is created before the MCP server block is updated. When the file is missing you can either pass --force to create it, or point --config-path to a custom location. Combine --dry-run with these options to preview the JSON without making any changes.

By default the CLI launches the server with uvx --from crowdsec-local-mcp crowdsec-mcp. If neither uvx nor uv is available, it falls back to your current Python interpreter; you can override the executable with --command and the working directory with --cwd.

Using the stdio target

stdio does not modify any files. Instead, init stdio prints a ready-to-paste JSON snippet that you can drop into any stdio-compatible MCP client configuration. This is useful when you want to manually wire the server into tools that do not have built-in automation support yet.

Troubleshooting

If you just installed the mcp extension via .mcpb and uv or uvx isn't in the standard path, check the extension settings to configure uv path.

Logging

  • The MCP server writes its log file to your operating system's temporary directory. On Linux/macOS this is typically /tmp/crowdsec-mcp.log; on Windows it resolves via %TEMP%\crowdsec-mcp.log.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crowdsec_local_mcp-0.8.0.post1.dev0.tar.gz (211.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crowdsec_local_mcp-0.8.0.post1.dev0-py3-none-any.whl (71.6 kB view details)

Uploaded Python 3

File details

Details for the file crowdsec_local_mcp-0.8.0.post1.dev0.tar.gz.

File metadata

  • Download URL: crowdsec_local_mcp-0.8.0.post1.dev0.tar.gz
  • Upload date:
  • Size: 211.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crowdsec_local_mcp-0.8.0.post1.dev0.tar.gz
Algorithm Hash digest
SHA256 1076e10453b80c6822a6a864b0a7b372c9a0de8b44bc38fdbeb29f3d3690bf64
MD5 1c3593b8534512019d8d84c54aa6ead6
BLAKE2b-256 787a95a2db59bf266bb7f880541d89763828288b259d334de0366d50321a8b33

See more details on using hashes here.

File details

Details for the file crowdsec_local_mcp-0.8.0.post1.dev0-py3-none-any.whl.

File metadata

  • Download URL: crowdsec_local_mcp-0.8.0.post1.dev0-py3-none-any.whl
  • Upload date:
  • Size: 71.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crowdsec_local_mcp-0.8.0.post1.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f08e6f5cb2b758f1f323636378cb8338176124a92341752d1e2782d60a496d5
MD5 b76ca531c72837d516a8154c994e0019
BLAKE2b-256 68f1e70feeb7ebae30692a2a505b4699b27c6c5d8e81c35f5dfe9e44f7a57259

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page