
Palo Alto Networks MCP Server Suite

2025.03.31
0
JavaScript防火墙管理安全策略管理网络对象管理系统配置管理设备监控其它
Palo Alto Networks MCP Server Suite 是一个用于管理 Palo Alto Networks 防火墙和服务的综合套件,通过统一的 API 接口提供模块化的防火墙管理解决方案。该套件包含多个专用服务器,分别处理不同的管理功能,如核心操作、策略管理、系统配置、网络对象管理和设备操作等。
View on GitHub
Overview
基本能力
产品定位
Palo Alto Networks MCP Server Suite 是一个用于管理 Palo Alto Networks 防火墙和服务的综合套件,通过统一的 API 接口提供模块化的防火墙管理解决方案。
核心功能
- Core Server: 提供基础防火墙操作和共享功能,包括认证、会话管理、API 速率限制和重试逻辑等。
- Policy Server: 提供安全策略和规则管理功能,包括创建、更新和获取安全规则等。
- Config Server: 提供系统配置和设置管理功能,如网络配置和接口设置等。
- Objects Server: 提供网络对象和地址管理功能,包括创建和管理地址对象、地址组等。
- Device Server: 提供设备操作和监控功能,如设备状态获取、配置提交和备份等。
适用场景
- 安全策略部署和管理
- 网络对象和地址管理
- 系统配置和设置管理
- 设备操作和监控
- 高可用性配置
工具列表
- Core Server: 提供基础功能如认证、会话管理等。
- Policy Server: 提供安全策略和规则管理工具。
- Config Server: 提供系统配置和设置管理工具。
- Objects Server: 提供网络对象和地址管理工具。
- Device Server: 提供设备操作和监控工具。
常见问题解答
- API 连接问题: 测试 API 连接性,检查防火墙可访问性,验证 API 密钥权限和 SSL 证书。
- 规则冲突: 分析规则冲突,检查规则是否存在阴影、冗余或冲突。
- 提交失败: 处理配置锁定或验证错误。
使用教程
使用依赖
- 安装 Node.js 和 npm。
- 确保有 Palo Alto Networks 防火墙的 API 访问权限。
安装教程
通过 Smithery 安装
npx -y @smithery/cli install @DynamicEndpoints/paloalto-mcp-server --client claude
手动安装
- 克隆仓库:
git clone https://github.com/your-org/paloalto-mcp-servers.git
cd paloalto-mcp-servers
- 为每个服务器安装依赖:
# 安装核心服务器
cd paloalto-server
npm install
# 安装策略服务器
cd ../paloalto-policy-server
npm install
# 安装配置服务器
cd ../paloalto-config-server
npm install
# 安装对象服务器
cd ../paloalto-objects-server
npm install
# 安装设备服务器
cd ../paloalto-device-server
npm install
- 配置环境变量:
# 在每个服务器目录中创建 .env 文件
PANOS_API_KEY=your-api-key
PANOS_API_BASE_URL=https://your-firewall.example.com/api
# 可选配置
PANOS_VERIFY_SSL=true
PANOS_TIMEOUT=30000
PANOS_DEBUG=false
调试方式
- 测试 API 连接性:
const status = await useMcpTool("paloalto-server", "test_connection", {
timeout: 5000,
verify_ssl: true
});
if (!status.success) {
console.error(`Connection failed: ${status.error}`);
}
- 分析规则冲突:
const analysis = await useMcpTool("paloalto-policy", "analyze_rules", {
rule_type: "security",
checks: ["shadowing", "redundancy", "conflicts"]
});
if (analysis.issues.length > 0) {
console.log("Found rule issues:", analysis.issues);
}