cisco-nso
MCP server from NSO-developer/cisco-nso-mcp-server
claude mcp add --transport stdio nso-developer-cisco-nso-mcp-server uvx cisco-nso-mcp-server --nso-address=127.0.0.1 --nso-port=8080 --nso-username=admin --nso-password=admin \ --env LOG_FILE="/path/to/your/logs/nso-mcp.log"
How to use
This MCP server implementation exposes Cisco NSO data and operations as MCP primitives, including tools for retrieving NED IDs, device groups, platform information, device configurations and states, service types, and services. It uses a Python-based backend and RESTCONF under the hood to interact with NSO. Clients can discover and invoke these tools via MCP messages, enabling AI-driven automation workflows that query NSO, apply configurations, and monitor state. The server supports asynchronous operation, structured responses, and configurable logging for observability. To connect, choose a transport (stdio by default or HTTP if configured) and a compatible MCP client, such as Windsurf Cascade, to discover and call tools like get_device_config or sync_from_device, with inputs like device_name when required.
How to install
Prerequisites:
- Python 3.12+ (as recommended by the project)
- Cisco NSO with RESTCONF enabled and network reachability from the host running the MCP server
- Optional: uv (uvx) or pip for installation
Installation steps (two common approaches):
-
Install via uvx (recommended for uv-based execution):
- Ensure you have uv installed and the package name 'cisco-nso-mcp-server' available on PyPI or your local index.
- Run the server via UV:
- uvx cisco-nso-mcp-server --nso-address=127.0.0.1 --nso-port=8080 --nso-username=admin --nso-password=admin
- You can configure logging by setting the LOG_FILE environment variable, e.g. export LOG_FILE=/var/log/nso_mcp.log
-
Install via pip and run the executable directly:
- pip install cisco-nso-mcp-server
- Run the server path directly (adjust to your environment):
- /path/to/venv/bin/cisco-nso-mcp-server --nso-address=127.0.0.1 --nso-port=8080 --nso-username=admin --nso-password=admin
- Optional: set LOG_FILE to enable file logging
Configuration hints:
- If you use HTTP transport, you will need to configure MCP_HOST and MCP_PORT as described in the README, and pass them via command-line or environment variables.
- The NSO connection parameters (scheme, address, port, username, password, verify, ca bundle) can be overridden via command-line options or environment variables as documented in the README.
Additional notes
Tips and common considerations:
- The server relies on NSO RESTCONF; ensure RESTCONF is enabled and accessible from the MCP server host.
- Logging can be directed to stdout and a file when LOG_FILE is set; if the log file cannot be created, the server will fall back to stdout with an error message.
- When using HTTP transport, ensure the host/port are not blocked by firewalls and that the MCP client supports the chosen transport.
- Environment variables take precedence over defaults but can be overridden by CLI arguments; plan initialization accordingly.
- For production deployments, consider running behind a process manager and securing NSO credentials properly (avoid hard-coding passwords).
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP