项目简介
这是一个使用 Python 语言和 'fastmcp' 库实现的 MCP (Model Context Protocol) 服务器,专门用于桥接大型语言模型 (LLM) 客户端与 Juniper Apstra 自动化平台。它将 Apstra 的部分 API 功能封装成 MCP 工具,允许 LLM 通过标准的 MCP 协议发现并调用这些功能,从而实现基于 LLM 的网络自动化和管理。
主要功能点
该服务器主要提供了以下工具能力,供 LLM 客户端调用:
- 获取蓝图 (Blueprints) 信息:查询 Apstra 中配置的蓝图列表。
- 获取机架 (Racks) 信息:查询特定蓝图下的机架配置。
- 获取路由区域 (Routing Zones) 信息:查询特定蓝图下的安全区域(路由区域)配置。
- 创建虚拟网络 (Virtual Networks):在指定的蓝图和路由区域中创建新的虚拟网络。
- 检查配置差异状态:获取特定蓝图的当前暂存 (staging) 版本与已部署版本之间的差异状态。
- 部署配置:将特定蓝图的暂存配置部署到网络设备上。
安装步骤
- 克隆仓库:
git clone https://github.com/vignitin/apstra-mcp-server.git cd apstra-mcp-server - 安装依赖:确保你的系统安装了 Python。然后安装所需的库:
pip install fastmcp httpx - 配置 Apstra 连接信息:编辑 'apstra_mcp_v2.py' 文件,将占位符 'aos_server', 'username', 'password' 替换为你的 Apstra 服务器的 IP 地址/主机名、用户名和密码。请注意:直接将敏感信息写入代码存在安全风险,在生产环境请考虑更安全的配置方式(如环境变量)。
服务器配置 (供 MCP 客户端使用)
要让支持 MCP 协议的 LLM 客户端(如某些 AI 助手或开发框架)使用此服务器,你需要将此服务器注册到客户端的 MCP 配置中。客户端通常需要知道如何启动这个 MCP 服务器进程。
以下是一个示例的客户端配置片段(JSON 格式),说明了如何指向并启动此服务器:
{ "server name": "Apstra MCP Server", "command": "python", "args": ["/path/to/your/cloned/repo/apstra_mcp_v2.py"], "description": "Provides tools to interact with Juniper Apstra via MCP." }
- 'server name': 在客户端界面中显示的服务名称。
- 'command': 启动服务器进程的命令。通常是 'python'。
- 'args': 传递给命令的参数列表。这里是服务器脚本文件的路径。请将 '/path/to/your/cloned/repo/apstra_mcp_v2.py' 替换为你实际存放 'apstra_mcp_v2.py' 文件的绝对路径。
- 'description': 服务器的功能描述。
客户端在需要调用该服务器提供的工具时,会根据此配置信息启动 'apstra_mcp_v2.py' 脚本作为独立的进程,并通过标准输入/输出或配置的其他传输协议进行通信。
基本使用方法
一旦 MCP 服务器被 MCP 客户端成功配置和启动,LLM 就可以通过客户端框架发现该服务器暴露的工具(如 'get_bp', 'create_vn', 'deploy' 等)。LLM 可以根据用户的需求或其内部逻辑,构造符合 MCP 协议的 JSON-RPC 请求来调用这些工具,传递必要的参数(如 'blueprint_id', 'vn_name' 等)。服务器执行相应的 Apstra API 调用,并将结果通过 JSON-RPC 响应返回给客户端,最终反馈给 LLM 或用户。具体如何与 LLM 交互取决于所使用的 MCP 客户端应用。
信息
分类
商业系统