返回市场
麦克服-杰诺斯

麦克服-杰诺斯

作者:dpajin9 星标更新:2025-05-19

项目介绍

Junos MCP Server (mcp-server-junos)

概述

mcp-server-junos项目提供了用于查看Juniper网络设备运行状态并更改配置的MCP工具,这些设备使用的是Junos操作系统。该项目使用了Juniper的junos-eznc Python SDK 和 FastMCP

工具

  • get_fact: 获取设备的基本信息,如操作系统版本和型号。
  • show_command: 在设备上执行任何指定的显示命令,并返回输出结果。可以用来获取设备配置或执行ping命令。
  • apply_config: 将配置更改加载到设备中并提交,支持setjunos(大括号)两种格式。
  • list_devices: 获取MCP服务器上本地配置的设备列表。该列表包括设备名称和IP地址,以便远程访问。

安装

  1. 克隆仓库:

    git clone <repository-url>
    cd mcp-server-junos
    
  2. 安装所需依赖项:

    pip install -r requirements.txt
    
  3. 将示例配置文件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
  • MCP服务器在可配置端口(默认10008)和IP地址上公开HTTP SSE接口。
  • 连接到本地MCP SSE服务器的URL为:http://127.0.0.1:10008/sse

测试

使用Github Copilot和VS Code作为MCP客户端进行HTTP SSE测试。

  • 各种显示命令
  • 基本设备配置
  • 设备之间的ping测试

待办事项

  • 制作Docker镜像

许可证

该项目采用MIT许可证。