pfSense MCP Server
pfSense MCP-Server
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 instructionsDer 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 credentialsVerbindung 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=truesetzen, um nur die 118 schreibgeschützten Tools (Suche, Abruf, Diagnose) freizugeben.MCP_ALLOWED_TOOLS=search_firewall_rules,get_firewall_logsetzen, um den Zugriff auf bestimmte Tools zu beschränken.
Unterstützte pfSense-Versionen
Version | REST API | Status |
pfSense CE 2.8.1 | Verifiziert | |
pfSense Plus 25.11 | 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 |
| Schnelle Einrichtung, lokale Benutzer |
API Key |
| Automatisierung, Dienstkonten |
JWT |
| Kurzlebige Token, automatische Aktualisierung |
Bereitstellungsoptionen
stdio (Standard) – für Claude Desktop und Claude Code:
python3 -m src.mainHTTP – für Fernzugriff und Multi-Client-Setups:
python3 -m src.main -t streamable-http --port 3000Docker – gehärteter Container mit schreibgeschütztem Dateisystem:
docker compose upContainer-Sicherheit: Nicht-Root-Benutzer (mcp:1000), schreibgeschütztes Dateisystem, alle Capabilities entfernt, noexec tmpfs, no-new-privileges.
Konfiguration
Variable | Erforderlich | Standard | Beschreibung |
| Ja | — | pfSense URL (z. B. |
|
|
| |
| * | — | REST API Schlüssel |
| * | — | pfSense Benutzername (für basic/jwt) |
| * | — | pfSense Passwort (für basic/jwt) |
|
|
| |
|
|
| |
|
| Anfrage-Timeout in Sekunden | |
|
| Nur schreibgeschützte Tools freigeben |
Variable | Standard | Beschreibung |
|
| HATEOAS-Links in API-Antworten aktivieren |
|
|
|
|
|
|
|
| Bind-Adresse für HTTP-Modus |
|
| Port für HTTP-Modus |
| — | Bearer-Token für HTTP-Transport (erforderlich) |
| localhost | Kommagetrennte erlaubte Ursprünge |
| — | Pfad zur Audit-Log-Datei (JSON-Zeilen) |
|
| Maximale Löschvorgänge pro 60 Sekunden |
|
| Maximale Erstellungen pro 60 Sekunden |
|
| Maximale kritische Vorgänge pro 300 Sekunden |
| all | Kommagetrennte Tool-Whitelist |
|
| Im Speicher gehaltene Rollback-Einträge |
Testen
python3 -m pytest tests/ -v # 308 tests
python3 -m pytest tests/ --cov=src # with coverageEinhaltung der MCP-Spezifikation
Konform mit MCP 2025-11-25 (aktuell):
ToolAnnotationsfür alle 327 Tools (readOnlyHint, destructiveHint, idempotentHint)serverInfo.versionundinstructionsbereitgestelltValidierung 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 testsMitwirken
Wir benötigen Tests in realen, vielfältigen pfSense-Umgebungen. Siehe CONTRIBUTING oder:
Forken Sie das Projekt und erstellen Sie einen Feature-Branch
Führen Sie
python3 -m pytest tests/ -vausReichen 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
Danksagungen
jaredhendrickson13 / pfrest — pfSense REST API v2 Paket
JeremiahChurch — modularer Rewrite (PR #5)
shawnpetersen — API v2 Endpunkt-Erkennung (PR #3)
Netgate — pfSense
FastMCP — MCP-Framework
Maintenance
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
- AlicenseCqualityBmaintenanceA server that enables managing OPNSense firewalls through natural language interactions with Claude Desktop, supporting VLAN management, firewall rules configuration, and network interface queries.6414875MIT
- -licenseNot gradedqualityNot gradedmaintenanceA 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.
- AlicenseNot gradedqualityDmaintenanceEnables 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.1MIT
- AlicenseCqualityCmaintenanceAn 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.29MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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