mcpField
M
mcp-netmiko-server

mcp-netmiko-server

Local
github.com/upaCloud & Infra35Updated 74w ago

About mcp-netmiko-server

mcp-netmiko-server is an MCP server that lets LLMs interact with network devices over SSH using netmiko. It reads device inventory from a TOML file and can run commands or push configuration changes.

Key features

  1. 01Device inventory defined in a TOML file
  2. 02Send commands and return device output
  3. 03Send configuration commands with automatic commit or save
  4. 04Default section for shared username and password

Use cases

  1. 01Letting an LLM check the state of network devices
  2. 02Pushing configuration changes to devices from an MCP client

MCP support

This is an MCP server that exposes three tools to MCP clients: get_network_device_list, send_command_and_get_output, and set_config_commands_and_commit_or_save.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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 sample.network.toml:

[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"
      ]
    }
  }
}

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.