Cisco NSO MCP Server
@dbono711
A Model Context Protocol (MCP) server implementation for Cisco NSO that enables AI-powered network automation through natural language interactions.
Overview
What is Cisco NSO MCP Server?
Cisco NSO MCP Server is a Model Context Protocol (MCP) server for Cisco Network Services Orchestrator (NSO) that exposes NSO capabilities as MCP tools and resources, enabling AI‑powered network automation through natural language interactions. It is written in Python, installable with pip, and runs as a command‑line tool.
How to use Cisco NSO MCP Server?
Install the package with pip install cisco-nso-mcp-server and run the server with cisco-nso-mcp-server. Configure NSO connection via command‑line arguments or environment variables (e.g., --nso-address, --nso-port, --nso-username, --nso-password). Connect to the server using an MCP client with either stdio or SSE transport.
Key features of Cisco NSO MCP Server
- Stdio transport by default; optionally supports SSE transport
- Tool‑first design with discrete, clearly‑defined network operations
- Asynchronous processing for non‑blocking I/O and concurrency
- Structured responses with status, data, and metadata sections
- Environment resource providing NSO environment summary (device count, OS distribution, etc.)
Use cases of Cisco NSO MCP Server
- Query device NED IDs from Cisco NSO via natural language
- Retrieve platform information for a specific managed device
- Obtain a high‑level NSO environment summary for monitoring or inventory
- Integrate AI assistants with NSO for automated network operations
FAQ from Cisco NSO MCP Server
What is MCP and how does this server use it?
The Model Context Protocol (MCP) standardizes how AI models interact with external tools and services. This server exposes NSO capabilities as MCP tools and resources, allowing any MCP‑compatible client (including LLMs) to use them.
What are the runtime requirements?
Python 3.13 or later, a Cisco NSO instance with RESTCONF API enabled, and network connectivity to that API.
Can I connect to NSO over HTTPS?
Yes. Use the --nso-scheme argument or NSO_SCHEME environment variable to set https (default is http).
What tools are available?
Two tools: get_device_ned_ids_tool (retrieves Network Element Driver IDs) and get_device_platform_tool (gets platform info for a specific device). There is also one resource that provides the NSO environment summary.
How do I start the server with custom NSO settings?
Pass command‑line flags like --nso-address, --nso-port, --nso-username, and --nso-password, or set the corresponding environment variables. Command‑line arguments override environment variables.