Netmiko
БесплатноНе проверенAn MCP (Model Context Protocol) server for managing network devices via SSH using [Netmiko](https://github.com/ktbyers/netmiko). Features connection pooling, mu
Описание
An MCP (Model Context Protocol) server for managing network devices via SSH using Netmiko. Features connection pooling, multi-vendor support, and concurrent operations.
README
An MCP (Model Context Protocol) server for managing network devices via SSH using Netmiko. Features connection pooling, multi-vendor support, and concurrent operations.
Features
- Command Execution: Run CLI commands on single or multiple devices
- Configuration Management: Push configuration changes with optional save/rollback
- Device Inventory: YAML-based device inventory with groups and tags
- Connection Pooling: Efficient connection reuse with health checks
- Multi-Vendor Support: Works with any device type supported by Netmiko
- Concurrent Operations: Execute commands on multiple devices in parallel
- TextFSM Parsing: Optional structured output parsing
Installation
From Source
git clone https://github.com/ntunes/netmiko-mcp-server.git
cd netmiko-mcp-server
pip install -e .
With Docker
docker build -t netmiko-mcp .
Configuration
Device Inventory
Create a config/devices.yaml file with your device inventory:
defaults:
timeout: 30
fast_cli: true
credentials:
production:
username: "${NETMIKO_USERNAME}"
password: "${NETMIKO_PASSWORD}"
secret: "${NETMIKO_SECRET}"
groups:
core_routers:
- core-rtr-01
- core-rtr-02
devices:
core-rtr-01:
host: "192.168.1.1"
device_type: "cisco_ios"
credential_profile: "production"
tags:
- core
- production
core-rtr-02:
host: "192.168.1.2"
device_type: "cisco_ios"
credential_profile: "production"
tags:
- core
- production
pool_settings:
max_connections_per_device: 3
connection_timeout: 300
health_check_interval: 60
Environment Variables
Set credentials via environment variables:
export NETMIKO_USERNAME="admin"
export NETMIKO_PASSWORD="your_password"
export NETMIKO_SECRET="enable_secret"
Optionally set config file location:
export NETMIKO_MCP_CONFIG="/path/to/devices.yaml"
Usage
Running the Server
Stdio transport (for Claude Desktop):
python -m netmiko_mcp
Streamable HTTP transport:
python -m netmiko_mcp --transport streamable-http --port 8339
With Docker:
docker run -p 8339:8339 \
-e NETMIKO_USERNAME=admin \
-e NETMIKO_PASSWORD=secret \
-v ./config/devices.yaml:/app/config/devices.yaml:ro \
netmiko-mcp
With Docker Compose:
# Set credentials in .env or environment
export NETMIKO_USERNAME=admin
export NETMIKO_PASSWORD=secret
docker-compose up -d
Claude Desktop Configuration
Add to your Claude Desktop configuration:
For stdio transport:
{
"mcpServers": {
"netmiko": {
"command": "python",
"args": ["-m", "netmiko_mcp", "--config", "/path/to/devices.yaml"]
}
}
}
For HTTP transport:
{
"mcpServers": {
"netmiko": {
"url": "http://localhost:8339/mcp"
}
}
}
MCP Tools
Command Execution
| Tool | Description |
|---|---|
send_command |
Execute a single command on one device |
send_command_parallel |
Execute the same command on multiple devices concurrently |
send_commands_sequence |
Execute multiple commands sequentially on one device |
Configuration
| Tool | Description |
|---|---|
send_config |
Push configuration commands to one device |
send_config_parallel |
Push configuration to multiple devices concurrently |
Inventory & Discovery
| Tool | Description |
|---|---|
list_devices |
List all devices with optional tag/type filtering |
get_device_info |
Get detailed device information and connection status |
list_groups |
List all device groups and their members |
test_connection |
Test connectivity to a device |
get_pool_status |
Get connection pool statistics |
get_device_types |
List all device types in inventory |
get_tags |
List all tags used across devices |
Examples
Execute a command:
Use send_command on device "core-rtr-01" with command "show version"
Execute on multiple devices:
Use send_command_parallel on devices ["@core_routers"] with command "show ip interface brief"
Push configuration:
Use send_config on device "core-rtr-01" with config_commands ["interface Loopback0", "description Test"] and save_config true
Supported Device Types
Any device type supported by Netmiko, including:
cisco_ios- Cisco IOScisco_xe- Cisco IOS-XEcisco_xr- Cisco IOS-XRcisco_nxos- Cisco NX-OSarista_eos- Arista EOSjuniper_junos- Juniper JunOSpaloalto_panos- Palo Alto PAN-OShp_procurve- HP ProCurvelinux- Linux SSH
See Netmiko supported platforms for the full list.
Development
Install Development Dependencies
pip install -e ".[dev]"
Run Tests
pytest
Run Linting
ruff check src/ tests/
mypy src/
License
MIT
Установка Netmiko
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/ntunes/netmiko-mcp-serverFAQ
Netmiko MCP бесплатный?
Да, Netmiko MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Netmiko?
Нет, Netmiko работает без API-ключей и переменных окружения.
Netmiko — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Netmiko в Claude Desktop, Claude Code или Cursor?
Открой Netmiko на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Netmiko with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
