Network MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/E-Conners-Lab/MCP-DEMO-LAB.git
cd network-mcp
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add network-mcp -- node "<FULL_PATH_TO_MCP_DEMO_LAB>/dist/index.js"

Replace <FULL_PATH_TO_MCP_DEMO_LAB>/dist/index.js with the actual folder you prepared in step 1.

README.md

Give AI direct access to your network devices.

network-mcp

Give AI direct access to your network devices. 35 MCP tools, multi-vendor, one interface.

Stop writing Netmiko scripts. Connect Claude, ChatGPT, or any MCP-compatible AI to your routers, switches, and firewalls — and let it run show commands, check health, calculate subnets, discover topology, and manage configs through natural language.

You: "Check the health of all my devices"
Claude: [calls health_check_all] → 6 devices healthy, Switch-R2 has 2 interfaces down

What is this?

An MCP (Model Context Protocol) server that gives AI assistants real-time access to network devices. Built for network engineers who want to automate without writing boilerplate.

Supported platforms:

  • Cisco IOS-XE (routers, switches)
  • Nokia SR Linux
  • FRRouting (FRR)
  • Juniper Junos
  • Aruba AOS-CX
  • Linux hosts

Quick Start

1. Install

git clone https://github.com/E-Conners-Lab/MCP-DEMO-LAB.git
cd network-mcp
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

2. Configure devices

cp .env.example .env
# Edit .env with your device IPs and credentials

3. Try it instantly (no lab required)

# Demo mode returns realistic mock data — no devices needed
DEMO_MODE=true python network_mcp_server.py

4. Connect to Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "network": {
      "command": "/path/to/network-mcp/.venv/bin/python",
      "args": ["/path/to/network-mcp/network_mcp_server.py"]
    }
  }
}

Restart Claude Desktop. You now have 35 network tools available.

5. Try with a real lab (5 minutes)

# Spin up 2 FRR routers with containerlab
cd quickstart && sudo containerlab deploy -t topology.clab.yml

Tools

Device Operations

Tool Description
get_devices List all devices in inventory
send_command Run show commands on any device
send_config Push configuration changes
health_check Check device health (CPU, memory, interfaces)
health_check_all Health check all devices in parallel
backup_config Backup running configuration
compare_configs Diff two config backups
rollback_config Restore a previous config

Network Intelligence

Tool Description
discover_topology LLDP-based topology discovery
get_routing_table View routing tables
get_neighbors BGP/OSPF neighbor status
get_arp_table ARP table lookup
get_mac_table MAC address table
ping_sweep Sweep a subnet for reachable hosts
traceroute Trace path to destination

Calculators (no devices needed)

Tool Description
calculate_tunnel_mtu Optimal MTU/MSS for VPN tunnels
calculate_subnet_info Subnet details from CIDR notation
split_network VLSM subnet splitting
convert_netmask CIDR to dotted decimal conversion

SNMP & Monitoring

Tool Description
snmp_get_oid SNMP GET for specific OIDs
snmp_walk_oid SNMP WALK subtrees
snmp_poll_metrics Poll interface/CPU/memory metrics

NETCONF

Tool Description
get_interfaces_netconf Interface data via NETCONF
get_bgp_neighbors_netconf BGP state via NETCONF
get_netconf_capabilities Device NETCONF capabilities

Configuration Management

Tool Description
compliance_check Check device against compliance templates
full_network_test End-to-end network validation

See all 35 tools →

Architecture

┌─────────────────────────────────────────┐
│  AI Assistant (Claude, ChatGPT, etc.)   │
└────────────────┬────────────────────────┘
                 │ MCP Protocol (stdio/SSE)
┌────────────────▼────────────────────────┐
│  network_mcp_server.py                  │
│  FastMCP server + tool registry         │
└────────────────┬────────────────────────┘
                 │
┌────────────────▼────────────────────────┐
│  mcp_tools/                             │
│  ├── device.py      (9 tools)           │
│  ├── calculators.py (6 tools)           │
│  ├── topology.py    (6 tools)           │
│  ├── config.py      (8 tools)           │
│  ├── snmp.py        (5 tools)           │
│  ├── netconf.py     (4 tools)           │
│  ├── compliance.py  (7 tools)           │
│  └── ... (10 modules, 35 tools total)   │
└────────────────┬────────────────────────┘
                 │
┌────────────────▼────────────────────────┐
│  core/                                  │
│  ├── connection.py   (Netmiko/Scrapli)  │
│  ├── parser.py       (NTC/Genie)        │
│  ├── mtu_calculator.py                  │
│  └── subnet_calculator.py              │
└────────────────┬────────────────────────┘
                 │ SSH / NETCONF / S

Tools (27)

get_devicesList all devices in inventory
send_commandRun show commands on any device
send_configPush configuration changes
health_checkCheck device health (CPU, memory, interfaces)
health_check_allHealth check all devices in parallel
backup_configBackup running configuration
compare_configsDiff two config backups
rollback_configRestore a previous config
discover_topologyLLDP-based topology discovery
get_routing_tableView routing tables
get_neighborsBGP/OSPF neighbor status
get_arp_tableARP table lookup
get_mac_tableMAC address table
ping_sweepSweep a subnet for reachable hosts
tracerouteTrace path to destination
calculate_tunnel_mtuOptimal MTU/MSS for VPN tunnels
calculate_subnet_infoSubnet details from CIDR notation
split_networkVLSM subnet splitting
convert_netmaskCIDR to dotted decimal conversion
snmp_get_oidSNMP GET for specific OIDs
snmp_walk_oidSNMP WALK subtrees
snmp_poll_metricsPoll interface/CPU/memory metrics
get_interfaces_netconfInterface data via NETCONF
get_bgp_neighbors_netconfBGP state via NETCONF
get_netconf_capabilitiesDevice NETCONF capabilities
compliance_checkCheck device against compliance templates
full_network_testEnd-to-end network validation

Environment Variables

DEMO_MODESet to true to return realistic mock data without needing real devices

Configuration

claude_desktop_config.json
{"mcpServers": {"network": {"command": "/path/to/network-mcp/.venv/bin/python", "args": ["/path/to/network-mcp/network_mcp_server.py"]}}}

Try it

Check the health of all my devices and report any issues.
Discover the network topology and list all active BGP neighbors.
Calculate the optimal MTU for a new VPN tunnel on a 10.0.0.0/24 subnet.
Run a compliance check on the core switches and backup their configurations.
Perform a ping sweep on the management subnet to identify reachable hosts.

Frequently Asked Questions

What are the key features of Network MCP?

Multi-vendor support including Cisco, Juniper, Nokia, and FRRouting. 35 specialized tools for network operations, intelligence, and calculations. Support for SSH, NETCONF, and SNMP protocols. Automated configuration management, backups, and compliance checks. Real-time topology discovery and network health monitoring.

What can I use Network MCP for?

Network engineers automating routine health checks across multi-vendor environments. Rapid troubleshooting by querying routing tables and neighbor status via natural language. Validating network compliance against predefined templates before pushing changes. Quickly calculating subnetting and MTU requirements during network design tasks.

How do I install Network MCP?

Install Network MCP by running: git clone https://github.com/E-Conners-Lab/MCP-DEMO-LAB.git && cd network-mcp && python -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt

What MCP clients work with Network MCP?

Network MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Network MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare