MCP server for Juniper devices running Junos. Tools for executing operational commands and changing device configuration
{
"mcpServers": {
"mcp-server-junos": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
The mcp-server-junos project provides MCP tools for viewing operational state and changing configuraton of Juniper Networks devices with Junos operating system. it uses Juniper's junos-eznc Python SDK and FastMCP.
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
MIT. View license →
Is it maintained?
Last commit 324 days ago. 10 stars.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
Context cost
4 tools. ~200 tokens (0.1% of 200K).
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
get_factRetrieve basic information about the device, such as OS version and model.
show_commandExecute any specified show command on the device and return the output. It can be used to retrieve device configuration and execute ping command.
apply_configLoad and commit configuration changes to the device in both `set` and `junos` (curly brackets) formats.
list_devicesRetrieve the list of locally configured devices on the MCP server. The list include device name and IP address for remote access.
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Mcp Server Junos and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
The mcp-server-junos project provides MCP tools for viewing operational state and changing configuraton of Juniper Networks devices with Junos operating system.
it uses Juniper's junos-eznc Python SDK and FastMCP.
set and junos (curly brackets) formats.git clone <repository-url>
cd mcp-server-junos
Install the required dependencies:
pip install -r requirements.txt
Rename example config file config.example.yml to config.yml
mv config.example.yml config.yml
NOTE: If you want to include the configuration file in the docker image, please configure it in advance before building the container image. Otherwise, you can provide global access parameters into the container using Environment Variables (example in Usage section)
Rename example config file config.example.yml to config.yml and configure it accordingly, before
mv config.example.yml config.yml
Build docker container image
docker build -t mcp-server-junos .
The expected configuration file is named config.yml and it should be located in the root directory.
The supplied example config file config.example.yml can be used as a starting point
mv config.example.yml config.yml
If Environment variables are used, they will take precedence over configuration file parameters.
Using config file:
global:
# To listen on all available interfaces use "0.0.0.0"
server_host: 127.0.0.1
server_port: 10008
# Possible values: "sse" or "streamable-http"
server_transport: "streamable-http"
Using Environment variables:
MCP_SERVER_JUNOS_HOST="127.0.0.1"
MCP_SERVER_JUNOS_PORT=10008
MCP_SERVER_JUNOS_TRANSPORT="streamable-http"
LOG_LEVEL="INFO"
Using config file:
Configuration file key devices contains the dictionary of the device names with their respective access configuration.
device_name: Name of the device
host: IP address for accessuser: Username for accesspasswd: Password for accessport: TCP port for NETCONF/SSH accessExample:
access:
default:
user: "admin"
passwd: "admin@123"
port: 830
test: &test
user: "admin"
passwd: "admin@123"
port: 830
devices:
r1:
host: 172.20.20.2
user: "admin"
passwd: "admin@123"
port: 830
r2:
host: 172.20.20.3
<<: *test
Default access parameters can be specified for devices which are not explicitly configured in the configuration file.
Those can be used through exposed MCP tools by supplying IP address in the host argument.
First preference are environment variables:
MCP_SERVER_JUNOS_ACCESS_DEFAULT_USER="admin"
MCP_SERVER_JUNOS_ACCESS_DEFAULT_PASSWD="admin"
MCP_SERVER_JUNOS_ACCESS_DEFAULT_PORT=830
Second preference is config file:
access:
default:
user: "admin"
passwd: "admin"
port: 830
To use the MCP server, run the file:
python mcp_server_junos.py