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
- 01Device inventory defined in a TOML file
- 02Send commands and return device output
- 03Send configuration commands with automatic commit or save
- 04Default section for shared username and password
Use cases
- 01Letting an LLM check the state of network devices
- 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.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEmcp-netmiko-server
An MCP server that enables LLMs interacting with your network devices via SSH (netmiko).
| Tool | Description |
|---|---|
| get_network_device_list | Return list of network device names and types defined in a TOML file. |
| send_command_and_get_output | Send a command to a device and returns its output. |
| set_config_commands_and_commit_or_save | Send configuration commands to a device and commit or save automatically. |
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
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.