Skip to main content
Glama
gensecaihq

pfSense MCP Server

by gensecaihq

pfSense MCP 服务器

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

用自然语言管理您的 pfSense 防火墙。327 个工具。9 层安全防护。一条命令即可启动。

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

pfSense MCP 服务器将 Claude DesktopClaude Code 以及其他 MCP 兼容的 AI 客户端连接到您的 pfSense 防火墙。通过对话即可提问、诊断问题并管理您的防火墙。

为什么需要它

管理 pfSense 防火墙意味着要在 Web UI 选项卡中不断点击、记忆字段名称,并祈祷不会因为手误而配置了导致自己被锁在门外的规则。有了这个 MCP 服务器,您只需用简单的英语描述您的需求,AI 就会处理 REST API 调用、验证输入,并在执行任何破坏性操作前向您发出警告。

它的独特之处:

  • 每一个破坏性操作都需要明确确认,并会向您展示具体会发生什么

  • 在每次删除/重启前自动备份配置 — 并提供一行命令回滚

  • 速率限制可防止失控的 AI 循环用规则淹没您的防火墙

  • 输入清理功能可阻止每个参数中的命令注入、路径遍历和 XSS 攻击

Related MCP server: Firewalla MCP Server

快速入门

先决条件: Python 3.10+,已安装 REST API v2 软件包 的 pfSense

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

连接到 Claude Desktop — 添加到 ~/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"
      }
    }
  }
}

开始与您的防火墙对话。 打开 Claude Desktop 并询问:

  • "Show me all blocked traffic in the last hour" (显示过去一小时内所有被阻止的流量)

  • "What services are running?" (哪些服务正在运行?)

  • "Create a port forward for port 443 to 192.168.1.50" (创建一个将 443 端口转发到 192.168.1.50 的端口转发规则)

  • "Run a full system health check" (运行完整的系统健康检查)

您可以做什么

涵盖所有主要 pfSense 子系统的 327 个工具:

领域

工具数

您可以做什么

防火墙规则

9

创建、更新、删除、重新排序规则。批量阻止 IP。查看已编译的 pf 规则集。

别名

5

管理主机/网络/端口/URL 别名。添加和删除地址。

NAT

16

端口转发、出站 NAT、1:1 NAT — 全生命周期管理。

VPN

51

OpenVPN 服务器和客户端、IPsec 隧道、WireGuard 对等点 — CRUD、状态、应用。

路由

16

网关、网关组、静态路由、默认网关管理。

DNS

24

Unbound 解析器和 dnsmasq 转发器:主机覆盖、域覆盖、访问列表。

DHCP

17

租约、静态映射、地址池、自定义选项、服务器配置。

证书

15

证书、CA、CRL — 生成、续订、导出 PKCS12。

用户

12

用户账户、组、LDAP/RADIUS 认证服务器配置。

接口

14

接口配置、VLAN、网桥、组。

系统

44

状态、设置、诊断、配置历史、重启、ping。

服务

14

启动/停止/重启服务。NTP、cron、SSH、服务看门狗。

日志

3

使用解析后的 IPv4/IPv6 filterlog 数据进行防火墙日志分析。

流量整形

12

用于带宽管理的整形器、队列和限制器。

计划任务

8

基于时间的防火墙规则调度。

虚拟 IP

5

CARP、ProxyARP 和 IP 别名管理。

故障排除

10

诊断连接性、被阻止的流量、VPN、DHCP、DNS、HA。完整的健康报告。

软件包

43

HAProxy、ACME/Let's Encrypt、BIND DNS、FreeRADIUS。

实用工具

9

HATEOAS 导航、对象 ID 管理、护栏状态。

安全第一

AI 管理生产环境防火墙需要护栏。此服务器具有 9 层防护:

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

每一个破坏性操作(52 个删除/重启/停止工具)都需要 confirm=True每一个创建和更新操作(112 个工具)都经过速率限制和清理。每一个敏感参数(密码、密钥、令牌)在日志和输出中都会被屏蔽。

您还可以:

  • 传递 dry_run=True 以在不执行的情况下预览任何破坏性操作

  • 传递 verify_descr="Allow HTTPS" 以验证您删除的是正确的规则(防止 ID 偏移)

  • 设置 MCP_READ_ONLY=true 以仅公开 118 个只读工具(搜索、获取、诊断)

  • 设置 MCP_ALLOWED_TOOLS=search_firewall_rules,get_firewall_log 以限制为特定工具

支持的 pfSense 版本

版本

REST API

状态

pfSense CE 2.8.1

v2.7.3

已验证

pfSense Plus 25.11

v2.7.3

已验证

pfSense CE 2.8.0

v2.6.0+

支持

pfSense Plus 24.11

v2.6.0+

支持

需要 jaredhendrickson13 开发的 pfSense REST API v2 软件包

身份验证

支持三种方法(在 .env 中配置):

方法

配置

适用场景

基本认证

AUTH_METHOD=basic + 用户名/密码

快速设置,本地用户

API 密钥

AUTH_METHOD=api_key + 系统 > REST API > 密钥中的密钥

自动化,服务账户

JWT

AUTH_METHOD=jwt + 用户名/密码

短期令牌,自动刷新

部署选项

stdio(默认) — 用于 Claude Desktop 和 Claude Code:

python3 -m src.main

HTTP — 用于远程访问和多客户端设置:

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

Docker — 具有只读文件系统的加固容器:

docker compose up

容器安全:非 root 用户 (mcp:1000),只读文件系统,丢弃所有能力,noexec tmpfs,no-new-privileges

配置

变量

必需

默认

描述

PFSENSE_URL

pfSense URL (例如 https://192.168.1.1)

AUTH_METHOD

api_key

api_key, basic, 或 jwt

PFSENSE_API_KEY

*

REST API 密钥

PFSENSE_USERNAME

*

pfSense 用户名 (用于 basic/jwt)

PFSENSE_PASSWORD

*

pfSense 密码 (用于 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

API_TIMEOUT

30

请求超时时间(秒)

MCP_READ_ONLY

false

仅公开只读工具

变量

默认

描述

ENABLE_HATEOAS

false

在 API 响应中启用 HATEOAS 链接

LOG_LEVEL

INFO

DEBUG, INFO, WARNING, ERROR

MCP_TRANSPORT

stdio

stdiostreamable-http

MCP_HOST

127.0.0.1

HTTP 模式的绑定地址

MCP_PORT

3000

HTTP 模式的端口

MCP_API_KEY

HTTP 传输的 Bearer 令牌(必需)

MCP_ALLOWED_ORIGINS

localhost

逗号分隔的允许来源

MCP_AUDIT_LOG

审计日志文件路径 (JSON lines)

MCP_RATE_LIMIT_DELETE

10

每 60 秒最大删除次数

MCP_RATE_LIMIT_CREATE

20

每 60 秒最大创建次数

MCP_RATE_LIMIT_CRITICAL

2

每 300 秒最大关键操作次数

MCP_ALLOWED_TOOLS

all

逗号分隔的工具允许列表

MCP_ROLLBACK_BUFFER

50

内存中保留的回滚条目数

测试

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

MCP 规范合规性

符合 MCP 2025-11-25(最新版):

  • 所有 327 个工具均包含 ToolAnnotations (readOnlyHint, destructiveHint, idempotentHint)

  • 提供 serverInfo.versioninstructions

  • Origin 标头验证(必需)

  • 具有时间安全比较的 Bearer 令牌认证

  • 默认绑定到 localhost(符合规范 SHOULD 要求)

  • stdio 和 Streamable HTTP 传输

项目结构

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

贡献

我们需要在各种 pfSense 环境中进行真实测试。请参阅 CONTRIBUTING 或:

  1. Fork 并创建一个功能分支

  2. 运行 python3 -m pytest tests/ -v

  3. 提交 PR

想法: 针对真实 pfSense 的集成测试、额外的软件包支持(Snort、Suricata)、Ollama 本地 LLM 桥接、多实例管理。

许可证

MIT

致谢

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