使用说明
Cortex XDR MCP
非官方 --该项目不隶属于Palo Alto Networks,也不受其认可。
为Palo Alto Cortex XDR精心设计的MCP服务器。
此回购有意 不 将完整的Cortex XDR REST/OpenAPI表面转换为MCP工具。相反,它公开了一组较小的面向工作流的工具,这些工具分为四个服务器:
cortex-xdr-investigatecortex-xdr-respondcortex-xdr-engineercortex-xdr-admin(可选)
该实现是轻依赖的,在运行时只使用Python标准库。
建筑
回购被有意地分成几个小层:
client.py处理签名、身份验证回退、传输错误、gzip和JSON解码service.py拥有精心策划的Cortex XDR工作流程和输入验证servers/将工作流层作为MCP工具集公开mcp_runtime.py提供stdio MCP运行时verify_live.py对实时租户运行可重复的烟雾测试tests/涵盖传输、运行时、合同和服务行为
这使面向MCP的工具设计保持稳定,即使在底层Cortex API不一致的情况下也是如此。
为什么这个形状
Cortex XDR OpenAPI规范 notes/xdr_api/Cortex-xdr.json 它很大,端点很重。该项目遵循精心策划的MCP设计:
- 没有通用的REST传递
- 没有生的
request_data或过滤器阵列工具 - 读重调查与写重响应分离
- 在可行的情况下,异步Cortex工作流被打包到单个MCP工具中
服务器
cortex-xdr-investigate
阅读大量工具,了解事件分类、端点上下文、风险审查和XQL搜索。
工具:
list_incidentslist_alertsget_incident_casefilesearch_endpointsget_endpoint_contextlist_risky_entitiesget_entity_riskrun_xql
cortex-xdr-respond
用于遏制和补救的显式ID响应工具。
工具:
update_incidentupdate_alertsset_endpoint_isolationset_file_quarantine_statescan_endpointsretrieve_endpoint_filesrun_endpoint_scriptrun_forensics_triagemanage_hash_reputationcheck_job_status
cortex-xdr-engineer
安全工程和端点策略工作流。
工具:
list_profilesmanage_prevention_profilemanage_exception_rulemanage_prevention_overridemanage_iocsmanage_endpoint_tagsmanage_agent_packageslist_device_control_violations
cortex-xdr-admin
可选租户/管理员界面。保持与默认分析师代理的分离。
工具:
get_tenant_infolist_rbac_userslist_rbac_roleslist_user_groupsset_user_rolemanage_syslog_integrationmanage_authentication_settingslist_audit_logsmanage_xql_datasetmanage_lookup_dataset
配置
在启动任何服务器之前设置这些环境变量:
CORTEX_XDR_BASE_URLCORTEX_XDR_API_KEYCORTEX_XDR_API_KEY_ID
可选:
CORTEX_XDR_TIMEOUT_SECONDS违约:60CORTEX_XDR_VERIFY_TLS违约:trueCORTEX_XDR_AUTH_MODE违约:autoCORTEX_XDR_MCP_LOG_LEVEL违约:INFO
CORTEX_XDR_AUTH_MODE=auto 将首先尝试标准的公共API身份验证,并使用自动回退到高级签名身份验证 X-XDR-NONCE 和 X-XDR-TIMESTAMP 如果租户拒绝标准标头表单。
日志记录被写入stderr,因此stdout上的MCP stdio流量保持干净。集 CORTEX_XDR_MCP_LOG_LEVEL=DEBUG 当您需要请求级故障排除时。
示例见 .env.示例.
安全与验证
公共MCP界面旨在使错误更难发生:
- 变异工具需要非空
reason - 变异工具需要
confirm=true除非dry_run=true - 有意不公开不安全的自由格式原始REST参数
- 列表/搜索分页在内部被限制和规范化
- 在进行API调用之前验证工具输入
- API和运行时失败作为结构化错误返回
跑步
开发模式
使用 PYTHONPATH=src 直接从repo:
PYTHONPATH=src python3 -m cortex_xdr_mcp investigate
PYTHONPATH=src python3 -m cortex_xdr_mcp respond
PYTHONPATH=src python3 -m cortex_xdr_mcp engineer
PYTHONPATH=src python3 -m cortex_xdr_mcp admin
PYTHONPATH=src python3 -m cortex_xdr_mcp verify-live
安装模式
在本地安装包并使用生成的脚本:
uv pip install -e .
cortex-xdr-investigate
cortex-xdr-respond
cortex-xdr-engineer
cortex-xdr-admin
cortex-xdr-verify-live
实时验证
您可以在不改变状态的情况下对实时Cortex XDR租户运行可重复的烟雾测试:
PYTHONPATH=src python3 -m cortex_xdr_mcp verify-live
有用的标志:
--json用于机器可读输出--no-admin跳过管理表面探测--no-extended跳过额外的端点工程和RBAC探测--tool-timeout 60增加每个工具的超时时间--xql-wait 30为XQL烟雾查询提供更长的完成窗口
验证者:
- 运行直接健康检查以确认身份验证
- 在stdio上练习具有代表性的MCP工具
- 仅使用
dry_run=true用于可写工具 - 注释已知
403并使用基于规范的提示来标记门控故障
测试
与以下人员一起运行单元和合同测试:
PYTHONPATH=src python3 -m unittest discover -s tests -t .
python3 -m compileall src
测试套件旨在在以下情况下大声失败:
- 身份验证和传输回归
- MCP协议/运行时回归
- 服务请求形状漂移
- 意外扩大不安全行为的输入验证更改
如果添加或更改工具,请更新特定于工具的单元测试和合同测试。
备注
- 该实现目前处于所提供的Cortex XDR API范围内。
- 严格的XDR规范没有暴露出一级漏洞API,因此设计强调调查、响应和工程工作流。
- 可选的管理服务器存在,但在低信任代理设置中默认情况下不应连接它。
- 客户端支持标准和高级Cortex XDR API身份验证模式。
- 一些Cortex XDR端点仍然是租户或功能门控的,即使它们存在于规范中;
verify-live有助于将代码问题与租户能力问题分开。
许可证
该项目根据 MIT许可证.