Skip to main content
Glama
gensecaihq

pfSense MCP Server

by gensecaihq

pfSense MCP-Server

Version Lizenz MCP 2025-11-25 pfSense REST API Tests Tools

Verwalten Sie Ihre pfSense-Firewall mit natürlicher Sprache. 327 Tools. 9 Sicherheitsebenen. Ein Befehl zum Starten.

You: "Block all traffic from 203.0.113.5 on WAN"
Claude: Creates block rule → applies changes → confirms with rollback instructions

Der pfSense MCP-Server verbindet Claude Desktop, Claude Code und andere MCP-kompatible KI-Clients mit Ihrer pfSense-Firewall. Stellen Sie Fragen, diagnostizieren Sie Probleme und verwalten Sie Ihre Firewall – alles durch Konversation.

Warum gibt es dieses Projekt?

Die Verwaltung einer pfSense-Firewall bedeutet normalerweise, sich durch Web-UI-Tabs zu klicken, sich Feldnamen zu merken und zu hoffen, dass man nicht versehentlich eine Regel ändert, die einen aussperrt. Mit diesem MCP-Server beschreiben Sie Ihr Anliegen in einfachem Englisch, und die KI übernimmt die REST-API-Aufrufe, validiert Eingaben und warnt Sie, bevor etwas Destruktives geschieht.

Was es besonders macht:

  • Jeder destruktive Vorgang erfordert eine explizite Bestätigung und zeigt Ihnen genau, was passieren wird.

  • Automatisches Konfigurations-Backup vor jedem Löschvorgang/Neustart – mit einem einzeiligen Rollback-Befehl.

  • Ratenbegrenzung verhindert, dass KI-Schleifen Ihre Firewall mit Regeln überfluten.

  • Eingabesanitisierung blockiert Befehlsinjektionen, Pfad-Traversal und XSS in jedem Parameter.

Related MCP server: Firewalla MCP Server

Schnellstart

Voraussetzungen: Python 3.10+, pfSense mit installiertem REST API v2 Paket

git clone https://github.com/gensecaihq/pfsense-mcp-server.git
cd pfsense-mcp-server
pip install -r requirements.txt
cp .env.example .env
# Edit .env: set PFSENSE_URL, AUTH_METHOD, and credentials

Verbindung zu Claude Desktop herstellen – fügen Sie dies zu ~/Library/Application Support/Claude/claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "pfsense": {
      "command": "python3",
      "args": ["-m", "src.main"],
      "cwd": "/path/to/pfsense-mcp-server",
      "env": {
        "PFSENSE_URL": "https://192.168.1.1",
        "AUTH_METHOD": "basic",
        "PFSENSE_USERNAME": "admin",
        "PFSENSE_PASSWORD": "your-password",
        "PFSENSE_VERSION": "CE_2_8_0",
        "VERIFY_SSL": "false"
      }
    }
  }
}

Fangen Sie an, mit Ihrer Firewall zu sprechen. Öffnen Sie Claude Desktop und fragen Sie:

  • "Zeige mir den gesamten blockierten Datenverkehr der letzten Stunde"

  • "Welche Dienste laufen gerade?"

  • "Erstelle eine Portweiterleitung für Port 443 auf 192.168.1.50"

  • "Führe einen vollständigen System-Gesundheitscheck durch"

Was Sie tun können

327 Tools für jedes wichtige pfSense-Subsystem:

Bereich

Tools

Was Sie tun können

Firewall-Regeln

9

Regeln erstellen, aktualisieren, löschen, neu anordnen. IPs massenhaft blockieren. Kompilierte pf-Regelsätze anzeigen.

Aliase

5

Host-/Netzwerk-/Port-/URL-Aliase verwalten. Adressen hinzufügen und entfernen.

NAT

16

Portweiterleitungen, ausgehendes NAT, 1:1 NAT – vollständiges Lebenszyklusmanagement.

VPN

51

OpenVPN-Server und -Clients, IPsec-Tunnel, WireGuard-Peers – CRUD, Status, Anwenden.

Routing

16

Gateways, Gateway-Gruppen, statische Routen, Standard-Gateway-Verwaltung.

DNS

24

Unbound Resolver und dnsmasq Forwarder: Host-Overrides, Domain-Overrides, Zugriffslisten.

DHCP

17

Leases, statische Mappings, Adresspools, benutzerdefinierte Optionen, Serverkonfiguration.

Zertifikate

15

Zertifikate, CAs, CRLs – generieren, erneuern, PKCS12 exportieren.

Benutzer

12

Benutzerkonten, Gruppen, LDAP/RADIUS-Authentifizierungsserver-Konfiguration.

Schnittstellen

14

Schnittstellenkonfiguration, VLANs, Bridges, Gruppen.

System

44

Status, Einstellungen, Diagnose, Konfigurationsverlauf, Neustart, Ping.

Dienste

14

Dienste starten/stoppen/neu starten. NTP, Cron, SSH, Service-Watchdog.

Protokolle

3

Firewall-Protokollanalyse mit geparsten IPv4/IPv6-Filterlog-Daten.

Traffic Shaping

12

Shaper, Queues und Limiter für Bandbreitenmanagement.

Zeitpläne

8

Zeitbasierte Planung von Firewall-Regeln.

Virtuelle IPs

5

CARP, ProxyARP und IP-Alias-Verwaltung.

Fehlerbehebung

10

Konnektivität, blockierten Datenverkehr, VPN, DHCP, DNS, HA diagnostizieren. Vollständiger Gesundheitsbericht.

Pakete

43

HAProxy, ACME/Let's Encrypt, BIND DNS, FreeRADIUS.

Dienstprogramm

9

HATEOAS-Navigation, Objekt-ID-Verwaltung, Status der Schutzmechanismen.

Sicherheit zuerst

Eine KI, die eine Produktions-Firewall verwaltet, benötigt Schutzmechanismen. Dieser Server verfügt über 9 Ebenen:

"Delete firewall rule 5"

  1. CLASSIFY    → HIGH risk (destructive)
  2. ALLOWLIST   → tool is permitted
  3. SANITIZE    → parameters clean (no injection)
  4. RATE LIMIT  → under 10 deletes/minute
  5. DRY RUN?    → user can preview first
  6. CONFIRM     → blocked until confirm=True
  7. BACKUP      → config revision captured
  8. EXECUTE     → API call made
  9. AUDIT LOG   → action recorded with redacted params

Response includes:
  "config_backup": {
    "pre_change_revision_id": 42,
    "rollback_instruction": "restore_config_backup(revision_id=42, confirm=True)"
  }

Jeder destruktive Vorgang (52 Lösch-/Neustart-/Halt-Tools) erfordert confirm=True. Jeder Erstellungs- und Aktualisierungsvorgang (112 Tools) ist ratenbegrenzt und bereinigt. Jeder sensible Parameter (Passwörter, Schlüssel, Token) wird in Protokollen und Ausgaben geschwärzt.

Sie können außerdem:

  • dry_run=True übergeben, um jeden destruktiven Vorgang vorab zu prüfen, ohne ihn auszuführen.

  • verify_descr="Allow HTTPS" übergeben, um sicherzustellen, dass Sie die richtige Regel löschen (schützt vor ID-Verschiebungen).

  • MCP_READ_ONLY=true setzen, um nur die 118 schreibgeschützten Tools (Suche, Abruf, Diagnose) freizugeben.

  • MCP_ALLOWED_TOOLS=search_firewall_rules,get_firewall_log setzen, um den Zugriff auf bestimmte Tools zu beschränken.

Unterstützte pfSense-Versionen

Version

REST API

Status

pfSense CE 2.8.1

v2.7.3

Verifiziert

pfSense Plus 25.11

v2.7.3

Verifiziert

pfSense CE 2.8.0

v2.6.0+

Unterstützt

pfSense Plus 24.11

v2.6.0+

Unterstützt

Erfordert das pfSense REST API v2 Paket von jaredhendrickson13.

Authentifizierung

Drei Methoden werden unterstützt (Konfiguration in .env):

Methode

Konfiguration

Am besten geeignet für

Basic Auth

AUTH_METHOD=basic + Benutzername/Passwort

Schnelle Einrichtung, lokale Benutzer

API Key

AUTH_METHOD=api_key + Schlüssel aus System > REST API > Keys

Automatisierung, Dienstkonten

JWT

AUTH_METHOD=jwt + Benutzername/Passwort

Kurzlebige Token, automatische Aktualisierung

Bereitstellungsoptionen

stdio (Standard) – für Claude Desktop und Claude Code:

python3 -m src.main

HTTP – für Fernzugriff und Multi-Client-Setups:

python3 -m src.main -t streamable-http --port 3000

Docker – gehärteter Container mit schreibgeschütztem Dateisystem:

docker compose up

Container-Sicherheit: Nicht-Root-Benutzer (mcp:1000), schreibgeschütztes Dateisystem, alle Capabilities entfernt, noexec tmpfs, no-new-privileges.

Konfiguration

Variable

Erforderlich

Standard

Beschreibung

PFSENSE_URL

Ja

pfSense URL (z. B. https://192.168.1.1)

AUTH_METHOD

api_key

api_key, basic oder jwt

PFSENSE_API_KEY

*

REST API Schlüssel

PFSENSE_USERNAME

*

pfSense Benutzername (für basic/jwt)

PFSENSE_PASSWORD

*

pfSense Passwort (für basic/jwt)

PFSENSE_VERSION

CE_2_8_0

CE_2_8_0, CE_2_8_1, CE_26_03, PLUS_24_11, PLUS_25_11

VERIFY_SSL

true

false für selbstsignierte Zertifikate

API_TIMEOUT

30

Anfrage-Timeout in Sekunden

MCP_READ_ONLY

false

Nur schreibgeschützte Tools freigeben

Variable

Standard

Beschreibung

ENABLE_HATEOAS

false

HATEOAS-Links in API-Antworten aktivieren

LOG_LEVEL

INFO

DEBUG, INFO, WARNING, ERROR

MCP_TRANSPORT

stdio

stdio oder streamable-http

MCP_HOST

127.0.0.1

Bind-Adresse für HTTP-Modus

MCP_PORT

3000

Port für HTTP-Modus

MCP_API_KEY

Bearer-Token für HTTP-Transport (erforderlich)

MCP_ALLOWED_ORIGINS

localhost

Kommagetrennte erlaubte Ursprünge

MCP_AUDIT_LOG

Pfad zur Audit-Log-Datei (JSON-Zeilen)

MCP_RATE_LIMIT_DELETE

10

Maximale Löschvorgänge pro 60 Sekunden

MCP_RATE_LIMIT_CREATE

20

Maximale Erstellungen pro 60 Sekunden

MCP_RATE_LIMIT_CRITICAL

2

Maximale kritische Vorgänge pro 300 Sekunden

MCP_ALLOWED_TOOLS

all

Kommagetrennte Tool-Whitelist

MCP_ROLLBACK_BUFFER

50

Im Speicher gehaltene Rollback-Einträge

Testen

python3 -m pytest tests/ -v          # 308 tests
python3 -m pytest tests/ --cov=src   # with coverage

Einhaltung der MCP-Spezifikation

Konform mit MCP 2025-11-25 (aktuell):

  • ToolAnnotations für alle 327 Tools (readOnlyHint, destructiveHint, idempotentHint)

  • serverInfo.version und instructions bereitgestellt

  • Validierung des Origin-Headers (MUSS-Anforderung)

  • Bearer-Token-Authentifizierung mit zeitlich sicherem Vergleich

  • Standard-Bindung an localhost gemäß Spezifikation (SHOULD)

  • stdio- und Streamable-HTTP-Transporte

Projektstruktur

src/
  main.py              Entry point
  server.py            FastMCP instance + API client
  client.py            pfSense REST API v2 HTTP client
  guardrails.py        9-layer defense-in-depth system
  helpers.py           Validation, parsing, safety guards
  models.py            Data models
  middleware.py        HTTP auth + Origin validation
  tools/               34 tool modules (327 tools)
tests/                 308 tests

Mitwirken

Wir benötigen Tests in realen, vielfältigen pfSense-Umgebungen. Siehe CONTRIBUTING oder:

  1. Forken Sie das Projekt und erstellen Sie einen Feature-Branch

  2. Führen Sie python3 -m pytest tests/ -v aus

  3. Reichen Sie einen PR ein

Ideen: Integrationstests gegen echte pfSense-Instanzen, zusätzliche Paketunterstützung (Snort, Suricata), Ollama lokale LLM-Brücke, Multi-Instanz-Verwaltung.

Lizenz

MIT

Danksagungen

Install Server
A
license - permissive license
B
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    A server that enables managing OPNSense firewalls through natural language interactions with Claude Desktop, supporting VLAN management, firewall rules configuration, and network interface queries.
    64
    148
    75
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A production-ready server that connects Claude Desktop to Firewalla network management capabilities, allowing users to monitor devices, analyze network traffic, manage security alerts, and configure firewall rules through natural language.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language interaction and management of pfSense firewalls through Claude and other GenAI applications using the Model Context Protocol. It provides advanced tools for firewall rule configuration, interface management, and intelligent log analysis via a REST API integration.
    1
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    An AI-powered penetration testing server that integrates over 30 security tools with Groq LLM analysis for automated vulnerability scanning, triage, and reporting. It enables users to perform comprehensive security assessments through natural language natively within Claude Desktop.
    29
    MIT

View all related MCP servers

Related MCP Connectors

  • Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.

  • GibsonAI MCP server: manage your databases with natural language

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gensecaihq/pfsense-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server