NETCONF设备管理服务

通过NETCONF协议管理Nokia SR OS设备的服务器,支持多设备同时管理、配置编辑和状态查询。

  • by coolexer
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 coolexer/netconf-mcp-server

使用说明

诺基亚SR OS NETCONF MCP服务器

MCP服务器,用于通过Claude Desktop的NETCONF管理诺基亚SR OS设备。

特性

  • MD-CLI命令 --通过诺基亚特定的NETCONF RPC执行显示命令
  • 获取配置/获取状态 --使用子树过滤器检索配置和操作状态
  • 编辑配置 --使用合并/替换/删除操作修改配置
  • 候选人工作流程 --编辑→ 比较→ 提交/回滚以确保安全更改
  • 运行时凭据 --配置文件中没有密码;通过工具调用连接
  • 多设备 --同时管理多个SR OS设备

安装

先决条件

设置

# Clone or copy the project
cd nokia-netconf-mcp

# Option A: uv (recommended for Claude Desktop)
uv sync

# Option B: pip
pip install -e .

本地测试

# With uv
uv run nokia-netconf-mcp

# With pip
nokia-netconf-mcp

服务器通过stdio进行通信,它将在stdin上等待MCP协议消息。

Claude桌面配置

编辑您的Claude Desktop配置文件:

  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

使用紫外线(推荐)

{
  "mcpServers": {
    "nokia-netconf": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\YourUser\\nokia-netconf-mcp",
        "run",
        "nokia-netconf-mcp"
      ]
    }
  }
}

直接使用Python

{
  "mcpServers": {
    "nokia-netconf": {
      "command": "python",
      "args": [
        "-m",
        "nokia_netconf_mcp.server"
      ],
      "env": {
        "PYTHONPATH": "C:\\Users\\YourUser\\nokia-netconf-mcp\\src"
      }
    }
  }
}

用法

配置后,重新启动Claude Desktop。工具将自动显示。

1.连接到设备

使用用户名admin和密码Nokia123连接到我的SR OS路由器192.168.1.1,称之为pe1

克劳德会打电话的 sros_connect 凭你的证件。

2.显示命令

“显示pe1上的路由器接口” “在pe1上显示BGP摘要” “基于pe1显示服务id 100”

3.获取配置

“从pe1获取正在运行的VPRN配置” “显示pe1上的端口配置”

4.编辑配置(安全候选工作流)

“在pe1上创建IP为10.10.10.5/32的环回接口lo5”

克劳德将:

  1. sros_edit_config → 写信给候选人
  2. sros_compare → 显示差异
  3. 要求确认
  4. sros_commit 或 sros_rollback

5.管理会话

“列出我的所有SROS会话” “断开与pe1的连接”

工具参考

工具 说明
sros_connect 连接到设备(主机、端口、用户名、密码)
sros_disconnect 关闭NETCONF会话
sros_cli_command 执行MD-CLI显示命令
sros_get_config NETCONF使用子树过滤器获取配置(正在运行/候选)
sros_get_state 使用子树过滤器获取NETCONF(操作状态)
sros_edit_config NETCONF编辑配置(合并/替换/删除)
sros_commit 推荐候选人→ 跑步
sros_rollback 放弃候选更改
sros_compare 候选人与跑步者的差异
sros_list_sessions 列出活动会话

诺基亚特别注意事项

  • 用途 device_params={"name": "alu"} 适用于ncclient(诺基亚/ALU NETCONF方言)
  • MD-CLI命令执行完毕 md-cli-raw-command RPC(urn:nokia.com:sros:ns:yang:sr:oper-global)
  • 配置命名空间: urn:nokia.com:sros:ns:yang:sr:conf
  • 状态命名空间: urn:nokia.com:sros:ns:yang:sr:state
  • 子树过滤器遵循诺基亚杨型号结构

故障排除

连接被拒绝:确保SR OS设备上启用了NETCONF:

configure system management-interface netconf admin-state enable
configure system management-interface netconf auto-config-save
configure system security user-params local-user user "admin" access netconf

超时:增加超时时间 sros_connect (默认60秒)。较大的get配置响应可能需要更多时间。

功能不匹配:服务器使用 device_params={"name": "alu"}。如果您的SR操作系统版本有问题,请检查ncclient兼容性。