Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Netmiko

БесплатноНе проверен

An MCP (Model Context Protocol) server for managing network devices via SSH using [Netmiko](https://github.com/ktbyers/netmiko). Features connection pooling, mu

GitHubEmbed

Описание

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 IOS
  • cisco_xe - Cisco IOS-XE
  • cisco_xr - Cisco IOS-XR
  • cisco_nxos - Cisco NX-OS
  • arista_eos - Arista EOS
  • juniper_junos - Juniper JunOS
  • paloalto_panos - Palo Alto PAN-OS
  • hp_procurve - HP ProCurve
  • linux - 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

from github.com/ntunes/netmiko-mcp-server

Установка Netmiko

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/ntunes/netmiko-mcp-server

FAQ

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

Compare Netmiko with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development