Skip to main content
Glama
yaylaerkan

palo-alto-bgp-ipsec

by yaylaerkan

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHTTP bind address0.0.0.0
PORTNoHTTP listen port3001
LOG_DIRNoDirectory for rotating JSON logslogs/
CONF_DIRNoDirectory of mounted JSON config (default /app/conf, /conf, ./conf)
LOG_LEVELNoWinston log levelinfo
PANOS_HOSTYesPanorama/firewall IP or hostname (no https://)
PANOS_PROXYNoSOCKS proxy URL for API calls
PANOS_API_KEYYesPAN-OS XML API key
PANOS_VERSIONNoTarget PAN-OS version hint (default assumes 11.1.x)
MCP_ALLOWED_HOSTSNoComma-separated Host header allowlist for DNS-rebinding protection
PANOS_FIREWALLS_CONFIGNoPath to a multi-firewall JSON config (overrides single-host env)
PANORAMA_PLAN_TTL_MINUTESNoIn-memory plan and operation snapshot TTL, integer 1–144015
PALO_ALTO_BGP_IPSEC_LOG_DIRNoAlternative directory for rotating JSON logs
PALO_ALTO_BGP_IPSEC_LOG_LEVELNoAlternative Winston log level

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_firewallsA

[READ-ONLY] Lists configured firewall targets that can be selected by name. Returns only name, host, and verify_ssl; API keys are never included.

get_firewall_infoA

[READ-ONLY] Retrieves system information (hostname, model, serial, software version) from the PanOS firewall. Executes: show system info.

get_ha_statusA

[READ-ONLY] Retrieves high-availability (HA) state and peer information from the firewall. Executes: show high-availability state.

get_active_sessionsA

[READ-ONLY] Retrieves active session count and summary from the firewall. Executes: show session info.

get_system_resourcesA

[READ-ONLY] Retrieves system resource utilization including CPU, memory, and disk usage. Executes: show system resources.

get_interfacesA

[READ-ONLY] Retrieves all network interfaces with their status, IP addresses, and configuration. Executes: show interface all.

get_zonesA

[READ-ONLY] Retrieves all security zones configured on the firewall. Reads config at: /config/.../vsys/entry/zone.

get_routing_tableA

[READ-ONLY] Retrieves the current routing table from the firewall. Executes: show routing route.

get_arp_tableA

[READ-ONLY] Retrieves ARP table entries from the firewall. Executes: show arp entry all.

get_vlansB

[READ-ONLY] Retrieves VLAN configuration from the firewall. Reads config at: /config/.../network/vlan.

get_dhcp_leasesA

[READ-ONLY] Retrieves DHCP server lease information. Executes: show dhcp server lease all.

get_dns_proxyA

[READ-ONLY] Retrieves DNS proxy configuration. Reads config at: /config/.../network/dns-proxy.

get_static_routesA

[READ-ONLY] Retrieves static routes from a virtual router. Reads config at: /config/.../virtual-router/entry/routing-table/ip/static-route.

add_static_routeA

[MODIFIES CONFIG] Creates a static route in a virtual router. Staged in candidate config — requires 'commit' to activate.

delete_static_routeA

[MODIFIES CONFIG] Deletes a static route from a virtual router. Staged in candidate config — requires 'commit' to activate.

get_address_objectsA

[READ-ONLY] Retrieves all address objects (IP addresses, ranges, FQDNs) defined on the firewall. Reads config at: /config/.../vsys/entry/address.

get_address_groupsB

[READ-ONLY] Retrieves all address groups that contain multiple address objects. Reads config at: /config/.../vsys/entry/address-group.

get_service_objectsA

[READ-ONLY] Retrieves all service objects (port/protocol definitions) from the firewall. Reads config at: /config/.../vsys/entry/service.

get_service_groupsA

[READ-ONLY] Retrieves all service groups that contain multiple service objects. Reads config at: /config/.../vsys/entry/service-group.

get_application_filtersA

[READ-ONLY] Retrieves application filters used for application-based policy rules. Reads config at: /config/.../vsys/entry/application-filter.

add_address_objectA

[MODIFIES CONFIG] Creates an address object (IP/netmask, IP range, or FQDN). Staged in candidate config — requires 'commit' to activate.

add_address_groupA

[MODIFIES CONFIG] Creates a static address group containing one or more address objects. Staged in candidate config — requires 'commit' to activate.

add_service_objectA

[MODIFIES CONFIG] Creates a TCP or UDP service object with a port or port range. Staged in candidate config — requires 'commit' to activate.

add_service_groupA

[MODIFIES CONFIG] Creates a service group containing one or more service objects. Staged in candidate config — requires 'commit' to activate.

delete_address_objectA

[MODIFIES CONFIG] Deletes an address object. Staged in candidate config — requires 'commit' to activate.

delete_address_groupA

[MODIFIES CONFIG] Deletes an address group. Staged in candidate config — requires 'commit' to activate.

delete_service_objectA

[MODIFIES CONFIG] Deletes a service object. Staged in candidate config — requires 'commit' to activate.

delete_service_groupA

[MODIFIES CONFIG] Deletes a service group. Staged in candidate config — requires 'commit' to activate.

get_tagsA

[READ-ONLY] Retrieves all tags defined on the firewall. Reads config at: /config/.../vsys/entry/tag.

add_tagA

[MODIFIES CONFIG] Creates a tag object. Tags can be applied to rules, objects, and other configuration elements. Staged in candidate config — requires 'commit' to activate.

delete_tagA

[MODIFIES CONFIG] Deletes a tag object. Staged in candidate config — requires 'commit' to activate.

get_configA

[READ-ONLY] Reads configuration XML at a specific XPath location from the firewall/Panorama candidate buffer. Use this to verify staged candidate changes (look for dirtyId="2" admin="admin" attributes on tags — those mark uncommitted candidate state) or to read committed config. Does not modify anything.

panorama_verify_candidate_operationA

[READ-ONLY] Verifies the candidate configuration XPaths recorded for an apply operation. Returns only resource identity, XPath, existence, and candidate admin/dirtyId/time metadata. Never returns configuration XML or key material.

set_configA

[MODIFIES CONFIG] Sets or creates configuration at a specific XPath location on the firewall. Changes are staged in the candidate config and require a separate 'commit' to take effect on the running firewall.

delete_configA

[MODIFIES CONFIG] Deletes configuration at a specific XPath location on the firewall. Changes are staged in the candidate config and require a separate 'commit' to take effect.

commitA

[MODIFIES CONFIG] Commits all pending (staged) configuration changes to the running firewall. This activates changes made by set_config/delete_config. This action affects live traffic.

panorama_commitA

[MODIFIES CONFIG] Commits pending configuration changes on Panorama. Use this before 'panorama_push_to_devices' to commit changes to device groups, templates, and shared objects. This commits on Panorama itself — it does NOT push to managed firewalls.

panorama_push_to_devicesA

[MODIFIES CONFIG] Pushes configuration from Panorama to managed firewall devices. This deploys policy and object changes to production firewalls in the specified device group. This action affects live traffic on managed devices.

get_traffic_logsA

[READ-ONLY] Retrieves recent traffic logs from the firewall using the PanOS log API (type=log). Supports filtering by query and limiting result count.

get_threat_logsA

[READ-ONLY] Retrieves recent threat logs from the firewall using the PanOS log API (type=log). Supports filtering by query and limiting result count.

get_system_logsB

[READ-ONLY] Retrieves recent system logs from the firewall using the PanOS log API (type=log). Supports filtering by query and limiting result count.

get_config_logsA

[READ-ONLY] Retrieves recent configuration change logs from the firewall using the PanOS log API (type=log). Supports filtering by query and limiting result count.

get_url_filter_logsA

[READ-ONLY] Retrieves recent URL filtering logs from the firewall using the PanOS log API (type=log&log-type=url). Shows URLs visited and actions taken (allow/block/continue/override) by URL filtering policy.

panorama_get_plan_statusA

[READ-ONLY] Returns safe lifecycle metadata for one active Panorama provisioning plan. Returns only a safe target label/hash; never returns plan/candidate hashes, XPath values, mutation XML, or secret slot names.

panorama_list_active_plansA

[READ-ONLY] Lists safe lifecycle metadata for active Panorama provisioning plans. Returns only safe target labels/hashes; never returns plan/candidate hashes, XPath values, mutation XML, or secret slot names.

panorama_get_operation_statusA

[READ-ONLY] Returns safe lifecycle metadata for one active Panorama candidate operation. Returns only a safe target label/hash; never returns snapshot XPath values, restore XML, or secret metadata.

panorama_list_active_operationsA

[READ-ONLY] Lists safe lifecycle metadata for active Panorama candidate operations. Returns only safe target labels/hashes; never returns snapshot XPath values, restore XML, or secret metadata.

panorama_preflight_template_networkA

[READ-ONLY] Validates the deployment context before IPsec or BGP planning. Checks Panorama endpoint, managed serial/template/vsys/vr_root, Legacy Virtual Router mode, and PAN-OS 11.1.x compatibility. Candidate only; does not commit or push.

panorama_restore_candidate_operationA

[DESTRUCTIVE] Restores only the XPath values captured for one operation_id. Reverses mutations in reverse order. Does not issue a global candidate revert or touch unrelated changes. Requires a valid operation_id.

panorama_suggest_ipsec_bgp_resourcesA

[READ-ONLY] Resolves the template context, inspects target-template tunnel units and target-VR BGP link-local addresses, then suggests bare tunnel interfaces and /30 near/far pairs that do not overlap within that limited scope. These are scoped suggestions, not global collision guarantees; human and merged/effective-config verification is required. Also returns WAN loopback detection and flags BGP policy choices requiring human intent. Candidate configuration only; no commit or push is performed.

panorama_plan_ipsecA

[READ-ONLY] Plans ordered IPsec candidate mutations (IKE/IPsec crypto, tunnel interfaces, zones, vr_root membership, IKE gateways, IPsec tunnels). Returns backward-compatible flat Plan fields plus common planId, planHash, requiredSecretSlots, and summary metadata. Run this BEFORE panorama_plan_bgp — BGP peers bind to tunnel interfaces so the tunnels must exist first. Candidate configuration only; no commit or push is performed. Runtime verification requires a prior manual commit and push to the managed firewall.

panorama_detect_ipsec_loopbackA

[READ-ONLY] Auto-detects the WAN loopback interface/address an IPsec IKE gateway should reference, by inspecting existing IKE gateways and loopback units. Use before panorama_plan_ipsec when localInterface/localAddress are omitted, to preview which loopback will be chosen. Candidate configuration only; no commit or push is performed.

panorama_apply_ipsec_candidateA

[DESTRUCTIVE] Applies an approved IPsec plan to the candidate configuration. Requires plan_id, plan_hash, and one direct PSK per secret slot the plan reported. PSKs always arrive directly from the human/operator via the request; whatever value is supplied is accepted as-is, with no strength or complexity check. Candidate configuration only; no commit or push is performed. Direct PSK client-history risk on apply: supplied PSKs transit the API as redacted secrets.

panorama_validate_ipsec_candidateA

[READ-ONLY] Reads every expected IPsec XPath, verifies references resolve, then runs a full Panorama candidate validation. Candidate configuration only; no commit or push is performed.

panorama_validate_ipsec_candidate_v2A

[READ-ONLY] Validates the exact IPsec resources captured by a prior plan, using only plan_id and plan_hash, then runs a full Panorama candidate validation. The legacy spec-keyed validation tool remains available. Candidate configuration only; no commit or push is performed.

panorama_remove_ipsec_candidateA

[DESTRUCTIVE] Two-phase removal of owned IPsec resources. mode 'plan' returns a removal plan; mode 'apply' requires the returned plan_id and plan_hash and deletes only owned resources, snapshotting first and auto-restoring on failure. Candidate configuration only; no commit or push is performed.

panorama_verify_ipsec_runtimeA

[READ-ONLY] Verifies IPsec runtime state (IKE/IPsec SAs) on the managed firewall by serial through Panorama. Runtime verification requires a prior manual commit and push to the managed firewall. Candidate configuration only; no commit or push is performed.

panorama_plan_bgpA

[READ-ONLY] Plans ordered BGP candidate mutations (global enable, router-id, local-as, route-install, peer group, two peers, and import/export rules with inline matched prefixes). policyMode records whether empty policies are intentional or explicit rules are required; omission preserves legacy behavior with a warning. Returns the legacy plan wrapper plus common planId, planHash, and summary metadata. Requires prior IPsec apply: each peer's local-address = own (near) tunnel IP, peer-address = far tunnel IP (near + 1 within the /30). A peer without local-address is rejected by PAN-OS. Candidate configuration only; no commit or push is performed. Runtime verification requires a prior manual commit and push to the managed firewall.

panorama_apply_bgp_candidateA

[DESTRUCTIVE] Applies an approved BGP plan to the candidate configuration. Requires plan_id and plan_hash. Candidate configuration only; no commit or push is performed.

panorama_validate_bgp_candidateA

[READ-ONLY] Validates the BGP candidate configuration without committing. Requires plan_id and plan_hash. Candidate configuration only; no commit or push is performed.

panorama_remove_bgp_candidateA

[DESTRUCTIVE] Two-phase removal of owned BGP resources. mode 'plan' returns a removal plan; mode 'apply' requires the returned plan_id and plan_hash. Pass disable_global to also disable global BGP (fails if unowned peers remain). Candidate configuration only; no commit or push is performed.

panorama_verify_bgp_runtimeA

[READ-ONLY] Verifies BGP runtime peer state and expected routes on the managed firewall by serial through Panorama. Runtime verification requires a prior manual commit and push to the managed firewall. Candidate configuration only; no commit or push is performed.

panorama_ipsec_bgp_guideA

[READ-ONLY] Static playbook for provisioning IPsec + BGP-over-IPsec on any Panorama the server is connected to. Covers what to ask the human vs. what to auto-resolve, the hard rules (candidate-only, no-touch-prod, PSK-as-secret, IPsec-before-BGP), the required tool sequence (preflight → suggest resources → plan_ipsec → apply_ipsec → validate_ipsec_v2 → plan_bgp → apply_bgp → validate_bgp → optional runtime verify), the common plan contract, explicit BGP policy intent, the BGP local-address binding, the global BGP local-as/router-id reuse rule, the IKE gateway ikev2 version emission, and naming conventions. Call this first in a session to learn the workflow without trial-and-error. Performs no API calls and mutates nothing.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yaylaerkan/palo-alto-bgp-ipsec'

If you have feedback or need assistance with the MCP directory API, please join our Discord server