mcp pfsense
  
用于管理的MCP服务器 pfSense防火墙 通过Claude、ChatGPT和Copilot等人工智能助手。
需要: pfrest 安装在pfSense实例上的包(提供REST API)。
特性
17工具 分为6类:
| 类别 | 工具 | 描述 |
|---|---|---|
| 系统 | get_system_status, get_interfaces | 版本、CPU、内存、正常运行时间、温度、网络接口 |
| 防火墙 | list_firewall_rules, add_firewall_rule, delete_firewall_rule, list_firewall_aliases | 具有界面过滤、别名列表的规则管理 |
| 动态主机配置协议 | list_dhcp_leases, list_dhcp_static_mappings, add_dhcp_static_mapping, delete_dhcp_static_mapping | 有效租赁、IP保留 |
| 域名系统 | list_dns_host_overrides, add_dns_host_override, delete_dns_host_override | 未绑定DNS解析程序主机覆盖 |
| 监控 | get_gateway_status, get_arp_table, list_services | 网关健康状况、连接的设备、服务状态 |
| 服务 | restart_service | 重新启动任何pfSense服务 |
安全
所有破坏性操作(删除规则、删除映射、重新启动服务)都需要 两步确认 --该工具在首次调用时返回警告,仅在再次调用时执行 confirm=true.
安装
# Using uvx (recommended)
uvx mcp-pfsense
# Using pip
pip install mcp-pfsense先决条件
- pfSense 随着 pfrest 软件包已安装
- 具有API访问权限的用户帐户(通常
admin)
配置
设置环境变量:
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
PFSENSE_HOST | 是 | -- | pfSense主机名或IP |
PFSENSE_PASSWORD | 是 | - | neneneba API用户密码 |
PFSENSE_USERNAME | 没有 | admin | API用户名 |
PFSENSE_PORT | 没有 | 443 | API端口 |
PFSENSE_SCHEME | 没有 | https | http 或 https |
PFSENSE_VERIFY_SSL | 没有 | false | 验证SSL证书 |
克劳德桌面版
增添 claude_desktop_config.json:
{
"mcpServers": {
"pfsense": {
"command": "uvx",
"args": ["mcp-pfsense"],
"env": {
"PFSENSE_HOST": "10.10.10.1",
"PFSENSE_PASSWORD": "your-password"
}
}
}
}克劳德代码
claude mcp add pfsense -- uvx mcp-pfsense然后在shell中设置环境变量或 .env 文件。
使用示例
连接后,询问您的AI助手:
- *“pfSense系统状态如何?”*
- *“显示LAN接口上的所有防火墙规则”*
- *“列出活动DHCP租约”*
- *“为nas.home.lan添加指向10.10.10.50的DNS条目”*
- *“哪些设备连接到网络?”* (ARP表)
- *“显示网关运行状况和延迟”*
- *“创建防火墙规则以允许LAN上的TCP端口8080”*
- *“为MAC保留IP 10.10.10.60 aa:bb:cc:dd:ee:20”*
API兼容性
- pfSense:2.7.x(在2.7.2上测试)
- pfrest:v2.x(REST API v2)
- python: 3.11+
备注:pfrest在nginx上运行(默认端口80),与pfSense WebGUI(端口443上的lighttpd)分开。如果您的pfrest配置在非标准端口上,请设置PFSENSE_PORT和PFSENSE_SCHEME因此。
发展
git clone https://github.com/antonio-mello-ai/mcp-pfsense.git
cd mcp-pfsense
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# Run tests
pytest
# Lint and type check
ruff check .
mypy src/许可证
麻省理工学院
