Skip to main content
Glama
gensecaihq

pfSense MCP Server

by gensecaihq

Servidor MCP de pfSense

Versión Licencia MCP 2025-11-25 API REST de pfSense Pruebas Herramientas

Administra tu firewall pfSense con lenguaje natural. 327 herramientas. 9 capas de seguridad. Un comando para empezar.

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

El servidor MCP de pfSense conecta Claude Desktop, Claude Code y otros clientes de IA compatibles con MCP a tu firewall pfSense. Haz preguntas, diagnostica problemas y administra tu firewall, todo a través de una conversación.

Por qué existe esto

Administrar un firewall pfSense significa hacer clic a través de pestañas de la interfaz web, recordar nombres de campos y esperar no cometer un error al escribir una regla que te bloquee el acceso. Con este servidor MCP, describes lo que quieres en inglés sencillo y la IA maneja las llamadas a la API REST, valida las entradas y te advierte antes de que ocurra algo destructivo.

Lo que lo hace diferente:

  • Cada operación destructiva requiere confirmación explícita y te muestra exactamente qué sucederá

  • Copia de seguridad automática de la configuración antes de cada eliminación/reinicio, con un comando de reversión de una sola línea

  • La limitación de tasa (rate limiting) evita que los bucles de IA descontrolados inunden tu firewall con reglas

  • La sanitización de entradas bloquea la inyección de comandos, el recorrido de rutas y XSS en cada parámetro

Related MCP server: Firewalla MCP Server

Inicio rápido

Requisitos previos: Python 3.10+, pfSense con el paquete REST API v2 instalado

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

Conectar a Claude Desktop — añade a ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "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"
      }
    }
  }
}

Empieza a hablar con tu firewall. Abre Claude Desktop y pregunta:

  • "Muéstrame todo el tráfico bloqueado en la última hora"

  • "¿Qué servicios están ejecutándose?"

  • "Crea un reenvío de puerto para el puerto 443 al 192.168.1.50"

  • "Ejecuta una comprobación completa del estado del sistema"

Qué puedes hacer

327 herramientas en todos los subsistemas principales de pfSense:

Dominio

Herramientas

Qué puedes hacer

Reglas de Firewall

9

Crear, actualizar, eliminar, reordenar reglas. Bloquear IPs masivamente. Ver conjunto de reglas pf compilado.

Alias

5

Administrar alias de host/red/puerto/URL. Añadir y eliminar direcciones.

NAT

16

Reenvío de puertos, NAT saliente, NAT 1:1 — gestión completa del ciclo de vida.

VPN

51

Servidores y clientes OpenVPN, túneles IPsec, pares WireGuard — CRUD, estado, aplicar.

Enrutamiento

16

Gateways, grupos de gateways, rutas estáticas, gestión de gateway predeterminado.

DNS

24

Resolutor Unbound y reenviador dnsmasq: anulaciones de host, anulaciones de dominio, listas de acceso.

DHCP

17

Arrendamientos, asignaciones estáticas, grupos de direcciones, opciones personalizadas, configuración del servidor.

Certificados

15

Certificados, CAs, CRLs — generar, renovar, exportar PKCS12.

Usuarios

12

Cuentas de usuario, grupos, configuración del servidor de autenticación LDAP/RADIUS.

Interfaces

14

Configuración de interfaz, VLANs, puentes, grupos.

Sistema

44

Estado, ajustes, diagnósticos, historial de configuración, reinicio, ping.

Servicios

14

Iniciar/detener/reiniciar servicios. NTP, cron, SSH, watchdog de servicios.

Registros

3

Análisis de registros del firewall con datos de filterlog IPv4/IPv6 analizados.

Modelado de tráfico

12

Modeladores, colas y limitadores para la gestión del ancho de banda.

Programaciones

8

Programación de reglas de firewall basadas en tiempo.

IPs Virtuales

5

Gestión de CARP, ProxyARP e IP Alias.

Solución de problemas

10

Diagnosticar conectividad, tráfico bloqueado, VPN, DHCP, DNS, HA. Informe de salud completo.

Paquetes

43

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

Utilidad

9

Navegación HATEOAS, gestión de ID de objetos, estado de barreras de seguridad.

La seguridad es lo primero

La IA que gestiona un firewall de producción necesita barreras de seguridad. Este servidor tiene 9 capas:

"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)"
  }

Cada operación destructiva (52 herramientas de eliminar/reiniciar/detener) requiere confirm=True. Cada operación de creación y actualización (112 herramientas) está limitada en tasa y sanitizada. Cada parámetro sensible (contraseñas, claves, tokens) se redacta en los registros y salidas.

También puedes:

  • Pasar dry_run=True para previsualizar cualquier operación destructiva sin ejecutarla

  • Pasar verify_descr="Allow HTTPS" para verificar que estás eliminando la regla correcta (protege contra cambios de ID)

  • Establecer MCP_READ_ONLY=true para exponer solo 118 herramientas de solo lectura (buscar, obtener, diagnosticar)

  • Establecer MCP_ALLOWED_TOOLS=search_firewall_rules,get_firewall_log para restringir a herramientas específicas

Versiones de pfSense soportadas

Versión

API REST

Estado

pfSense CE 2.8.1

v2.7.3

Verificado

pfSense Plus 25.11

v2.7.3

Verificado

pfSense CE 2.8.0

v2.6.0+

Soportado

pfSense Plus 24.11

v2.6.0+

Soportado

Requiere el paquete pfSense REST API v2 de jaredhendrickson13.

Autenticación

Tres métodos soportados (configurar en .env):

Método

Configuración

Mejor para

Autenticación Básica

AUTH_METHOD=basic + usuario/contraseña

Configuración rápida, usuarios locales

Clave API

AUTH_METHOD=api_key + clave desde Sistema > REST API > Keys

Automatización, cuentas de servicio

JWT

AUTH_METHOD=jwt + usuario/contraseña

Tokens de corta duración, auto-actualización

Opciones de despliegue

stdio (predeterminado) — para Claude Desktop y Claude Code:

python3 -m src.main

HTTP — para acceso remoto y configuraciones multi-cliente:

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

Docker — contenedor endurecido con sistema de archivos de solo lectura:

docker compose up

Seguridad del contenedor: usuario no root (mcp:1000), sistema de archivos de solo lectura, todas las capacidades eliminadas, tmpfs noexec, no-new-privileges.

Configuración

Variable

Requerido

Predeterminado

Descripción

PFSENSE_URL

URL de pfSense (ej. https://192.168.1.1)

AUTH_METHOD

api_key

api_key, basic, o jwt

PFSENSE_API_KEY

*

Clave de API REST

PFSENSE_USERNAME

*

Usuario de pfSense (para basic/jwt)

PFSENSE_PASSWORD

*

Contraseña de pfSense (para 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 para certificados autofirmados

API_TIMEOUT

30

Tiempo de espera de solicitud en segundos

MCP_READ_ONLY

false

Exponer solo herramientas de solo lectura

Variable

Predeterminado

Descripción

ENABLE_HATEOAS

false

Habilitar enlaces HATEOAS en respuestas de API

LOG_LEVEL

INFO

DEBUG, INFO, WARNING, ERROR

MCP_TRANSPORT

stdio

stdio o streamable-http

MCP_HOST

127.0.0.1

Dirección de enlace para modo HTTP

MCP_PORT

3000

Puerto para modo HTTP

MCP_API_KEY

Token Bearer para transporte HTTP (requerido)

MCP_ALLOWED_ORIGINS

localhost

Orígenes permitidos separados por comas

MCP_AUDIT_LOG

Ruta al archivo de registro de auditoría (líneas JSON)

MCP_RATE_LIMIT_DELETE

10

Máximo de eliminaciones por 60 segundos

MCP_RATE_LIMIT_CREATE

20

Máximo de creaciones por 60 segundos

MCP_RATE_LIMIT_CRITICAL

2

Máximo de operaciones críticas por 300 segundos

MCP_ALLOWED_TOOLS

all

Lista de permitidos de herramientas separada por comas

MCP_ROLLBACK_BUFFER

50

Entradas de reversión mantenidas en memoria

Pruebas

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

Cumplimiento de la especificación MCP

Cumple con MCP 2025-11-25 (más reciente):

  • ToolAnnotations en las 327 herramientas (readOnlyHint, destructiveHint, idempotentHint)

  • serverInfo.version e instructions proporcionados

  • Validación de encabezado de origen (requisito MUST)

  • Autenticación de token Bearer con comparación segura contra temporización

  • Enlace predeterminado a localhost según la especificación SHOULD

  • Transportes stdio y Streamable HTTP

Estructura del proyecto

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

Contribución

Necesitamos pruebas en el mundo real en diversos entornos pfSense. Consulta CONTRIBUTING o:

  1. Haz un fork y crea una rama de características

  2. Ejecuta python3 -m pytest tests/ -v

  3. Envía un PR

Ideas: pruebas de integración contra pfSense real, soporte adicional de paquetes (Snort, Suricata), puente LLM local Ollama, gestión de múltiples instancias.

Licencia

MIT

Reconocimientos

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