Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here
Juniper Routing Director MCP Server logo

Juniper Routing Director MCP Server

Juniper/routing-director-mcp-server
2 starsApache-2.0Updated 2026-04-22Community

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

MCP server to integrate with Juniper Routing Director

README.md

<!-- mcp-name: io.github.Juniper/routing-director-mcp-server -->

Routing Director MCP Server

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.

Features

  • Flexible Authentication: Supports both basic and token-based authentication
  • Multiple Transport Options: HTTP and stdio transport protocols
  • Device management and monitoring
  • Configuration template deployment
  • VPN service management
  • Network topology visualization
  • KPI monitoring and observability
  • Customer and organization management

Prerequisites

  • Python 3.10 or 3.11
  • Juniper Routing Director instance
  • Network connectivity to Routing Director API
  • Valid Routing Director credentials (username/password or API token)

Installation

From Source

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

From MCP Registry

TBD

Configuration

Configuration File (config.json)

Create a config.json file with the following structure:

Basic Authentication: ``json { "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: ``json { "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.

Configuration Parameters

  • http_url (required): URL of your Routing Director instance
  • org_id (required): Your organization ID in Routing Director
  • auth (required): Authentication configuration
  • type: Either basic or token
  • username: Routing Director username (for basic auth)
  • password: Routing Director password (for basic auth)
  • token: API token (for token auth)
  • components (optional): Additional component configuration to filter tools and capabilities exposed by the MCP server. If the user wishes to filter the openapi spec only for certain components, then the components 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)

Usage

Starting the Server

python RoutingDirectorMCP.py --config config.json

Command Line Options

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 logging

Example: Start with Custom Configuration

python RoutingDirectorMCP.py \
  --config config.json \
  --host localhost \
  --port 8000 \
  --transport streamable-http \
  --verbose

Authentication between the MCP Server and the MCP Host(Claude/Copilot etc)

Token Management

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.

Enable authentication between MCP server and MCP client.

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: ``bash 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.

Logging

Enable detailed logging for debugging:

LOG_LEVEL=DEBUG python RoutingDirectorMCP.py --config config.json --verbose

Connecting to the MCP Server

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:

  1. Open the Claude configuration file in a text editor.

• On a macOS machine, run the following command in the Terminal: ~/Library/Application Support/Claude/claude_desktop_config.json • On a Windows machine, open command prompt and enter: %APPDATA%\Claude\claude_desktop_config.json

  1. Add your MCP server configuration as shown below:
      {  
       "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"  
                ]  
             }  
          }  
      }  
  1. Save the file.
  2. Restart Claude.
  3. Verify the connection of Claude with MCP server.

Claude is connected to the MCP server if the MCP server tools are listed under + > Connectors.

Configure Copilot : To configure Copilot:

  1. Open Virtual Studio (VS) code.

Alternatively, you can use any other Integrated Development Environment (IDE) that supports Copilot and MCP server,

  1. Open the MCP settings file using one of the following methods:

• On a macOS, run the following command in the Terminal: Open ~/Library/Application\ Support/Code/User/mcp.json Where, user is your username on the macOS machine. • On a Windows machine, open command prompt and enter: C:/Users/YourUserName/AppData/Roaming/Code/User/mcp.json Where, user is your username on the Windows machine.

  1. Add the MCP server configuration to the settings file as shown below:
{  
     "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"  
            ]  
         }  
     }  
}  
  1. Save the file.
  2. Close and reopen VS code for the MCP configuration changes to take effect.
  3. Verify that Copilot is connected with the MCP server.

Copilot is connected to the MCP server if you find messages indicating successful connection to the MCP server in the Output panel of VS code. Alternatively, you can view MCP server tools (API calls) listed in VS code Extensions.

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

---

Troubleshooting

Issue: "Config file path is required"

Solution: Ensure you provide the --config flag with a valid path to your configuration file.

Issue: "Mandatory key missing in MCP config file"

Solution: Verify that your config.json includes all required keys: http_url, org_id, and auth.

Issue: "Failed to authenticate"

Solution:

  • Verify your Routing Director credentials
  • Ensure the Routing Director instance is accessible at the configured http_url
  • Check that your username/password or API token is correct
  • Verify network connectivity to the Routing Director host

Issue: Connection Refused

Solution:

  • Verify the server is running with --host and --port matching your client configuration
  • Check firewall rules allow traffic on the configured port

Issue: "No tokens file found. Authentication DISABLED"

Solution: For HTTP transports requiring authentication, ensure token files are properly initialized. For development/testing, this is typically acceptable.

---

Release 2.9.0

Current version: v2.9.0

Juniper's Routing Director 2.9.0 User Guide: https://www.juniper.net/documentation/us/en/software/juniper-routing-director2.9.0/user-guide/index.html

Whats new?

  • Support for running junos operational and configurational commands on the MCP server using the execute_junos_command(for operational commands) and junos_config_set, junos_config_diff and junos_config_commit (for configuration commands) tools. This allows users to push configuration changes to Junos devices directly from the MCP server. For more details please refer the documentation: https://www.juniper.net/documentation/us/en/software/juniper-routing-director2.9.0/user-guide/topics/topic-map/mcp-server-use.html
  • Bug fixes

Known Issues:

  1. The MCP server's command blacklist only covers operational mode commands. Destructive configuration commands — such as delete, rollback factory, load factory-default, and their NETCONF equivalents — are not blocked and can be executed if triggered by a user prompt or LLM-generated action, potentially causing loss of critical device configuration.

Workaround: We recommend that you avoid prompts that may trigger destructive configuration changes. Additionally, enable the MCP approval workflow to require manual confirmation before any configuration-changing commands are executed on devices.

  1. When the http_url in the MCP configuration file (config.json) ends with a trailing slash (/) and when the Routing Director's MCP server functionality (junos_config_commit tool call) for pushing commits onto the Junos device is called, the MCP server incorrectly constructs the API URL with a double slash (//). This results in a 400 Bad Request error and fails to execute the tool call.

Workaround: Ensure the http_url in the MCP server’s config.json does not include a trailing slash. Use http_url": "https://<ip-address>" instead of http_url": "https://<ip-address>/".

  1. In Routing Director's Model Context Protocol (MCP) integration, inconsistent argument naming for MAC address parameters across multiple tools (For example, mac, router_mac, device_mac) causes the AI model to hallucinate incorrect argument names.

Workaround: If you are encountering this issue, you can retry the query or explicitly specify the correct argument name in the prompt to guide the MCP co-pilot toward the right parameter. You can refer to the MCP tool documentation for the exact expected parameter name, which can help avoid hallucination errors.

---

Acknowledgments

This MCP server integrates with Juniper Networks' Routing Director platform, providing enterprise-grade network intelligence and optimization capabilities.

---

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Other servers.