用途:Batfish Configuration Analysis 是一个内置的 MCP 服务器技能,用于在网络变更前对设备配置做分析验证,覆盖部署前验证、可达性测试、ACL/防火墙追踪、差异分析和合规检查。它只分析上传的配置,不修改任何网络设备,属于严格只读操作。
主要能力:提供 8 个工具——batfish_upload_snapshot(上传配置并创建命名快照)、batfish_validate_config(按设备给出通过/失败、厂商识别与告警)、batfish_test_reachability(测试两端点间流量连通并给出路径追踪)、batfish_trace_acl(在 ACL 中追踪数据包匹配的 permit/deny 规则)、batfish_diff_configs(比较两个快照的路由与可达性差异)、batfish_check_compliance(按 6 种内置策略类型做合规检查)、batfish_list_snapshots、batfish_delete_snapshot。支持 Cisco IOS/IOS-XE/NX-OS、JunOS、Arista EOS、Palo Alto、F5 等多厂商。
使用方式:命令为 python3 -u mcp-servers/batfish-mcp/batfish_mcp_server.py(stdio 传输),需 Python 3.10+,依赖 pybatfish、mcp[cli]、python-dotenv,并要求运行 Batfish Docker 容器,配置 BATFISH_HOST 与 BATFISH_PORT 环境变量(另有 BATFISH_NETWORK,默认 netclaw)。典型流程为先 upload_snapshot 上传配置,再用 validate_config 校验,用 test_reachability 测关键路径,用 check_compliance 查策略;变更影响分析则分别上传前后快照后调用 diff_configs。
适用场景:变更前配置校验、ACL 故障排查、变更影响分析,可与配置推送、会话追踪、变更工单、防火墙规则分析和实验环境等技能配合,所有操作会自动记录审计。
限制:快照为临时数据,需依赖外部记录做持久化;错误类型包括 BATFISH_UNREACHABLE、SNAPSHOT_NOT_FOUND、INVALID_INPUT、DEVICE_NOT_FOUND、FILTER_NOT_FOUND。价格、性能指标及更多部署细节资料未提供。