使用说明
项目简介
Netmiko MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在使大型语言模型 (LLM) 能够通过 SSH 协议和 Netmiko 库与网络设备进行交互。它提供了一组工具,允许 LLM 执行如设备信息查询、命令发送和配置更改等网络管理任务,从而实现网络设备的自动化管理。
主要功能点
- 列出设备 (list_devices): 允许 LLM 获取配置文件中定义的网络设备列表,包括设备名称和类型,以便 LLM 了解可以操作的网络设备。
- 发送命令并获取输出 (send_command_and_get_output): 允许 LLM 向指定的网络设备发送命令,并返回命令执行的详细输出结果,使 LLM 能够获取设备运行状态和信息。
- 配置命令并提交/保存 (set_config_commands_and_commit_or_save): 允许 LLM 向网络设备发送配置命令,并自动执行配置的提交或保存操作,从而实现网络设备的自动化配置更改。
安装步骤
-
克隆仓库到本地
git clone https://github.com/upa/mcp-netmiko-server cd mcp-netmiko-server -
创建设备配置文件 复制 'test/sample.toml' 文件并重命名为 'my-devices.toml',然后根据您的网络环境修改 'my-devices.toml' 文件,配置需要管理的网络设备信息。配置文件格式如下,您可以参考 sample.toml 文件:
[default] username = "默认用户名" password = "默认密码" [设备名称1] hostname = "设备1主机名或IP地址" device_type = "设备1类型 (例如: juniper_junos, cisco_nxos)" [设备名称2] hostname = "设备2主机名或IP地址" device_type = "设备2类型" username = "设备2用户名 (如果与默认用户名不同)" password = "设备2密码 (如果与默认密码不同)"'[default]' 部分定义了默认的用户名和密码,设备配置部分可以继承这些默认值。'device_type' 的可选值请参考 netmiko Supported Platforms。
-
运行 MCP 服务器
- 标准输入/输出模式 (stdio): 这是默认的运行模式,通过标准输入和输出与 MCP 客户端通信。
uv run --with mcp[cli] --with netmiko main.py my-devices.toml - SSE 服务器模式: 以 SSE (Server-Sent Events) 服务器模式运行,通过 HTTP SSE 与 MCP 客户端通信。服务器 URL 为 'http://localhost:10000/sse'。
uv run --with mcp[cli] --with netmiko main.py my-devices.toml --sse
- 标准输入/输出模式 (stdio): 这是默认的运行模式,通过标准输入和输出与 MCP 客户端通信。
服务器配置
MCP 客户端需要配置 MCP 服务器的连接信息才能正常使用。以下是 Claude 桌面客户端的 MCP 服务器配置示例,您需要根据您的实际情况进行修改:
{ "mcpServers": { "netmiko server": { "command": "uv", "args": [ "run", "--with", "mcp[cli]", "--with", "netmiko", "[仓库路径]/mcp-netmiko-server/main.py", "[设备配置文件路径]/my-devices.toml" ] } } }
配置参数说明:
- '"netmiko server"': 服务器名称,您可以自定义。
- '"command": "uv"': 启动服务器的命令,这里使用 'uv' 运行器。
- '"args"': 启动参数列表,包括:
- '"run"': 'uv' 运行器的子命令。
- '"--with"': 'uv' 运行器的参数,用于加载依赖。
- '"mcp[cli]"': 加载 'mcp' 库的命令行接口组件。
- '"--with"': 'uv' 运行器的参数,用于加载依赖。
- '"netmiko"': 加载 'netmiko' 库。
- '"[仓库路径]/mcp-netmiko-server/main.py"': 请替换为 'main.py' 文件在您本地文件系统中的绝对路径。
- '"[设备配置文件路径]/my-devices.toml"': 请替换为您创建的设备配置文件 'my-devices.toml' 的绝对路径。
请务必将 '[仓库路径]' 和 '[设备配置文件路径]' 替换为实际的本地路径。
基本使用方法
配置完成后,在 MCP 客户端中选择 "netmiko server" (或您自定义的服务器名称),即可连接到 Netmiko MCP 服务器。LLM 可以通过自然语言指令调用服务器提供的工具,例如:
- "使用 'list_devices' 工具列出所有网络设备"
- "使用 'send_command_and_get_output' 工具,在设备 'qfx1' 上执行命令 'show version'"
- "使用 'set_config_commands_and_commit_or_save' 工具,在设备 'nexus1' 上配置 VLAN 10"
LLM 将根据工具描述和参数要求,自动构建 MCP 请求并发送给服务器,服务器执行相应的网络操作后,将结果返回给 LLM。
信息
分类
桌面与硬件