Junos MCP服务器(MCP服务器Junos)
概述
这 mcp-server-junos 该项目提供MCP工具,用于查看瞻博网络设备的运行状态和更改配置 朱诺斯 操作系统。 它使用Juniper的 junos-eznc Python SDK和 FastMCP.
工具
- get_act:检索有关设备的基本信息,如操作系统版本和型号。
- show_命令:在设备上执行任何指定的show命令并返回输出。它可用于检索设备配置并执行ping命令。
- apply_config:在两者中加载并提交配置更改到设备
set和junos(花括号)格式。 - 列表_设备:检索以下列表 本地配置 MCP服务器上的设备。清单包括 设备名称 和 IP地址 用于远程访问。
安装
- 克隆存储库:
git clone
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:
# 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: "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- MCP服务器在可配置端口(默认10008)和IP上公开HTTP SSE接口
- 本地连接到MCP SSE服务器的URL为:
http://127.0.0.1:10008/sse
测试
使用Github Copilot和VS Code作为MCP客户端,使用HTTP SSE进行测试。
- 各种显示命令
- 基本设备配置
- 设备间ping
着手做
- 制作Docker镜像
许可证
该项目根据麻省理工学院许可证获得许可。
