Cisco NSO MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_FILE | No | Path to log file. If not set, logs will be sent to stdout only | |
| MCP_HOST | No | Host to bind to when using HTTP transport | 0.0.0.0 |
| MCP_PORT | No | Port to bind to when using HTTP transport | 8000 |
| NSO_PORT | No | NSO server port | 8080 |
| NSO_SCHEME | No | NSO connection scheme (http/https) | http |
| NSO_VERIFY | No | Verify NSO HTTPS certificate (default: True). Use --no-nso-verify for self-signed certs (dev only). | True |
| NSO_ADDRESS | No | NSO server address | localhost |
| NSO_TIMEOUT | No | Connection timeout in seconds | 10 |
| NSO_PASSWORD | No | NSO password | admin |
| NSO_USERNAME | No | NSO username | admin |
| MCP_TRANSPORT | No | MCP transport type (stdio/http) | stdio |
| NSO_CA_BUNDLE | No | Path to a CA bundle file to trust for NSO HTTPS. Applicable when -nso-verify is True. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {
"tasks": {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_service_typesB | Retrieve the available service types in Cisco NSO. |
| get_servicesB | Retrieve the available services in Cisco NSO. Requires a 'service_type' parameter. |
| get_device_platformB | Retrieve platform information for a specific device in Cisco NSO. Requires a 'device_name' parameter. |
| get_device_configB | Retrieve the full configuration for a specific device in Cisco NSO. Requires a 'device_name' parameter. |
| get_device_stateB | Retrieve the state for a specific device in Cisco NSO. Requires a 'device_name' parameter. |
| get_device_groupsB | Retrieve the available device groups in Cisco NSO. |
| get_device_ned_idsB | Retrieve the available Network Element Driver (NED) IDs in Cisco NSO. |
| check_device_syncB | Check the sync status for a specific device in Cisco NSO. Requires a 'device_name' parameter. |
| sync_from_deviceC | Sync from a specific device in Cisco NSO. Requires a 'device_name' parameter. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| nso_environment | NSO environment summary |
TDQS
Scored across 9 tools
The tools are mostly distinct with clear purposes centered around device management and service retrieval in Cisco NSO. However, there is some potential overlap between 'get_device_config' and 'get_device_state', as both retrieve device-specific information, which could cause minor confusion without careful reading of descriptions.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'check_device_sync', 'get_device_config', and 'sync_from_device'. This predictability makes it easy for agents to understand and navigate the tool set without ambiguity.
With 9 tools, the server is well-scoped for managing Cisco NSO devices and services. Each tool serves a specific function, such as checking sync status, retrieving configurations, or listing services, without unnecessary duplication or excessive complexity.
The tool set covers read operations well, including retrieving device configurations, states, and service types. However, it lacks write operations like creating, updating, or deleting devices or services, which are essential for full lifecycle management in a network automation context, creating notable gaps.