返回市场
催化剂中心-mcp

催化剂中心-mcp

作者:richbibby7 星标更新:2025-05-17

项目介绍

Catalyst Center MCP 服务器

基于Python的MCP(模型上下文协议)服务器,用于Cisco Catalyst Center(以前称为DNA Center),提供设备管理、客户端信息检索和网络监控工具。

功能

  • 与Cisco Catalyst Center的安全认证。
  • 设备发现、列出和详细信息检索。
  • 站点信息检索,包括层次结构和详细信息。
  • 特定设备的网络接口信息。
  • 客户端列表,具有全面的过滤选项。
  • 通过MAC地址检索详细的客户端信息。
  • 带有过滤条件的客户端数量检索。
  • 辅助工具,用于API兼容的时间范围转换。
  • 使用FastMCP实现,构建一个强大且可扩展的MCP服务器。
  • 通过.env文件进行配置,便于设置。

安装

  1. 克隆仓库:
git clone https://github.com/richbibby/catalyst-center-mcp.git
cd catalyst-center-m
  1. 创建虚拟环境并激活它:
python -m venv venv
source venv/bin/activate  # 在Windows上:venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt

配置

  1. 复制示例环境文件:
cp .env.example .env
  1. 更新.env文件,添加您的Catalyst Center凭据:
CCC_HOST=your-catalyst-center-host
CCC_USER=your-username
CCC_PWD=your-password

使用Claude桌面客户端

  1. 配置Claude桌面以使用此MCP服务器:
  • 打开Claude桌面
  • 转到设置 > 开发者 > 编辑配置
  • 添加以下配置(根据需要调整路径,参见claude_desktop_config.json示例结构):
{
  "mcpServers": {
    "catalyst-center-mcp": {
      "command": "/path/to/your/venv/bin/fastmcp",
      "args": [
        "run",
        "/path/to/your/catalyst-center-mcp/catalyst-center-mcp.py"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}
  • /path/to/your/...替换为您本地环境相关的绝对路径。
  • 推荐使用PYTHONUNBUFFERED环境变量以支持Stdio传输。
  1. 重启Claude桌面

  2. 与Claude桌面交互:

  • 让Claude执行如“显示我Cisco Catalyst Center中的所有设备”之类的操作
  • Claude将使用MCP服务器进行身份验证并获取设备信息

Claude桌面与Catalyst Center MCP

Claude桌面与Catalyst Center MCP

示例问题

这里有一些示例问题,您可以询问Claude以与您的Catalyst Center互动:

设备信息

  • “显示我网络中的所有设备”
  • “列出我网络中的所有交换机”
  • “哪些设备当前不可达?”
  • “显示主机名包含'switch'的设备”
  • “IP地址为10.1.1.1的设备状态是什么?”

接口信息

  • “显示设备X的所有接口”
  • “设备Y上的哪些接口是关闭的?”
  • “列出设备Z上的所有千兆接口”
  • “显示带有IP地址的接口”
  • “设备X上的GigabitEthernet1/0/1接口的状态是什么?”

站点信息

  • “显示我网络中的所有站点”
  • “站点X中有哪些设备?”
  • “列出我网络中的所有建筑”
  • “显示站点层次结构”
  • “站点Y的地址是什么?”

客户端信息

  • “目前有多少客户端连接?”
  • “列出所有无线客户端。”
  • “显示连接到SSID 'Corporate-WiFi'的客户端。”
  • “MAC地址为aa:bb:cc:dd:ee:ff的客户端详情是什么?”
  • “是否有操作系统类型为'macOS'的客户端?”
  • “列出过去一小时内活跃的客户端。”

组合查询

  • “显示站点X中的所有设备及其接口”
  • “列出所有设备上的所有关闭接口”
  • “建筑Y中哪些设备有不可达的接口?”
  • “显示站点Z的网络拓扑”
  • “区域A中所有设备的状态是什么?”

可用工具

  • fetch_devices:从Cisco Catalyst Center获取设备列表,带过滤选项。
  • fetch_sites:从Cisco Catalyst Center获取站点列表,返回紧凑的JSON结构。
  • fetch_interfaces:获取特定设备ID的接口信息。
  • get_api_compatible_time_range:将自然语言时间输入(例如,“过去24小时”,“昨天”)或特定时间戳转换为API兼容的毫秒级开始和结束时间。
  • get_clients_list:从Cisco Catalyst Center获取客户端列表,具有全面的过滤选项(例如,按客户端类型、操作系统、站点、MAC/IP地址、SSID)。每次调用最多返回100个客户端。
  • get_client_details_by_mac:通过MAC地址获取特定客户端的详细信息。
  • get_clients_count:获取匹配指定过滤器的客户端总数。

贡献

  1. 分叉仓库
  2. 创建您的功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加一些惊人的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开拉取请求