shigechika avatar

Junos MCP

shigechika/junos-mcp

A complete operations toolkit for Juniper Networks gear that puts device management and upgrades into Claude's hands. Beyond basic show commands and config retrieval, you get the full lifecycle: firmware staging with checksum verification, pre-flight readiness checks, installation with rollback protection, and scheduled reboots. The push_config tool defaults to dry-run with commit confirmed plus health checks, so you can test changes safely before committing. Batch operations run commands or collect RSI diagnostics across multiple devices in parallel, with tag-based filtering to target specific router groups. The daily_brief tool scans alarms and syslog patterns across your fleet to generate morning health summaries. Built on junos-ops with NETCONF transport, it handles model-specific quirks like EX2300 unlink flags and timeout tuning automatically.

GitHub stars
1
tools
28
transport
STDIO
last updated
Oct 18, 2026

Tools

28 tools

Public tool metadata for what this MCP can expose to an agent.

get_device_factsGet basic device information (model, hostname, serial, version)

Get basic device information (model, hostname, serial, version)

No parameter schema in public metadata yet.

get_versionGet JUNOS version with upgrade status

Get JUNOS version with upgrade status

No parameter schema in public metadata yet.

get_router_listList routers from config.ini (optionally filtered by tags)

List routers from config.ini (optionally filtered by tags)

No parameter schema in public metadata yet.

health_checkReport server version + config status (router count, distinct tags). Lightweight; does NOT connect to any device

Report server version + config status (router count, distinct tags). Lightweight; does NOT connect to any device

No parameter schema in public metadata yet.

run_show_commandRun a single CLI show command (`output_format`: text/json/xml)

Run a single CLI show command (`output_format`: text/json/xml)

No parameter schema in public metadata yet.

run_show_commandsRun multiple CLI commands in a single session (`output_format`: text/json/xml)

Run multiple CLI commands in a single session (`output_format`: text/json/xml)

No parameter schema in public metadata yet.

run_show_command_batchRun a command on multiple devices in parallel (supports tag filter and `grep_pattern`)

Run a command on multiple devices in parallel (supports tag filter and `grep_pattern`)

No parameter schema in public metadata yet.

get_configGet device configuration (text/set/xml format)

Get device configuration (text/set/xml format)

No parameter schema in public metadata yet.

get_config_diffShow config diff against a rollback version

Show config diff against a rollback version

No parameter schema in public metadata yet.

push_configPush config with commit confirmed + health check

Push config with commit confirmed + health check

No parameter schema in public metadata yet.

push_config_startReturns the diff and a job_id without waiting for the commit; the commit runs on the same locked session

Returns the diff and a job_id without waiting for the commit; the commit runs on the same locked session

No parameter schema in public metadata yet.

push_config_resultPoll the background push job until it is no longer running

Poll the background push job until it is no longer running

No parameter schema in public metadata yet.

check_upgrade_readinessCheck if device is ready for upgrade

Check if device is ready for upgrade

No parameter schema in public metadata yet.

compare_versionCompare two JUNOS version strings

Compare two JUNOS version strings

No parameter schema in public metadata yet.

get_package_infoGet model-specific package file and hash

Get model-specific package file and hash

No parameter schema in public metadata yet.

list_remote_filesList files on remote device path

List files on remote device path

No parameter schema in public metadata yet.

copy_packageCopy firmware package via SCP with checksum

Copy firmware package via SCP with checksum

No parameter schema in public metadata yet.

install_packageInstall firmware with pre-flight checks (`unlink` flag for EX2300/EX3400)

Install firmware with pre-flight checks (`unlink` flag for EX2300/EX3400)

No parameter schema in public metadata yet.

rollback_packageRollback to previous package version

Rollback to previous package version

No parameter schema in public metadata yet.

schedule_rebootSchedule device reboot at specified time

Schedule device reboot at specified time

No parameter schema in public metadata yet.

collect_rsiCollect RSI/SCF with model-specific timeouts

Collect RSI/SCF with model-specific timeouts

No parameter schema in public metadata yet.

collect_rsi_batchCollect RSI/SCF from multiple devices in parallel (supports tag filter)

Collect RSI/SCF from multiple devices in parallel (supports tag filter)

No parameter schema in public metadata yet.

check_reachabilityProbe NETCONF reachability + available disk space per host (fast: no facts, 5s TCP probe)

Probe NETCONF reachability + available disk space per host (fast: no facts, 5s TCP probe)

No parameter schema in public metadata yet.

check_local_inventoryVerify local firmware checksums against config.ini inventory

Verify local firmware checksums against config.ini inventory

No parameter schema in public metadata yet.

check_remote_packagesVerify staged firmware checksum + available disk space on devices (post-SCP verification)

Verify staged firmware checksum + available disk space on devices (post-SCP verification)

No parameter schema in public metadata yet.

daily_briefMorning health check across multiple devices in parallel: alarms, interface up/down, syslog alert patterns, dual-RE faults, and optional route-count baseline; returns a CRITICAL/WARNING/OK Markdown summary

Morning health check across multiple devices in parallel: alarms, interface up/down, syslog alert patterns, dual-RE faults, and optional route-count baseline; returns a CRITICAL/WARNING/OK Markdown summary

No parameter schema in public metadata yet.

daily_brief_startRun the same sweep as a background job, returning a job_id at once

Run the same sweep as a background job, returning a job_id at once

No parameter schema in public metadata yet.

daily_brief_resultPoll the background daily_brief job until done

Poll the background daily_brief job until done

No parameter schema in public metadata yet.

Sponsors

Readme

junos-mcp

English | 日本語

MCP (Model Context Protocol) server for junos-ops.

Exposes Juniper Networks device operations to MCP-compatible AI assistants (Claude Desktop, Claude Code, OpenAI Codex, etc.) via STDIO transport. While junos-ops is the CLI tool for humans, junos-mcp is the AI-facing interface to the same powerful engine.

Features

Device Information

ToolDescriptionConnection
get_device_factsGet basic device information (model, hostname, serial, version)Yes
get_versionGet JUNOS version with upgrade statusYes
get_router_listList routers from config.ini (optionally filtered by tags)No
health_checkReport server version + config status (router count, distinct tags). Lightweight; does NOT connect to any deviceNo

CLI Command Execution


View the full README on GitHub

Details

Repository
github.com/shigechika/junos-mcp
Package
junos-mcp
Transport
STDIO
Registry
MCP registry, active

More from shigechika