panw-scm-mcp
v0.1.8
Published
Unofficial MCP server for Palo Alto Networks Strata Cloud Manager operations.
Downloads
1,097
Maintainers
Readme
panw-scm-mcp
Unofficial MCP server for Palo Alto Networks Strata Cloud Manager operations.
This server exposes Strata Cloud Manager configuration and operations workflows to MCP clients through structured tools. It is designed for npx usage and reads credentials from environment variables.
Status
This is an early operational foundation. It covers the baseline configuration and operations surface:
- Resource catalog for objects, security, network, deployment, setup, identity, and mobile-agent domains
- Generic list/get/apply/delete tools for supported SCM resources
- YAML load and YAML backup tools
- Commit and job monitoring tools
- Device operations
- Local configuration version listing and download
- Incident search and detail lookup
- Dry-run and explicit confirmation guards for destructive actions
- Agent operations enhancements: reference search, security policy analysis, backup diffing, incident summarization, and safe change planning
Advanced agent workflows such as reference analysis, policy diffing, and remediation reasoning are intentionally left for later enhancement.
Install and Run
npx panw-scm-mcpFor local development:
npm install
npm run build
node dist/index.jsEnvironment Variables
Required:
export SCM_CLIENT_ID="your-client-id"
export SCM_CLIENT_SECRET="your-client-secret"
export SCM_TSG_ID="your-tsg-id"Optional:
export SCM_REGION="americas"
export SCM_API_BASE_URL="https://api.strata.paloaltonetworks.com"
export SCM_INSIGHTS_BASE_URL="https://api.sase.paloaltonetworks.com"
export SCM_INSIGHTS_REGION="americas"
export SCM_ADEM_BASE_URL="https://api.sase.paloaltonetworks.com"
export SCM_ADEM_REGION="americas"
export SCM_ADEM_SUBTENANT=""
export SCM_TOKEN_URL="https://auth.apps.paloaltonetworks.com/oauth2/access_token"
export SCM_SEND_REGION_HEADER="false"
export SCM_DRY_RUN="false"
export SCM_REQUEST_TIMEOUT_MS="30000"
export SCM_LOG_LEVEL="info"Most SCM configuration APIs must not include x-panw-region. Keep SCM_SEND_REGION_HEADER=false unless you are calling a service that explicitly requires the region header.
Insights and ADEM APIs require PANW SASE region codes: americas, au, ca, de, europe, in, jp, sg, or uk. Common aliases such as singapore, southeast-asia, japan, and united-kingdom are normalized automatically.
Legacy variable names SCM_SCM_CLIENT_ID, SCM_SCM_CLIENT_SECRET, and SCM_SCM_TSG_ID are also accepted.
The aliases PANW_SCM_CLIENT_ID, PANW_SCM_CLIENT_SECRET, PANW_SCM_TSG_ID, PANW_MGMT_CLIENT_ID, PANW_MGMT_CLIENT_SECRET, and PANW_MGMT_TSG_ID are accepted for environments that already use those naming conventions.
MCP Client Config
Example:
{
"mcpServers": {
"panw-scm": {
"command": "npx",
"args": ["panw-scm-mcp"],
"env": {
"SCM_CLIENT_ID": "your-client-id",
"SCM_CLIENT_SECRET": "your-client-secret",
"SCM_TSG_ID": "your-tsg-id",
"SCM_REGION": "americas"
}
}
}
}Tools
Core:
scm_auth_testscm_resource_catalogscm_list_resourcescm_get_resourcescm_apply_resourcescm_delete_resourcescm_backup_resourcescm_load_yamlscm_find_referencesscm_analyze_security_policyscm_compare_resource_backupscm_build_change_planscm_summarize_incidents
Operations:
scm_commitscm_list_insights_alertsscm_list_insights_applicationsscm_list_insights_mobile_usersscm_list_insights_locationsscm_list_insights_remote_networksscm_list_insights_service_connectionsscm_list_insights_tunnelsscm_get_adem_agent_scorescm_get_adem_agent_metricsscm_get_adem_agent_propertiesscm_get_adem_application_scorescm_adem_queryscm_list_jobsscm_get_jobscm_device_operationscm_list_local_config_versionsscm_download_local_configscm_list_incidentsscm_show_incident
Examples
List address objects in a folder:
{
"domain": "objects",
"resource": "address",
"folder": "Shared",
"limit": 100
}Create or update an address object with dry run:
{
"domain": "objects",
"resource": "address",
"folder": "Shared",
"dryRun": true,
"data": {
"name": "webserver-1",
"ip_netmask": "10.1.1.10/32",
"description": "Managed through MCP"
}
}Delete requires explicit confirmation unless dry-run is enabled:
{
"domain": "objects",
"resource": "address",
"folder": "Shared",
"name": "webserver-1",
"confirm": true
}Commit also requires explicit confirmation unless dry-run is enabled:
{
"folders": ["Shared"],
"description": "Commit changes from MCP",
"confirm": true
}Find where an object is referenced before deleting it:
{
"target": "webserver-1",
"scope": {
"folder": "Shared"
}
}Analyze security policy hygiene:
{
"folder": "Shared",
"limit": 500
}Compare current resources to a YAML backup:
{
"domain": "objects",
"resource": "address",
"folder": "Shared",
"baselineYaml": "data:\n - name: webserver-1\n ip_netmask: 10.1.1.10/32\n"
}Build a preflight change plan:
{
"intent": "Replace an obsolete address object and push the candidate config",
"operations": [
{
"tool": "scm_find_references",
"arguments": {
"target": "old-webserver",
"scope": {
"folder": "Shared"
}
},
"reason": "Confirm the object is not still used by policy"
},
{
"tool": "scm_delete_resource",
"arguments": {
"domain": "objects",
"resource": "address",
"folder": "Shared",
"name": "old-webserver",
"dryRun": true
},
"risk": "Deleting shared objects can break rules that reference them"
}
]
}Notes
This project is not an official Palo Alto Networks product.
The SCM API surface changes over time. If a tenant uses a different path for a specific SCM service, update the resource catalog or set SCM_API_BASE_URL for the target API gateway.
