网络设备交互MCP服务器

RADKit MCP Server是一款连接AI助手与Cisco RADKit的MCP服务器,支持通过自然语言进行网络设备交互、诊断和自动化。

  • by kickouille
  • Dockerfile
  • 本地部署
  • 更新于
在 GitHub 查看 kickouille/radkit-mcp

使用说明

RADKit MCP服务器

A. 模型上下文协议(MCP)服务器 将AI助手(如Claude、Cursor或任何兼容MCP的客户端)与 思科RADKit --通过自然语言实现人工智能驱动的网络设备交互、诊断和自动化。


目录


概述

RADKit (远程访问和诊断工具包)是一个思科工具,提供对网络设备的安全、零信任远程访问。该项目涵盖了 RADKit MCP服务器社区 将RADKit打包成Docker就绪部署,将RADKit功能作为MCP服务器公开。

通过这种集成,AI助手可以:

  • 🔍 查询网络设备 --运行show命令,检索设备状态
  • 🛠️ 诊断网络问题 --利用人工智能推理实时设备数据
  • ⚙️ 自动化网络操作 --通过自然语言指令执行工作流
  • 🔐 安全访问设备 --所有流量都通过RADKit的零信任基础设施进行隧道传输

建筑

┌─────────────────────┐      MCP/stdio       ┌──────────────────────┐
│   AI Assistant      │◄────────────────────►│  RADKit MCP Server   │
│ (Claude, Cursor...) │                      │    (this project)    │
└─────────────────────┘                      └──────────┬───────────┘
                                                        │ RADKit API
                                                        ▼
                                           ┌────────────────────────┐
                                           │  Cisco RADKit Cloud    │
                                           └────────────┬───────────┘
                                                        │
                                                        ▼
                                           ┌────────────────────────┐
                                           │    Network Devices     │
                                           │ (Routers, Switches...) │
                                           └────────────────────────┘

先决条件

在开始之前,请确保您已经:

  • 码头工人 和 Docker Compose 已安装(安装Docker)
  • 有效的 Cisco RADKit帐户 与:
    • RADKit 服务序列号 数字
    • RADKit 身份 (电子邮件/CCO ID)
    • 您的RADKit 客户端私钥密码
  • 访问a RADKit注册的网络设备

💡 RADKit新手?访问 思科RADKit文档 开始吧。


快速开始

1.克隆存储库(带子模块)

git clone --recurse-submodules https://github.com/kickouille/radkit-mcp.git
cd radkit-mcp

如果你已经克隆了 --recurse-submodules:

git submodule update --init --recursive

2.配置环境变量

编辑 compose.yml 并填写您的RADKit凭据:

RADKIT_MCP_SERVICE_SERIAL=<your-service-serial>
RADKIT_MCP_IDENTITY=<your-radkit-identity>
RADKIT_MCP_CLIENT_PRIVATE_KEY_PASSWORD=<your-private-key-password>

⚠️ 安全说明: 考虑使用 .env 文件或Docker机密,而不是硬编码凭据 compose.yml.

3.构建和运行

docker compose up --build

配置

服务器是通过环境变量配置的:

变量 必填 描述
RADKIT_MCP_SERVICE_SERIAL ✅ 是 您的RADKit服务序列号
RADKIT_MCP_IDENTITY ✅ 是 您的RADKit身份(CCO ID/电子邮件)
RADKIT_MCP_CLIENT_PRIVATE_KEY_PASSWORD ✅ 是 RADKit客户端私钥的密码

持久凭据数量

RADKit凭据存储在Docker卷中(radkit-credentials)安装在 /root/.radkit 在容器内。这可确保凭据在容器重新启动时保持不变。


Docker使用

手动构建图像

docker build -t radkit-mcp .

使用Docker Compose运行

# Start in foreground
docker compose up

# Start in background
docker compose up -d

# View logs
docker compose logs -f

# Stop
docker compose down

直接运行容器

docker run -it \
  -e RADKIT_MCP_SERVICE_SERIAL=your-serial \
  -e RADKIT_MCP_IDENTITY=your-identity \
  -e RADKIT_MCP_CLIENT_PRIVATE_KEY_PASSWORD=your-password \
  -v radkit-credentials:/root/.radkit \
  radkit-mcp

连接MCP客户端

克劳德桌面

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "radkit": {
      "command": "docker",
      "args": [
        "compose",
        "-f", "/path/to/radkit-mcp/compose.yml",
        "run", "--rm", "-i",
        "radkit-mcp"
      ]
    }
  }
}

游标/其他MCP客户端

配置您的MCP客户端,将Docker容器作为基于stdio的MCP服务器启动。容器预先配置了 stdin_open: true 和 tty: true 用于交互式使用。


项目结构

radkit-mcp/
├── .gitmodules                      # Git submodule configuration
├── Dockerfile                       # Docker image definition
├── compose.yml                      # Docker Compose service definition
├── README.md                        # This file
└── radkit-mcp-server-community/     # Git submodule (CiscoDevNet)
    # Core MCP server Python package (radkit_mcp)
文件 目的
Dockerfile 使用以下命令构建服务器映像 uv Python 3.12 slim
compose.yml 定义Docker服务、环境变量和持久卷
radkit-mcp-server-community/ 子模块 radkit_mcp CiscoDevNet的Python包

运作原理

  1. Docker构建 通过安装 radkit-mcp-server-community Python包使用 uv
  2. 在运行时,集装箱发射 python -m radkit_mcp,启动MCP服务器
  3. MCP服务器 通过stdio与AI客户端通信,继 模型上下文协议
  4. 当AI发出工具调用时,MCP服务器 使用Cisco RADKit进行身份验证 使用提供的凭据和代理命令注册网络设备
  5. 返回结果 作为结构化MCP响应发送给AI客户端

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/my-feature)
  3. 提交您的更改(git commit -m 'Add my feature')
  4. 推到您的分支(git push origin feature/my-feature)
  5. 打开拉取请求

对于核心MCP服务器逻辑的问题,请向上游存储库投稿: 👉 CiscoDevNet/radkit mcp服务器社区


相关项目


许可证

该项目根据 Apache许可证2.0.

这 radkit-mcp-server-community 子模块由思科DevNet维护,并受其自身许可条款的约束。


Made with ❤️ for the network automation community