Back to MCP directory
publicPublicdnsLocal runtime

paloalto-mcp-server

Palo Alto Networks MCP服务器套件,提供统一API接口管理防火墙及服务的模块化解决方案,包含核心服务、策略管理、配置管理、对象管理和设备管理五大功能模块。

article

README

🚀 Palo Alto 防火墙 API 使用指南

本指南详细介绍了 Palo Alto 防火墙 API 的使用方法,帮助你通过代码实现防火墙规则的创建、获取和删除等操作,提升网络安全管理的效率。

🚀 快速开始

📦 安装指南

使用以下命令安装 palo-alto-api

npm install palo-alto-api

✨ 主要特性

  • 支持创建入站和出站规则,满足不同的网络访问需求。
  • 能够获取所有或特定的安全策略,方便进行策略管理。
  • 可以删除指定的规则或安全策略,灵活调整网络配置。

💻 使用示例

基础用法

创建入站规则

创建一条简单的入站规则,允许 SSH 访问:

await useMcpTool("paloalto-policy", "create_inbound_rule", {
  name: "允许 SSH 访问",
  source: ["any"],
  destination: ["any"],
  service: ["ssh"]
});

获取入站规则

获取所有当前的入站规则:

const rules = await useMcpTool("paloalto-policy", "get_inbound_rules", {});

删除入站规则

删除特定的入站规则:

await useMcpTool("paloalto-policy", "delete_inbound_rule", {
  name: "允许 SSH 访问"
});

高级用法

创建出站规则

创建一条出站规则以允许 Web 浏览:

await useMcpTool("paloalto-policy", "create_outbound_rule", {
  name: "允许网页浏览",
  source: ["内部网络"],
  destination: ["any"],
  service: ["web-browsing"]
});

获取安全策略

获取所有安全策略:

const securityPolicies = await useMcpTool("paloalto-policy", "get_security_policies", {});

获取特定名称的安全策略:

const specificPolicy = await useMcpTool("paloalto-policy", "get_security_policy", {
  name: "允许网页浏览"
});

删除安全策略

删除一条安全策略:

await useMcpTool("paloalto-policy", "delete_security_policy", {
  name: "允许网页浏览"
});

完整示例代码

简单示例

以下代码展示了如何创建、获取和删除一条临时访问规则:

async function createAndDeleteRule() {
  try {
    // 创建规则
    await useMcpTool("paloalto-policy", "create_outbound_rule", {
      name: "临时访问规则",
      source: ["192.168.1.0/24"],
      destination: ["10.0.0.0/24"],
      service: ["icmp"]
    });

    // 获取所有规则
    const rules = await useMcpTool("paloalto-policy", "get_outbound_rules", {});

    console.log("创建的规则:", rules);

    // 删除规则
    await useMcpTool("paloalto-policy", "delete_outbound_rule", {
      name: "临时访问规则"
    });

  } catch (error) {
    console.error("操作失败:", error);
  }
}

createAndDeleteRule();

高级示例

以下代码展示了如何创建新的安全策略并提交更改:

async function applyConfigChanges() {
  try {
    // 创建新规则
    await useMcpTool("paloalto-policy", "create_security_policy", {
      name: "新安全策略",
      source: ["192.168.0.0/16"],
      destination: ["172.16.0.0/12"],
      service: ["smtp"]
    });

    // 获取所有安全策略
    const policies = await useMcpTool("paloalto-policy", "get_security_policies", {});

    console.log("所有安全策略:", policies);

    // 提交更改
    await useMcpTool("paloalto-config", "commit_changes", {
      message: "添加新SMTP规则"
    });

  } catch (error) {
    console.error("配置应用失败:", error);
  }
}

applyConfigChanges();

📚 详细文档

常见问题和故障排除

错误处理

在创建规则时,如果输入了无效的网络地址,可能会引发错误。可以使用 try-catch 块来捕获和处理这些错误:

try {
  // 尝试创建规则
  await useMcpTool("paloalto-policy", "create_inbound_rule", {
    name: "测试规则",
    source: ["invalid-network"],
    destination: ["any"],
    service: ["ftp"]
  });
} catch (error) {
  console.error("错误信息:", error);
}

批处理操作

以下代码展示了如何批量创建和删除规则:

async function bulkOperations() {
  try {
    // 创建多条规则
    const newRules = [
      { name: "规则1", source: ["192.168.1.0/24"], destination: ["any"], service: ["http"] },
      { name: "规则2", source: ["192.168.2.0/24"], destination: ["any"], service: ["https"] }
    ];

    // 使用循环创建规则
    for (const rule of newRules) {
      await useMcpTool("paloalto-policy", "create_outbound_rule", rule);
    }

    console.log("所有新规则已创建");

    // 删除所有规则
    const existingRules = await useMcpTool("paloalto-policy", "get_outbound_rules", {});

    for (const rule of existingRules) {
      await useMcpTool("paloalto-policy", "delete_outbound_rule", { name: rule.name });
    }

  } catch (error) {
    console.error("批量操作失败:", error);
  }
}

bulkOperations();

常见问题解答

如何处理 API 错误?

在进行任何 API 调用时,始终建议使用 try-catch 块来捕获和处理可能的错误:

try {
  // 执行 API 调用
} catch (error) {
  console.error("出现错误:", error);
}

如何提交更改?

在完成所有配置更改后,必须使用 commit_changes 方法提交更改以使它们生效:

await useMcpTool("paloalto-config", "commit_changes", {
  message: "应用新配置"
});

贡献指南

提交错误报告或功能请求

欢迎通过以下方式提交问题或功能请求:

如何贡献代码?

  1. Fork 仓库
  2. 创建新功能分支:git checkout -b feature/new-feature
  3. 提交更改:git commit -m "添加新功能"
  4. 推送到远程分支:git push origin feature/new-feature
  5. 提交 Pull Request

📄 许可证

  • MIT License:适用于个人和商业用途,允许自由使用、修改和分发。

如需更多信息,请参考 Palo Alto API 文档

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client