Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Batfish network configuration analysis -- pre-deployment validation, reachability testing, ACL/firewall tracing, differential analysis, compliance checking. Use when validating configs before deployment, testing traffic paths, tracing ACL rules, comparing config versions, or auditing compliance policies. Strictly read-only.
.claude/skills/automateyournetwork-batfish-config-analysis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 3% | 0% |
python3 -u mcp-servers/batfish-mcp/batfish_mcp_server.py (stdio transport)BATFISH_HOST and BATFISH_PORT environment variablespybatfish, mcp[cli], python-dotenv| Tool | Parameters | What It Does | |------|-----------|--------------| | batfish_upload_snapshot | snapshot_name, configs/config_path, network | Upload device configs to Batfish and create a named snapshot | | batfish_validate_config | snapshot_name, network | Validate configs with per-device pass/fail status, vendor detection, warnings | | batfish_test_reachability | snapshot_name, src_ip, dst_ip, protocol, dst_port | Test if traffic can flow between two endpoints with full path trace | | batfish_trace_acl | snapshot_name, device, filter_name, src_ip, dst_ip, protocol, dst_port | Trace a packet through ACL rules to find matching permit/deny rule | | batfish_diff_configs | reference_snapshot, candidate_snapshot, include_routes, include_reachability | Compare two snapshots for route and reachability differences | | batfish_check_compliance | snapshot_name, policy_type | Check configs against compliance policies (6 built-in policy types) | | batfish_list_snapshots | network | List all available snapshots | | batfish_delete_snapshot | snapshot_name, network | Delete a snapshot |
When a user wants to validate configurations before deployment:
batfish_upload_snapshot with inline configs dict or path to config directorybatfish_validate_config to check parse status, vendor detection, warnings/errorsbatfish_test_reachability for critical traffic pathsbatfish_check_compliance against organizational policiesbash# Upload proposed configs batfish_upload_snapshot snapshot_name="pre-change-site-a" config_path="/path/to/configs/" # Validate parse status batfish_validate_config snapshot_name="pre-change-site-a" # Test critical path batfish_test_reachability snapshot_name="pre-change-site-a" src_ip="10.1.1.1" dst_ip="10.2.2.1" protocol="TCP" dst_port=443 # Check compliance batfish_check_compliance snapshot_name="pre-change-site-a" policy_type="interface_descriptions"
When comparing before/after configurations:
batfish_upload_snapshot with current configsbatfish_upload_snapshot with proposed configsbatfish_diff_configs to find route and reachability differencesbatfish_trace_acl on any newly denied trafficWhen investigating access control issues:
batfish_upload_snapshot with device configsbatfish_trace_acl with device, ACL name, and packet headers| Skill | Integration | |-------|-------------| | pyats-config-mgmt | Validate configs with Batfish before pushing via pyATS | | gait-session-tracking | All Batfish operations automatically logged | | servicenow-change-workflow | Reference Batfish validation in change request evidence | | fwrule-analyzer | Complement ACL trace with cross-vendor overlap analysis | | cml-lab-lifecycle | Validate CML lab configs with Batfish analysis |
docker ps | grep batfish)batfish_list_snapshots to see available snapshotsbatfish_validate_config to list devices in snapshotBATFISH_HOST -- Batfish hostname (default: localhost)BATFISH_PORT -- Batfish port (default: 9997)BATFISH_NETWORK -- Default network name (default: netclaw)Other measured skills in the registry, with their headline benchmark lift.