PanOS MCP MCP Server
Community MCP server that exposes Palo Alto Networks NGFW and Panorama configuration data (system info, address objects, zones, policies) over the PAN-OS XML API.
PAN-OS MCP is a Model Context Protocol server that bridges MCP clients (Claude Desktop, Windsurf, Cursor) and Palo Alto Networks Next-Generation Firewalls or Panorama appliances. It is built with the modelcontextprotocol Python SDK using the FastMCP abstraction and communicates with the firewall through the PAN-OS XML API, returning parsed, structured results back to the LLM.
The server focuses on read-only retrieval of configuration data: system information, address objects (with Panorama shared and device-group support), security zones, and security policies. This lets an LLM agent inspect firewall state, summarize rule sets, or answer questions about network segmentation without giving the model direct shell access to the appliance. Authentication is handled via a PAN-OS API key set as an environment variable.
This is a community project (maintained by cdot65 on GitHub, MIT licensed). Palo Alto Networks does not, as of this writing, publish an official MCP server, so several community implementations exist (cdot65/pan-os-mcp, vlanviking/panos-mcp-server, apius-tech/Palo-MCP, edoscars/pan-os-mcp). The cdot65 project is one of the more documented options and exposes both stdio and SSE/HTTP transports.
Tools
| Tool | Description |
|---|---|
show_system_info |
Retrieves firewall system information including hostname, model, serial number, and software version. |
retrieve_address_objects |
Fetches address objects from the firewall or Panorama, organized by location (shared, device group, or vsys). |
retrieve_security_zones |
Returns configured security zones with their associated interfaces. |
retrieve_security_policies |
Retrieves security policies with details on sources, destinations, applications, and actions. |
Prerequisites
- Python 3.10 or higher
uv(recommended) orpip- A PAN-OS API key for your firewall or Panorama appliance
- Network reachability to the firewall management interface
Generate a PAN-OS API key
curl -k -X GET "https://<firewall-ip>/api/?type=keygen&user=<admin>&password=<password>"
Install
Clone the repo and install the package:
git clone https://github.com/cdot65/pan-os-mcp.git
cd pan-os-mcp
uv pip install .
# or: pip install .
Environment variables
Create a .env file (or export in your shell):
PANOS_HOSTNAME=192.168.1.1
PANOS_API_KEY=your-api-key-here
PANOS_DEBUG=false
MCP client configuration
{
"tools": [
{
"name": "panos",
"command": "palo-alto-mcp",
"args": [],
"env": {
"PANOS_HOSTNAME": "192.168.1.1",
"PANOS_API_KEY": "your-api-key-here"
}
}
]
}
Run manually
python -m palo_alto_mcp
The server communicates over stdio by default, and also exposes /sse and /messages/ endpoints for HTTP/SSE clients.
- Ask an LLM to summarize a firewall's hardware, model, serial number, and PAN-OS version for an audit report.
- Inventory all address objects across a Panorama deployment, including shared objects and device-group objects, and dump them to CSV.
- Have an agent enumerate security zones and the interfaces bound to each, useful when documenting segmentation.
- Review security policies in natural language: "list any rules that allow
anysource toanydestination onanyapplication." - Spot-check Panorama device groups during change reviews by retrieving the relevant policy and object sets.
- "Show me the system info for the firewall: hostname, model, serial, and PAN-OS version."
- "List all shared address objects in Panorama and group them by subnet."
- "Which security zones exist and which interfaces are assigned to each?"
- "Find all security policies that allow
application-defaultfrom thetrustzone to theuntrustzone." - "Are there any security rules with action
allowand sourceanythat should be tightened?"
- Covers the most common read-only inspection tasks: system info, address objects, zones, and policies.
- Supports both standalone firewalls and Panorama (including device groups and shared objects).
- Built on the official
modelcontextprotocolPython SDK with FastMCP; supports stdio and SSE transports. - MIT licensed and easy to self-host with
uvorpip.
- Community project, not an official Palo Alto Networks integration; no vendor support.
- Read-only: it cannot create, edit, or commit configuration changes on the firewall.
- Tool surface is small (four tools). Things like logs, threat data, NAT rules, or HA state are not exposed.
- vlanviking/panos-mcp-server: another community PAN-OS XML API MCP server.
- apius-tech/Palo-MCP: broader community implementation advertising more tools across multiple modules.
- edoscars/pan-os-mcp: alternative PAN-OS XML API MCP server.