CiscoU RADKit MCP Server

使用说明(Markdown 格式)

  • 项目简介
    • 这是一个使用 FastMCP 实现的 MCP 服务器,面向 Cisco RADKit 服务,提供对网络设备的清单查询、设备属性查看以及在设备上执行 CLI 命令的工具集合,旨在让 LLM 客户端通过 MCP 协议以标准化方式访问网络设备信息与功能。
  • 主要功能点
    • 资源与工具的 MCP 支持:提供以下 MCP 工具
      • get_device_inventory_names:返回 RADKit 设备清单(名称集合)
      • get_device_attributes(target_device):返回指定设备的属性信息(JSON 字符串)
      • exec_cli_commands_in_device(target_device, cli_commands):在设备上执行 CLI 命令并返回原始输出
    • 连接管理:通过单例模式维持与 RADKit 服务的连接,避免重复建立连接
    • 安全与稳定性:内置对危险命令的保守校验,避免执行可能影响网络的操作
    • 多传输支持:可通过 stdio、SSE、HTTP 传输 MCP 会话,方便在不同环境中部署
    • 环境配置:通过 .env 文件配置 RADKit 服务账户、服务码及传输方式
  • 安装步骤
    • 安装依赖与环境
      • 需要 Python 3.10 及以上版本
      • 安装依赖包:fastmcp、python-dotenv、radkit-client 等
    • 获取代码
      • 克隆仓库并进入目录
    • 安装并运行
      • 设置虚拟环境并安装依赖
      • 根据需求配置 RADKit 服务账号及服务码等信息
      • 启动 MCP 服务器:在终端执行相应启动命令(如 uv run ciscou-radkit-mcp),服务器将根据环境变量选择传输方式并监听端口
  • 服务器配置(面向 MCP 客户端的 JSON 配置,包含 server name、command、args) 注意:以下信息用于 MCP 客户端在启动前了解服务器连接参数,客户端本身不需要包含这些代码。 { "server_name": "CiscoURADKitMCP", "command": "uv", "args": ["run", "ciscou-radkit-mcp"], "notes": "启动 FastMCP 服务器,传输模式通过环境变量 MCP_TRANSPORT 设置(stdio、http、sse)。默认端口如环境变量 MCP_PORT 指定。" }
  • 基本使用方法
    • 准备阶段:确保 RADKit 服务可用并在 .env 中正确配置 RADKIT_SERVICE_USERNAME、RADKIT_SERVICE_CODE、RADKIT_CLIENT_PRIVATE_KEY_PASSWORD_BASE64 和 MCP_TRANSPORT(以及必要时 MCP_HOST、MCP_PORT)
    • 启动服务器:在终端执行启动命令,服务器启动后将监听指定传输路径(如 /sse 或 stdio 路径)
    • 与 LLM/客户端对接:通过 MCP 客户端使用 JSON-RPC 风格的请求调用上述工具,获取设备清单、设备属性或执行命令的结果

服务器信息