mcp-netmiko-server

mcp-netmiko-server

4

MCP-netmiko-server is a Model Context Protocol server designed for seamless interaction with network devices using SSH and Netmiko. It provides functionality to manage device configurations and execute commands remotely, facilitating efficient network operations.

mcp-netmiko-server

An MCP server that enables LLMs interacting with your network devices via SSH (netmiko).

ToolDescription
get_network_device_listReturn list of network device names and types defined in a TOML file.
send_command_and_get_outputSend a command to a device and returns its output.
set_config_commands_and_commit_or_saveSend configuration commands to a device and commit or save automatically.
mcp-netmiko-demo

How to use

  • Install
git clone https://github.com/upa/mcp-netmiko-server
cd mcp-netmiko-server

# Write your toml file that lists your devices
vim my-devices.network.toml

# Run via stdio
uv run --with "mcp[cli]" --with netmiko main.py my-devices.network.toml

# Run as an SSE server: URL is http://localhost:10000/sse in this case
uv run --with "mcp[cli]" --with netmiko main.py my-devices.network.toml --sse
  • Configuration

List your network devices in a toml file like :

[default]

username = "rouser"
password = "rouserpassword"

[qfx1]

hostname = "172.16.0.40"
device_type = "juniper_junos"

[nexus1]

hostname = "nexus1.lab"
device_type = "cisco_nxos"

[default] is a special section that defines the default values such as username and password. Devices inherit the default values if not defined on their sections.

For device_type values, see netmiko Supported Platforms.

  • claude desktop config json:
{
  "mcpServers": {
    "netmiko server": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "--with",
        "netmiko",
        "[PATH TO]/mcp-netmiko-server/main.py",
        "[PATH TO]/YOUR-DEVICE.toml"
      ]
    }
  }
}