Install any skill in seconds. Free to start, no credit card required.
Get Started Free →JunOS routing operations via pyATS — OSPF/OSPFv3, BGP, route table, MPLS/LDP/RSVP, TED, PFE, ping, traceroute across Juniper devices. Use when checking Juniper OSPF neighbors, viewing BGP summary, inspecting MPLS LSPs, tracing routes, or auditing the JunOS route table.
.claude/skills/automateyournetwork-pyats-junos-routing/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 160% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 523% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 529% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 327% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 468% | 0% |
bashPYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "${PYATS_PYTHON:-python3} -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"<command>"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor 10.1.1.2 detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor instance all"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor instance my-instance"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface brief"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface ge-0/0/0"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface ge-0/0/0 detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface brief instance my-instance"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface detail instance my-instance"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface instance my-instance"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface ge-0/0/0 detail instance my-instance"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database summary"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database external extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database opaque-area"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database advertising-router self detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database advertising-router 10.0.0.1 extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database lsa-id 10.0.0.1 detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database network lsa-id 10.0.0.1 detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database router extensive"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf overview"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf overview extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf route brief"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf route detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf route network extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf route 10.0.0.0/24"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf statistics"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 neighbor"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 neighbor detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 neighbor extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 neighbor instance all"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 interface"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 interface extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database external extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database network detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database link advertising-router 10.0.0.1 detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database advertising-router 10.0.0.1 extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 overview"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 overview extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 route network extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 route 2001:db8::/32"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp summary"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp summary instance my-vrf"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp neighbor"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp neighbor 10.1.1.2"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group brief"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group brief | no-more"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group detail | no-more"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group summary"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group summary | no-more"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route summary"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route 10.0.0.0/24"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route 10.0.0.1/32 extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route extensive 10.0.0.0/24"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol ospf"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol ospf extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol bgp"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol bgp extensive 10.0.0.0/24"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol static"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol direct"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table inet.0"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table inet.3"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table mpls.0"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table my-vrf.inet.0 10.0.0.0/24"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table inet.0 label-switched-path my-lsp"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol ospf table inet.0 extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol bgp table my-vrf.inet.0 extensive 10.0.0.0/24"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route advertising-protocol bgp 10.1.1.2"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route advertising-protocol bgp 10.1.1.2 10.0.0.0/24"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route advertising-protocol bgp 10.1.1.2 10.0.0.0/24 detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route receive-protocol bgp 10.1.1.2"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route receive-protocol bgp 10.1.1.2 10.0.0.0/24"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route receive-protocol bgp 10.1.1.2 extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route receive-protocol bgp 10.1.1.2 10.0.0.0/24 extensive"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route instance detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route instance my-vrf"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route logical-system my-lsys"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route forwarding-table summary"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route forwarding-table label 100000"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show mpls lsp name my-lsp detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show mpls lsp name my-lsp extensive"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show mpls ldp parameters"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show mpls ldp discovery detail"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show configuration protocols mpls label-switched-path my-lsp"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show configuration protocols mpls path my-path"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show configuration interfaces ge-0/0/0 unit 0 family bridge vlan-id"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp overview"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp neighbor"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp session"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp session 10.1.1.2 detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp interface ge-0/0/0"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp interface ge-0/0/0 detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp database session 10.1.1.2"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show rsvp neighbor"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show rsvp neighbor detail"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show rsvp session"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show rsvp session transit"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ted database extensive"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ted database extensive 10.0.0.1"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ted database 10.0.0.1"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show pfe route summary"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show pfe statistics traffic"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show pfe statistics ip icmp"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show krt queue"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show krt state"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 count 5"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 source 10.0.0.1 count 5"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 size 1500 count 5 do-not-fragment"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 source 10.0.0.1 size 1500 count 5 tos 184 rapid"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 ttl 10 count 5 wait 2"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping mpls rsvp my-lsp"}'
bashpyats_run_show_command '{"device_name":"juniper-rtr-01","command":"traceroute 10.0.0.2 no-resolve"}' pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"traceroute 10.0.0.2 source 10.0.0.1 no-resolve"}'
show ospf overview → area count, SPF runs, LSA count
→ show ospf neighbor → verify all adjacencies Full
→ show ospf interface brief → check interface states (DR/BDR/DROther)
→ show ospf database summary → LSA count per type
→ show ospf statistics → error counters, retransmits
→ Flag: neighbors not Full, interface cost mismatches, high retransmit counts
→ GAITshow bgp summary → peer state, prefixes received, session uptime
→ show bgp neighbor {peer} → per-peer: hold time, keepalive, AFI/SAFI, import/export policy
→ show route advertising-protocol bgp {peer} → what we advertise
→ show route receive-protocol bgp {peer} → what we receive
→ Flag: peers not Established, prefix count anomalies, flapping sessions
→ GAITshow mpls lsp name {lsp} detail → path, state, bandwidth
→ show rsvp session → RSVP session state
→ show ldp session → LDP adjacency state
→ show route table mpls.0 → label bindings
→ ping mpls rsvp {lsp} → end-to-end LSP verification
→ show ted database extensive → TE topology view
→ GAITshow route summary → route count per table and protocol
→ show route protocol ospf → OSPF-learned routes
→ show route protocol bgp → BGP-learned routes
→ show route protocol static → static routes
→ show route forwarding-table summary → FIB state
→ show pfe route summary → PFE forwarding entries
→ show krt queue → pending route updates (should be 0)
→ GAITping {target} count 5 → basic reachability
→ ping {target} size 1500 count 5 do-not-fragment → MTU verification
→ traceroute {target} no-resolve → path analysis
→ Correlate with show route {target} → verify expected next-hop
→ GAIT| Skill | Integration | |-------|-------------| | pyats-junos-system | Chassis/system context (RE CPU, FPC state) for routing issues | | pyats-junos-interfaces | Interface state complements routing protocol analysis | | junos-network | JunOS MCP for config changes; pyATS for operational verification | | pyats-routing | Same methodology for Cisco devices — multi-vendor routing audits | | pyats-parallel-ops | pCall pattern for fleet-wide BGP/OSPF audits | | te-path-analysis | ThousandEyes path data complements traceroute analysis | | netbox-reconcile | Cross-reference learned routes with NetBox prefix assignments | | gait-session-tracking | Every command logged in GAIT |
count to avoid infinite pingsno-resolve on traceroute — avoids DNS timeoutsOther measured skills in the registry, with their headline benchmark lift.