概览
What is mcp-netmiko-server?
It is an MCP server that enables LLMs to interact with network devices via SSH using the Netmiko library. It provides tools to list devices, send commands, and apply configuration changes.
How to use mcp-netmiko-server?
Clone the repository, create a TOML configuration file listing your devices with credentials, and run the server using uv run with either stdio or SSE transport. For Claude Desktop, add the server configuration to your claude_desktop_config.json pointing to the script and TOML file.
Key features of mcp-netmiko-server
- List network devices defined in a TOML file
- Send arbitrary commands to devices and retrieve output
- Send configuration commands with automatic commit or save
- Supports multiple device platforms via Netmiko (Juniper, Cisco, etc.)
- Default credentials inheritance per TOML section
- Runs as stdio or SSE server
Use cases of mcp-netmiko-server
- Automate network troubleshooting by querying device status via LLM
- Apply configuration changes across multiple devices through conversational AI
- Inventory network devices and retrieve operational data
FAQ from mcp-netmiko-server
What is the server's purpose?
It allows LLMs to execute SSH commands on network devices using Netmiko, acting as a bridge between AI and network infrastructure.
How do I configure network devices?
Create a TOML file with a [default] section for global credentials (username, password) and per-device sections specifying hostname and device_type (e.g., juniper_junos, cisco_nxos).
How do I run the server?
Use uv run --with "mcp[cli]" --with netmiko main.py <path-to-toml-file> for stdio. Add --sse to run as an SSE server at http://localhost:10000/sse.
What are the dependencies?
The server requires uv, the mcp[cli] package, netmiko, and a TOML file for device definitions. All dependencies are managed via uv run.
Does it support both stdio and SSE transports?
Yes, it can run as a stdio process (default for Claude Desktop) or as an SSE server by passing the --sse flag.