Connects Claude or other MCP hosts to Juniper's Routing Director platform for programmatic network management. Exposes device monitoring, configuration template deployment, VPN service management, and network topology visualization through Routing Director's API. Supports both basic auth and token-based authentication, runs over HTTP or stdio transport. You get tools for managing alarms, retrieving syslog messages, tracking KPIs, and handling customer configurations. Useful if you're already running Routing Director and want to integrate network operations into LLM workflows instead of switching between interfaces. Python based, requires an existing Routing Director instance and valid credentials to get started.
An MCP (Model Context Protocol) server that integrates with Juniper's Routing Director platform, providing intelligent access to network routing, assurance, optimization, and intelligence capabilities.
git clone https://github.com/Juniper/routing-director-mcp-server.git
cd routing-director-mcp-server
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
TBD
Create a config.json file with the following structure:
Basic Authentication:
{
"http_url": "https://your-routing-director-host/",
"org_id": "your-organization-id",
"auth": {
"type": "basic",
"username": "your-username@example.com",
"password": "your-password"
}
}
Token Authentication:
{
"http_url": "https://your-routing-director-host/",
"org_id": "your-organization-id",
"auth": {
"type": "token",
"token": "your-api-token"
}
}
Note: This authentication is between the MCP server and the Routing Director instance. The MCP server will handle authentication with Routing Director on behalf of clients connecting to it.
basic or tokencomponents field can be used to provide a list of components to filter the spec.Components can be one of the following:
ems - For alarms related info (searching, ack and unack of alarms reported on Routing Director)juniper-resiliency-interface - For device syslog info (retrieving syslog messages collected on Routing Director)device-kpi - For fetching exception events related to Juniper Resiliency Interface (JRI) collected on Routing Director(forwarding, routing and os)python RoutingDirectorMCP.py --config config.json
python RoutingDirectorMCP.py --help
Available options:
-H, --host: Server host (default: 127.0.0.1)-p, --port: Server port (default: 30030)-t, --transport: Transport type: streamable-http or stdio (default: streamable-http)-c, --config: Path to configuration file (required)-v, --verbose: Enable verbose loggingpython RoutingDirectorMCP.py \
--config config.json \
--host localhost \
--port 8000 \
--transport streamable-http \
--verbose
The server supports token-based authentication through a token manager. If a tokens file exists, authentication is automatically enabled for HTTP transports.
For stdio transport, authentication is bypassed as it's typically used in secure local environments.
You can use file-based token authentication for communication between an MCP client and MCP
server. To generate a token, execute the following command in your local system:
python utils/mcp/token_cli.py generate --client-id sv@juniper.net --description "Token for SV"
Where,
client-id - is an ID that you use for generating the authentication token.
The following is a sample of the generated output:
Generated new token:
ID: my-client
Token: apa_CA98sH_VwEBd79aHA6O9NxbhXQN_RqaK
Description: Production API
Save the generated token in a .tokens file. By default, the token is saved in the root directory of the GitHub MCP repository.
Enable detailed logging for debugging:
LOG_LEVEL=DEBUG python RoutingDirectorMCP.py --config config.json --verbose
Users can use any MCP Host (like Claude, Copilot, Chatgpt, etc.) to connect to the MCP server. When configuring the MCP Host, use the same transport type, host, and port as specified when starting the MCP server.
Configure Claude
To configure Claude:
~/Library/Application Support/Claude/claude_desktop_config.json
• On a Windows machine, open command prompt and enter: %APPDATA%\Claude\claude_desktop_config.json {
"mcpServers": {
"RoutingDirector": {
"command": "/Users/username/path-to-virtual-environment/.mcp_venv/bin/python",
"args": [
"/Users/username/path-to-mcp-python-script/RoutingDirectorMCP.py",
"-c",
"/Users/username/path-to-config-json/config.json",
"-t",
"stdio"
]
}
}
}
Claude is connected to the MCP server if the MCP server tools are listed under + > Connectors.
Configure Copilot : To configure Copilot:
~/Library/Application\ Support/Code/User/mcp.json
Where, user is your username on the macOS machine.C:/Users/YourUserName/AppData/Roaming/Code/User/mcp.json
Where, user is your username on the Windows machine.{
"mcpServers": {
"RoutingDirector": {
"command": "/Users/username/path-to-virtual-environment/.mcp_venv/bin/python",
"args": [
"/Users/username/path-to-mcp-python-script/RoutingDirectorMCP.py",
"-c", "/Users/username/path-to-config-json/config.json",
"-t", "stdio"
]
}
}
}
To ensure that the MCP server has started correctly, view the MCP server logs. The logs are
generated based on the type of communication with the AI agent:
• Starting MCP server 'Juniper Routing Directory' with transport 'stdio' if stdio is used.
• INFO Starting MCP server 'Juniper Routing Directory' with transport 'http' on http://127.0.0.1:30030/mcp if
streamable-http is used.
For more details on configuring the MCP Servers in the MCP Host Apps , please refer VScode Copilot: https://code.visualstudio.com/docs/copilot/customization/mcp-servers Claude: https://code.claude.com/docs/en/mcp
Solution: Ensure you provide the --config flag with a valid path to your configuration file.
Solution: Verify that your config.json includes all required keys: http_url, org_id, and auth.
Solution:
Solution:
--host and --port matching your client configurationSolution: For HTTP transports requiring authentication, ensure token files are properly initialized. For development/testing, this is typically acceptable.
Current version: v2.8.0
This MCP server integrates with Juniper Networks' Routing Director platform, providing enterprise-grade network intelligence and optimization capabilities.