SSR/128T MCP Server
Enables AI-powered AIOps management of Juniper SSR/128T networks through natural language, providing 22 tools for router management, alarms, traffic analysis, and more.
README
SSR/128T MCP Server
A Model Context Protocol (MCP) server for the Juniper SSR/128T Networking Platform, enabling AI-powered AIOps management through LLM clients like Claude Desktop and VSCode.
This server provides a bridge between MCP-compatible clients and the SSR Conductor REST API, allowing natural language driven monitoring, visualization, and troubleshooting of your SSR network.
Features
- š 22 MCP Tools covering router management, alarms, traffic analysis, routing tables, interfaces, metrics, and audit logs
- š Automatic Authentication with token management and auto-refresh
- š Dual Transport ā stdio (local) and streamable-http (remote/deployment)
- š³ Docker Support ā ready for containerized deployment on any Linux platform
- ā” Async HTTP client based on
httpxfor high-performance concurrent requests - š”ļø Self-Signed Certificate Support for lab and testing environments
Quick Start
Prerequisites
- Python 3.10+ and pip
- Access to an SSR Conductor (v6.x+)
Installation
git clone https://github.com/lotsonlu/ssr-mcp-server.git
cd ssr-mcp-server
pip install -r requirements.txt
Configuration
Set environment variables:
export SSR_BASE_URL="https://<your-conductor-ip>"
export SSR_USERNAME="admin"
export SSR_PASSWORD="your-password"
Or create a config.json file (copy from config-template.json):
{
"conductor": {
"base_url": "https://172.27.69.57",
"username": "admin",
"password": "your-password",
"timeout": 120,
"verify_ssl": false
}
}
Run with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"ssr-mcp": {
"type": "stdio",
"command": "python3",
"args": ["/path/to/ssr_mcp.py", "-f", "/path/to/config.json", "-t", "stdio"]
}
}
}
Run with VSCode
Add to your .mcp.json:
{
"mcpServers": {
"ssr-mcp": {
"command": "python3",
"args": ["/path/to/ssr_mcp.py", "-f", "/path/to/config.json", "-t", "stdio"]
}
}
}
Run Standalone (HTTP mode)
python ssr_mcp.py -H 0.0.0.0 -p 8080 -t streamable-http
Docker
docker build -t ssr-mcp-server .
docker run --rm -i \
-e SSR_BASE_URL="https://<conductor-ip>" \
-e SSR_USERNAME="admin" \
-e SSR_PASSWORD="your-password" \
ssr-mcp-server -t stdio
Available Tools
Router & System (4)
| Tool | Description |
|---|---|
get_router_list |
List all routers, status, and basic info |
get_router_info |
Detailed info for a specific router |
get_nodes |
List all nodes for a router |
get_system_info |
Conductor system info, version, uptime |
Alarms & Status (4)
| Tool | Description |
|---|---|
get_alarms |
All current alarms (with filters) |
get_router_alarms |
Router-specific alarms |
get_node_alarms |
Node-specific alarms |
get_node_status |
Node operational status & process health |
Traffic & Routing (7)
| Tool | Description |
|---|---|
get_traffic_flows |
Active flow/session table |
get_traffic_fib |
Forwarding Information Base (FIB) |
get_traffic_rib |
Routing Information Base (RIB) |
get_top_sessions |
Top N sessions by bandwidth |
get_top_sources |
Top N traffic sources |
get_adjacencies |
Network adjacencies/peers |
fib_lookup |
FIB lookup by packet headers |
Interfaces & Services (3)
| Tool | Description |
|---|---|
get_device_interfaces |
Physical device interfaces |
get_network_interfaces |
Logical/L3 network interfaces |
get_services |
Configured services & service classes |
Metrics & Analytics (3)
| Tool | Description |
|---|---|
get_router_metrics |
Timeseries performance metrics |
get_analytics |
Aggregated analytics queries |
get_audit_logs |
Historical audit & configuration logs |
Version (1)
| Tool | Description |
|---|---|
get_software_version |
SSR software version per node |
Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Claude Desktop / VSCode / Other MCP Clients ā
āāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā stdio / streamable-http
āāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā SSR MCP Server (ssr_mcp_server) ā
ā āāā server.py MCP Server & Tool Defs ā
ā āāā ssr_client.py REST API Client ā
ā āāā tools/ 22 Tool Handlers ā
ā āāā utils/ Config Management ā
āāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā REST API (HTTPS)
āāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā SSR Conductor ā
ā /router, /alarm, /traffic, /stats, etc. ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Project Structure
ssr-mcp-server/
āāā ssr_mcp.py # CLI entry point
āāā ssr_mcp_server/ # Core package
ā āāā server.py # MCP server & 22 tool definitions
ā āāā ssr_client.py # REST API client (auth, HTTP, retry)
ā āāā tools/ # Tool handler modules
ā ā āāā router_tools.py # Router & system tools
ā ā āāā alarm_tools.py # Alarm & status tools
ā ā āāā traffic_tools.py # Traffic & routing tools
ā ā āāā interface_tools.py # Interface & service tools
ā ā āāā metrics_tools.py # Metrics & analytics tools
ā ā āāā audit_tools.py # Audit & version tools
ā āāā utils/
ā āāā config.py # Configuration management
āāā pyproject.toml # Project metadata & dependencies
āāā requirements.txt # Pip dependencies
āāā Dockerfile # Docker build
āāā Makefile # Dev/build helpers
āāā config-template.json # Configuration template
āāā LICENSE
Environment Variables
| Variable | Default | Description |
|---|---|---|
SSR_BASE_URL |
https://127.0.0.1 |
SSR Conductor URL |
SSR_USERNAME |
admin |
API username |
SSR_PASSWORD |
ā | API password (required) |
SSR_TIMEOUT |
120 |
API timeout in seconds |
SSR_VERIFY_SSL |
false |
Enable SSL verification |
Development
# Install dependencies
pip install -r requirements.txt
# Run with stdio transport
python ssr_mcp.py -t stdio
# Run tests
python -m pytest tests/
# Build Docker image
docker build -t ssr-mcp-server .
License
Acknowledgments
This project is inspired by and follows patterns from the official Juniper Junos MCP Server.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.