路由控制器MCP服务器
MCP(模型上下文协议)服务器,与Juniper的路由控制器平台集成,提供对网络路由、保证、优化和智能功能的智能访问。
特性
- 灵活的身份验证:支持基本身份验证和基于令牌的身份验证
- 多种传输选项:HTTP和stdio传输协议
- 设备管理和监控
- 配置模板部署
- VPN业务管理
- 网络拓扑可视化
- KPI监控和可观察性
- 客户和组织管理
先决条件
- Python 3.10或3.11
- Juniper路由控制器实例
- 到路由控制器API的网络连接
- 有效的路由控制器凭据(用户名/密码或API令牌)
安装
来源
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来自MCP注册表
待定
配置
配置文件(config.json)
创建一个 config.json 具有以下结构的文件:
基本身份验证:
{
"http_url": "https://your-routing-director-host/",
"org_id": "your-organization-id",
"auth": {
"type": "basic",
"username": "your-username@example.com",
"password": "your-password"
}
}令牌身份验证:
{
"http_url": "https://your-routing-director-host/",
"org_id": "your-organization-id",
"auth": {
"type": "token",
"token": "your-api-token"
}
}注意:此身份验证在MCP服务器和路由控制器实例之间进行。MCP服务器将代表连接到它的客户端处理与路由控制器的身份验证。
配置参数
- http_url (必填):您的路由控制器实例的URL
- 组织id (必填):您在路由主管中的组织ID
- 认证 (必需):身份验证配置
- 类型:要么 basic 或 token - 用户名:路由主管用户名(用于基本身份验证) - 密码:路由控制器密码(用于基本身份验证) - 令牌:API令牌(用于令牌身份验证)
- 组件 (可选):用于过滤MCP服务器公开的工具和功能的附加组件配置。如果用户希望仅对某些组件过滤openapi规范,那么
components字段可用于提供组件列表以过滤规范。
组件可以是以下之一:
ems-用于报警相关信息(路由控制器上报告的报警的搜索、确认和取消确认)juniper-resiliency-interface-用于设备syslog信息(检索在路由控制器上收集的syslog消息)device-kpi-用于获取在路由控制器上收集的与Juniper Resiliency Interface(JRI)相关的异常事件(转发、路由和操作系统)
用法
启动服务器
python RoutingDirectorMCP.py --config config.json命令行选项
python RoutingDirectorMCP.py --help可用选项:
-H, --host:服务器主机(默认值:127.0.0.1)-p, --port:服务器端口(默认值:30030)-t, --transport:运输类型:streamable-http或stdio(默认:可流式传输http)-c, --config:配置文件的路径(必需)-v, --verbose:启用详细日志记录
示例:从自定义配置开始
python RoutingDirectorMCP.py \
--config config.json \
--host localhost \
--port 8000 \
--transport streamable-http \
--verboseMCP服务器和MCP主机之间的身份验证(Claude/Copilot等)
许可证管理
服务器通过令牌管理器支持基于令牌的身份验证。如果存在令牌文件,则会自动为HTTP传输启用身份验证。
对于 stdio 传输时,身份验证被绕过,因为它通常用于安全的本地环境。
启用MCP服务器和MCP客户端之间的身份验证。
您可以使用基于文件的令牌身份验证在MCP客户端和MCP之间进行通信\ 服务器。要生成令牌,请在本地系统中执行以下命令:
python utils/mcp/token_cli.py generate --client-id sv@juniper.net --description "Token for SV" 哪里, 客户端id-是用于生成身份验证令牌的id。\ 以下是生成的输出示例:
Generated new token:
ID: my-client
Token: apa_CA98sH_VwEBd79aHA6O9NxbhXQN_RqaK
Description: Production API 将生成的令牌保存在.tokens文件中。默认情况下,令牌保存在GitHub MCP存储库的根目录中。
日志记录
启用调试的详细日志记录:
LOG_LEVEL=DEBUG python RoutingDirectorMCP.py --config config.json --verbose连接到MCP服务器
用户可以使用任何MCP主机(如Claude、Copilot、Chatgpt等)连接到MCP服务器。配置MCP主机时,请使用启动MCP服务器时指定的相同传输类型、主机和端口。
配置Claude\ 要配置Claude,请执行以下操作:
- 在文本编辑器中打开Claude配置文件。\
•在macOS计算机上,在终端中运行以下命令: ~/Library/Application Support/Claude/claude_desktop_config.json •在Windows计算机上,打开命令提示符并输入: %APPDATA%\Claude\claude_desktop_config.json
- 添加您的MCP服务器配置,如下所示:
{
"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与MCP服务器的连接。
如果MCP服务器工具列在+>连接器下,则Claude已连接到MCP服务器。
配置副驾驶: 要配置Copilot,请执行以下操作:
- 打开虚拟工作室(VS)代码。\
或者,您可以使用支持以下功能的任何其他集成开发环境(IDE)\ Copilot和MCP服务器,
- 使用以下方法之一打开MCP设置文件:\
•在macOS上,在终端中运行以下命令:打开 ~/Library/Application\ Support/Code/User/mcp.json 其中,user是您在macOS计算机上的用户名。\ •在Windows计算机上,打开命令提示符并输入: C:/Users/YourUserName/AppData/Roaming/Code/User/mcp.json 其中,user是您在Windows计算机上的用户名。
- 将MCP服务器配置添加到设置文件中,如下所示:
{
"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"
]
}
}
} - 保存文件。
- 关闭并重新打开VS代码,使MCP配置更改生效。
- 验证Copilot是否与MCP服务器连接。\
如果您发现指示成功连接到的消息,则副驾驶已连接到MCP服务器\ VS代码输出面板中的MCP服务器。\ 或者,您可以查看VS代码扩展中列出的MCP服务器工具(API调用)。
为确保MCP服务器已正确启动,请查看MCP服务器日志。日志是\ 基于与AI代理的通信类型生成:\ •如果使用stdio,则使用传输“stdio”启动MCP服务器“Juniper路由目录”。\ •信息正在启动MCP服务器“Juniper路由目录”,传输“http”http://127.0.0.1:30030/mcp如果\ 使用可流式传输的http。
有关在MCP主机应用程序中配置MCP服务器的更多详细信息,请参阅 VScode副本:https://code.visualstudio.com/docs/copilot/customization/mcp-servers 克劳德:https://code.claude.com/docs/en/mcp
______________________________________________________________________
故障排除
问题:“需要配置文件路径”
解决方案:确保您提供 --config 使用配置文件的有效路径标记。
问题:“MCP配置文件中缺少强制密钥”
解决方案:验证config.json是否包含所有必需的密钥: http_url, org_id,以及 auth.
问题:“身份验证失败”
解决方案:
- 验证您的路由主管凭据
- 确保在配置的http_url上可以访问路由控制器实例
- 检查您的用户名/密码或API令牌是否正确
- 验证与路由控制器主机的网络连接
问题:连接被拒绝
解决方案:
- 验证服务器是否正在运行
--host和--port匹配您的客户端配置 - 检查防火墙规则是否允许配置端口上的流量
问题:“未找到令牌文件。身份验证已禁用”
解决方案:对于需要身份验证的HTTP传输,请确保令牌文件已正确初始化。对于开发/测试,这通常是可以接受的。
______________________________________________________________________
版本
当前版本: v2.8.0
______________________________________________________________________
致谢
此MCP服务器与瞻博网络的路由控制器平台集成,提供企业级网络智能和优化功能。
______________________________________________________________________
