cisco-mcp
Allows execution of read-only 'show' commands on Cisco IOS/IOS-XE and Nexus (NX-OS) switches over SSH, including retrieving configuration, version, interfaces, VLANs, and CDP neighbors.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cisco-mcpshow interfaces on core-switch"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cisco-mcp
A read-only MCP server for Cisco IOS / IOS-XE
and Nexus (NX-OS) switches. It lets an LLM run show commands over SSH — and
nothing else.
The two-account model
To run show running-config on IOS you need privilege 15, but you don't want a
priv-15 account doing everything. So the server uses two accounts:
Account | Used for |
Read-only ( | Every tool call |
Privilege-15 ( | Only |
The priv-15 account is scoped as tightly as possible: it fires only when the
command is show running-config (or its abbreviations show run / sh run /
show running) on an IOS/IOS-XE device. Everything else — including
show startup-config, show tech-support, and show archive — stays on the
read-only account.
Platform-aware: privilege levels are an IOS/IOS-XE concept. Nexus uses RBAC —
its read-only network-operator role can already read the running config — so on
NX-OS devices the server always uses the read-only account and never escalates.
Related MCP server: Network MCP Server
Safety
Every command passes through a fail-closed allowlist (allowlist.py) before it
runs:
must be a
showcommand (abbreviations likesh runincluded);config mode,
write/erase/reload/copy/clear/debug, command chaining (;, newlines), and pipe-to-write (| redirect,| tee,| append) are rejected.
The LLM never decides what's safe — the server enforces it mechanically, which also contains prompt-injection arriving through arguments or command output.
Setup
# 1. install (uv recommended)
uv sync # or: pip install -e .
# 2. credentials
cp .env.example .env # fill in the two accounts
# 3. inventory
cp devices.example.yaml devices.yaml # list your switches + platform
# 4. run tests
uv run pytestRegister with an MCP client
stdio transport, e.g. in a client config:
{
"mcpServers": {
"cisco": {
"command": "uv",
"args": ["run", "cisco-mcp"],
"cwd": "/path/to/cisco-mcp"
}
}
}Tools
25 tools total. Every one runs through the same allowlist + account-selection
gate; only get_running_config (or run_show_command with show running-config)
on an IOS/IOS-XE device escalates to the priv-15 account.
Meta
list_devices— inventory with platform + notesrun_show_command(device, command)— any allowlistedshow, with the same gate
System / identity
get_version—show versionget_running_config—show running-config(priv-15 on IOS/IOS-XE, read-only on NX-OS)get_inventory_hw—show inventory(chassis / modules / serial numbers)get_clock—show clockget_logs—show logging
Health / capacity
get_cpu—show processes cpu history(IOS/IOS-XE) /show system resources(NX-OS)get_memory—show memory statistics(IOS/IOS-XE) /show system resources(NX-OS)get_environment—show environmentget_poe_status—show power inline
L2 / switching
get_interfaces—show interfacesget_interface_status—show ip interface briefget_vlans—show vlan briefget_trunks—show interfaces trunkget_spanning_tree—show spanning-treeget_etherchannels—show etherchannel summary(IOS/IOS-XE) /show port-channel summary(NX-OS)get_mac_address_table—show mac address-table
L3 / routing
get_arp_table—show ip arpget_routing_table—show ip routeget_ospf_neighbors—show ip ospf neighborget_bgp_summary—show ip bgp summaryget_eigrp_neighbors—show ip eigrp neighbors
Neighbor discovery
get_cdp_neighbors—show cdp neighbors detailget_lldp_neighbors—show lldp neighbors detail
Layout
src/cisco_mcp/
server.py MCP tools (FastMCP, stdio)
allowlist.py safety gate + priv-15 policy <- security core
connection.py account selection + Netmiko SSH
credentials.py two account profiles from env
inventory.py devices.yaml loader
platforms.py IOS vs NX-OS behavior
tests/ allowlist + account-selection tests (no network)Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityBmaintenanceEnables structured interaction with Cisco network devices using pyATS and Genie. Supports executing show commands, ping tests, and configuration changes on IOS/NX-OS devices through secure STDIO communication.Last updated78MIT
- Flicense-qualityDmaintenanceEnables AI agents to interact with Cisco IOS-XE network devices over SSH using structured tools. Provides read and write capabilities for network management with built-in validation and security.Last updated
- Flicense-qualityDmaintenanceEnables LLMs to interact with network devices via SSH (netmiko), allowing command execution and configuration changes on routers and switches.Last updated35
- Alicense-qualityCmaintenanceEnables Claude Code to interact with network devices over serial and SSH with command safety classification and a persistent knowledge base.Last updatedMIT
Related MCP Connectors
Operate your Linux servers from your LLM. Every action runs through an auditable allowlist.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Deterministic trust gate for AI output: leaked-secret, prompt-injection & PII in one call.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Chiefff-Kiefff/cisco-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server