🚀 下一代模型上下文协议(MCP)服务器,通过 Claude Desktop 和其他 GenAI 应用程序实现与 pfSense 防火墙的自然语言交互。现在具有 pfrest.org 提供的高级 API 功能,包括智能过滤、HATEOAS 导航和企业级控制。
⚠️ 重要提示: 此项目需要社区测试和验证!
👥 我们需要您的帮助来使用实际的 pfSense 设备和环境进行测试。
- 🔍 测试它 使用您的 pfSense 设置
- 🐛 报告问题 通过 GitHub Issues
- 🔧 修复错误 并提交 PR
- 📝 改进文档 根据实际使用情况
- 💡 贡献功能 和改进
您的测试和贡献将帮助使此项目适用于所有人!
| 版本 | 状态 | API包 | 功能 |
|---|---|---|---|
| pfSense CE 2.8.0 | ✅ 全面支持 | 下载 | 所有增强功能 |
| pfSense Plus 24.11 | ✅ 全面支持 | 下载 | 所有增强功能 |
在您的pfSense系统上(通过SSH或控制台):
# 对于pfSense CE 2.8.0
pkg-static add https://github.com/jaredhendrickson13/pfsense-api/releases/latest/download/pfSense-2.8.0-pkg-RESTAPI.pkg
# 对于pfSense Plus 24.11
pkg-static -C /dev/null add https://github.com/jaredhendrickson13/pfsense-api/releases/latest/download/pfSense-24.11-pkg-RESTAPI.pkg
# 克隆仓库
git clone https://github.com/gensecaihq/pfsense-mcp-server.git
cd pfsense-mcp-server
# 安装依赖项
pip install -r requirements.txt
# 配置环境
cp .env.example .env
nano .env # 添加您的pfSense详细信息
最小.env配置:
PFSENSE_URL=https://your-pfsense.local
PFSENSE_API_KEY=your-api-key-here
PFSENSE_VERSION=CE_2_8_0 # 或 PLUS_24_11
AUTH_METHOD=api_key
VERIFY_SSL=true
ENABLE_HATEOAS=false # 设置为true以启用导航链接
# 测试增强功能
python tests/test_enhanced_features.py
# 启动增强的MCP服务器
python -m src.main
添加到您的Claude Desktop配置:
{
"mcpServers": {
"pfsense-enhanced": {
"command": "python",
"args": ["/path/to/pfsense-mcp-server/main_enhanced_mcp.py"],
"env": {
"PFSENSE_URL": "https://your-pfsense.local",
"PFSENSE_API_KEY": "your-api-key",
"PFSENSE_VERSION": "CE_2_8_0",
"ENABLE_HATEOAS": "false"
}
}
}
}
search_interfaces() - 使用高级过滤查找接口search_firewall_rules() - 多字段规则搜索,支持分页search_aliases() - 智能别名发现search_dhcp_leases() - DHCP租约管理,支持状态过滤find_blocked_rules() - 查找跨接口的阻塞规则create_firewall_rule_advanced() - 创建规则,支持位置控制move_firewall_rule() - 动态重新排序规则bulk_block_ips() - 高效地阻止多个IPmanage_alias_addresses() - 添加/删除别名条目analyze_blocked_traffic() - 模式分析和威胁评分search_logs_by_ip() - IP特定的日志分析get_api_capabilities() - 发现API特性follow_api_link() - 动态导航HATEOAS链接refresh_object_ids() - 处理动态ID变化find_object_by_field() - 基于字段的对象查找enable_hateoas() / disable_hateoas() - 控制导航链接test_enhanced_connection() - 综合连接性测试"搜索WAN接口上阻止端口22的防火墙规则"
"显示过去24小时内的阻塞流量模式"
"查找所有包含IP 192.168.1.100的别名"
"阻止这些可疑IP:198.51.100.1, 203.0.113.1"
"搜索DHCP租约中的主机名包含'server'"
"将防火墙规则ID 5移动到位置1"
"分析阻塞流量并按源IP分组"
"查找当前处于关闭状态的接口"
"搜索描述中包含'malware'的防火墙规则"
"显示前10个被阻塞的源IP"
# 测试基本API连接
python test_pfsense_api_v2.py
# 测试所有增强功能
python test_enhanced_features.py
# 运行综合测试套件
pytest tests/ -v
# 测试特定MCP工具
python -c "
import asyncio
from main_enhanced_mcp import search_firewall_rules
print(asyncio.run(search_firewall_rules(interface='wan', page_size=5)))
"
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude Desktop │────│ 增强型MCP │────│ pfSense API v2 │
│ (自然语言) │ │ 服务器(Python) │ │ (REST/GraphQL) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌─────────────────┐
│ 高级功能 │ │ pfSense系统 │
│ • 过滤 │ │ • 防火墙 │
│ • 分页 │ │ • 接口 │
│ • HATEOAS │ │ • 服务 │
│ • 对象ID │ │ • DHCP/VPN │
└──────────────────┘ └─────────────────┘
这个MCP服务器代表了pfSense自动化的重要进步,但我们还需要社区的帮助使其变得更好!无论您是pfSense老手、Python开发者还是GenAI爱好者,都有很多方式可以做出贡献。
贡献者将:
通过自然语言,我们可以让pfSense自动化对每个人来说都易于访问!🌟
"最好的开源项目是由社区构建的,而不是个人。您的贡献,无论大小,都会产生影响!"
| 功能 | 基础MCP | 增强型MCP | 优点 |
|---|---|---|---|
| API集成 | 只支持XML-RPC | REST API v2 + 回退 | 现代化、更快、更可靠 |
| 过滤 | 基本查询 | 8种过滤类型 + 正则表达式 | 找到你需要的确切内容 |
| 分页 | 无 | 智能分页 | 处理大数据集 |
| 对象管理 | 静态ID | 动态ID处理 | 抵抗变化 |
| 导航 | 手动端点 | HATEOAS链接 | 发现API能力 |
| 控制 | 基本操作 | 细粒度参数 | 精确的操作控制 |
| 性能 | 基本缓存 | 高级优化 | 更快的响应时间 |
MIT许可证 - 详情见LICENSE。