pfSense MCP Server
pfSense MCP 服务器
用自然语言管理您的 pfSense 防火墙。327 个工具。9 层安全防护。一条命令即可启动。
You: "Block all traffic from 203.0.113.5 on WAN"
Claude: Creates block rule → applies changes → confirms with rollback instructionspfSense MCP 服务器将 Claude Desktop、Claude 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 | 已验证 | |
pfSense Plus 25.11 | 已验证 | |
pfSense CE 2.8.0 | v2.6.0+ | 支持 |
pfSense Plus 24.11 | v2.6.0+ | 支持 |
需要 jaredhendrickson13 开发的 pfSense REST API v2 软件包。
身份验证
支持三种方法(在 .env 中配置):
方法 | 配置 | 适用场景 |
基本认证 |
| 快速设置,本地用户 |
API 密钥 |
| 自动化,服务账户 |
JWT |
| 短期令牌,自动刷新 |
部署选项
stdio(默认) — 用于 Claude Desktop 和 Claude Code:
python3 -m src.mainHTTP — 用于远程访问和多客户端设置:
python3 -m src.main -t streamable-http --port 3000Docker — 具有只读文件系统的加固容器:
docker compose up容器安全:非 root 用户 (mcp:1000),只读文件系统,丢弃所有能力,noexec tmpfs,no-new-privileges。
配置
变量 | 必需 | 默认 | 描述 |
| 是 | — | pfSense URL (例如 |
|
|
| |
| * | — | REST API 密钥 |
| * | — | pfSense 用户名 (用于 basic/jwt) |
| * | — | pfSense 密码 (用于 basic/jwt) |
|
|
| |
|
| 自签名证书设为 | |
|
| 请求超时时间(秒) | |
|
| 仅公开只读工具 |
变量 | 默认 | 描述 |
|
| 在 API 响应中启用 HATEOAS 链接 |
|
|
|
|
|
|
|
| HTTP 模式的绑定地址 |
|
| HTTP 模式的端口 |
| — | HTTP 传输的 Bearer 令牌(必需) |
| localhost | 逗号分隔的允许来源 |
| — | 审计日志文件路径 (JSON lines) |
|
| 每 60 秒最大删除次数 |
|
| 每 60 秒最大创建次数 |
|
| 每 300 秒最大关键操作次数 |
| all | 逗号分隔的工具允许列表 |
|
| 内存中保留的回滚条目数 |
测试
python3 -m pytest tests/ -v # 308 tests
python3 -m pytest tests/ --cov=src # with coverageMCP 规范合规性
符合 MCP 2025-11-25(最新版):
所有 327 个工具均包含
ToolAnnotations(readOnlyHint, destructiveHint, idempotentHint)提供
serverInfo.version和instructionsOrigin 标头验证(必需)
具有时间安全比较的 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 或:
Fork 并创建一个功能分支
运行
python3 -m pytest tests/ -v提交 PR
想法: 针对真实 pfSense 的集成测试、额外的软件包支持(Snort、Suricata)、Ollama 本地 LLM 桥接、多实例管理。
许可证
致谢
jaredhendrickson13 / pfrest — pfSense REST API v2 软件包
JeremiahChurch — 模块化重写 (PR #5)
shawnpetersen — API v2 端点发现 (PR #3)
Netgate — pfSense
FastMCP — MCP 框架
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