mcp-server-junos项目提供了用于查看Juniper网络设备运行状态并更改配置的MCP工具,这些设备使用的是Junos操作系统。该项目使用了Juniper的junos-eznc Python SDK 和 FastMCP。
set和junos(大括号)两种格式。克隆仓库:
git clone <repository-url>
cd mcp-server-junos
安装所需依赖项:
pip install -r requirements.txt
将示例配置文件config.example.yml重命名为config.yml
mv config.example.yml config.yml
预期的配置文件名为config.yml,应位于根目录下。
提供的示例配置文件config.example.yml可以用作起点。
mv config.example.yml config.yml
如果使用环境变量,它们将优先于配置文件中的参数。
使用配置文件:
global:
# 要监听所有可用接口,请使用 "0.0.0.0"
server_host: 127.0.0.1
server_port: 10008
# 可能的值:"sse" 或 "streamable-http"
server_transport: "sse"
使用环境变量:
MCP_SERVER_JUNOS_HOST="127.0.0.1"
MCP_SERVER_JUNOS_PORT=10008
MCP_SERVER_JUNOS_TRANSPORT="sse"
LOG_LEVEL="INFO"
使用配置文件:
配置文件键devices包含设备名称及其相应访问配置的字典。
device_name: 设备名称
host: 访问IP地址user: 访问用户名passwd: 访问密码port: NETCONF/SSH访问的TCP端口示例:
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
对于未在配置文件中明确配置的设备,可以指定默认访问参数。这些可以通过暴露的MCP工具通过提供IP地址作为host参数来使用。
第一优先级是环境变量:
MCP_SERVER_JUNOS_ACCESS_DEFAULT_USER="admin"
MCP_SERVER_JUNOS_ACCESS_DEFAULT_PASSWD="admin"
MCP_SERVER_JUNOS_ACCESS_DEFAULT_PORT=830
第二优先级是配置文件:
access:
default:
user: "admin"
passwd: "admin"
port: 830
要使用MCP服务器,运行以下文件:
python mcp_server_junos.py
http://127.0.0.1:10008/sse使用Github Copilot和VS Code作为MCP客户端进行HTTP SSE测试。
该项目采用MIT许可证。