About Sros
Sros is an MCP server in the Science category: the mcp-server-sros project provides MCP tools for viewing the operational state and changing the configuration of Nokia SR OS devices. It uses Nokia's pySROS Python SDK and FastMCP.
Install
git clone https://github.com/mohamedhafez87/mcp-server-srosThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (4)
apply_configModify configuration by setting a value at a specified YANG path.
Parameters not published.
get_factRetrieve basic information about the SR OS device, such as system name, software version, and platform.
Parameters not published.
list_devicesRetrieve the list of **locally configured** devices on the MCP server. The list include **device name** and **IP address** for remote access.
Parameters not published.
show_commandExecute any MD-CLI command on the device and return the output.
Parameters not published.
Ask AI
Ask AI about Sros
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
SROS MCP Server (mcp-server-sros)
Overview
The mcp-server-sros project provides MCP tools for viewing the operational state and changing the configuration of Nokia SR OS devices.
It uses Nokia's pySROS Python SDK and FastMCP.
This project was inspired by https://github.com/dpajin/mcp-server-junos.
Tools
- get_fact: Retrieve basic information about the SR OS device, such as system name, software version, and platform.
- show_command: Execute any MD-CLI command on the device and return the output.
- apply_config: Modify configuration by setting a value at a specified YANG path.
- list_devices: Retrieve the list of locally configured devices on the MCP server. The list include device name and IP address for remote access.
Installation
- Clone the repository:
git clone <repository-url> cd mcp-server-sros
Running as a standalone application
-
Install the required dependencies:
pip install -r requirements.txt -
Rename example config file
config.example.ymltoconfig.ymlcp config.example.yml config.yml
Running as a docker container
NOTE: If you want to include the configuration file in the docker image, please configure it in advance before building the container image. Otherwise, you can provide global access parameters into the container using Environment Variables (example in Usage section)
-
Rename example config file
config.example.ymltoconfig.ymland configure it accordingly, beforemv config.example.yml config.yml -
Build docker container image
docker build -t mcp-server-sros .
Configuration
The expected configuration file is named config.yml and it should be located in the root directory.
If environment variables are set, they will override the configuration file values.
Global server configuration
Using config file:
global:
server_host: 127.0.0.1
server_port: 10008
server_transport: "sse" # or "streamable-http"
Using Environment variables:
MCP_SERVER_SROS_HOST="127.0.0.1"
MCP_SERVER_SROS_PORT=10008
MCP_SERVER_SROS_TRANSPORT="sse"
LOG_LEVEL="INFO"
Devices inventory
Using config file:
Configuration file key devices contains the dictionary of the device names with their respective access configuration.
device_name: Name of the devicehost: IP address for accessuser: Username for accesspasswd: Password for accessport: TCP port for NETCONF/SSH access
Example:
access:
default:
user: "admin"
passwd: "admin"
port: 830
devices:
sros1:
host: 10.10.10.1
user: "admin"
passwd: "mysecurepassword"
port: 830
sros2:
host: 10.10.10.2
<<: *default
Using environment variables:
MCP_SERVER_SROS_ACCESS_DEFAULT_USER="admin"
MCP_SERVER_SROS_ACCESS_DEFAULT_PASSWD="admin"
MCP_SERVER_SROS_ACCESS_DEFAULT_PORT=830
Usage
To use the MCP server, run the command:
python mcp_server_sros.py
To use the docker, run the command:
docker run -it -p 10008:10008 \
--name mcp-server-sros \
-e MCP_SERVER_SROS_ACCESS_DEFAULT_USER="admin" \
-e MCP_SERVER_SROS_ACCESS_DEFAULT_PASSWD="admin" \
-e MCP_SERVER_SROS_ACCESS_DEFAULT_PORT=830 \
-e MCP_SERVER_SROS_HOST="0.0.0.0" \
-e MCP_SERVER_SROS_PORT=10008 \
-e MCP_SERVER_SROS_TRANSPORT="sse" \
mcp-server-sros:latest
- The MCP server exposes HTTP SSE interface on configurable port (default 10008) and IPs
- The URL for connecting to MCP SSE server locally would be:
http://127.0.0.1:10008/sse
You can test tools using curl:
curl -X POST http://localhost:10008/set_config \
-H "Content-Type: application/json" \
-d '{"device_name": "sros1", "path": "/nokia-conf:system/name", "value": "SROS-MCP"}'
Tests
Tested with Github Copilot and VS Code as MCP client using HTTP SSE.
License
The project is licensed under the MIT License.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.