项目简介

Cato MCP API 工具服务器是一个基于 Model Context Protocol (MCP) 标准实现的服务器应用,它集成 Cato Networks 的公共 API。其核心目的是使大型语言模型(LLM)客户端(如支持MCP的AI助手)能够标准化地访问和查询 Cato 环境的网络配置和状态数据。

主要功能点

  • 提供 Cato API 工具: 注册并暴露一组工具,允许LLM通过MCP协议调用,以获取Cato账户下的网络数据。
  • 访问实时数据: 通过GraphQL查询Cato CMA公共API,获取站点(Sites)、用户(Users)、实体(Entities)的最新快照信息。
  • 标准化数据访问: 将Cato API的数据结构通过MCP工具的定义(使用JSON Schema)标准化,使LLM易于理解和使用。
  • 支持多种工具: 提供包括站点位置、连接状态、软件版本、用户详情、连接信息、实体查找等多种查询工具。
  • LLM友好响应: 对查询结果进行处理,包括响应长度控制,确保返回的数据适合LLM的上下文窗口。
  • 环境配置: 支持通过环境变量配置Cato API连接信息和日志级别。

安装步骤

本项目可以通过源码构建或使用Docker进行部署。

  1. 源码构建 (需要 Node.js 环境):

    • 克隆仓库。
    • 进入项目目录。
    • 运行 'yarn install' 安装依赖。
    • 运行 'yarn build' 构建项目。
  2. Docker 部署:

    • 克隆仓库。
    • 进入项目目录。
    • 运行 'docker build -t catonetworks/mcp-server .' 构建Docker镜像。

服务器配置 (MCP 客户端配置)

MCP服务器通常由MCP客户端启动和管理。您需要在您的MCP客户端(如Claude Desktop, Cursor等)的配置中添加本服务器的信息。配置通常是一个JSON对象数组,示例如下(请根据您的实际情况替换尖括号内的信息):

// 部分 MCP 客户端配置示例 (请根据您的客户端文档查找具体位置和格式)
{
  "mcpServers": {
    "cato": { // 服务器的唯一名称,您可以自定义
      "command": "docker", // 启动服务器的命令 (例如 "docker" 或 "node")
      "args": [ // 传递给 command 的参数
          "run",
          "--rm", // 容器退出后自动删除
          "-i", // 保持 STDIN 打开以接收 MCP 消息
          "-e", "CATO_API_HOST=api.catonetworks.com", // 设置 Cato API 主机环境变量
          "-e", "CATO_ACCOUNT_ID=<您的 Cato Account ID>", // 设置 Cato Account ID 环境变量
          "-e", "CATO_API_KEY=<您的 Cato API Key>", // 设置 Cato API Key 环境变量
          "catonetworks/mcp-server" // Docker 镜像名称
      ],
      "env": { // 如果使用 node command,在这里设置环境变量
          // "CATO_API_HOST": "api.catonetworks.com",
          // "CATO_ACCOUNT_ID": "<您的 Cato Account ID>",
          // "CATO_API_KEY": "<您的 Cato API Key>",
          // "CATO_LOG_LEVEL": "info" // 可选,设置日志级别 (debug, info, error)
      },
      "disabled": false, // 是否启用该服务器
      "autoApprove": [] // 自动批准的工具列表 (可选)
    }
  }
}

关键配置项说明:

  • 'command': 指定启动服务器的执行文件路径或命令 ('node' 执行 'build/index.js' 或 'docker' 运行镜像)。
  • 'args': 传递给启动命令的参数。对于Docker,通常包括设置环境变量 ('-e') 和镜像名称。对于Node.js,通常是入口文件路径。
  • 'env': 如果 'command' 是 'node' 或其他直接执行程序,可以通过此字段传递环境变量。
  • 必需环境变量: 'CATO_API_HOST', 'CATO_ACCOUNT_ID', 'CATO_API_KEY'。这些用于服务器连接 Cato API。
  • 可选环境变量: 'CATO_LOG_LEVEL' 控制服务器日志输出级别。

基本使用方法

  1. 按照上述步骤安装并配置MCP服务器到您的MCP客户端。
  2. 确保您的MCP客户端已启动并成功连接到此MCP服务器(客户端通常会有界面或日志显示连接状态和发现的工具)。
  3. 在MCP客户端中与LLM交互时,LLM将能感知并使用此服务器提供的工具。
  4. 您可以向LLM提出与您的Cato网络环境相关的问题,例如:
    • "连接到伦敦PoP的站点有哪些?" (Using 'sites_by_location' tool)
    • "所有远程用户的连接状态和设备类型是什么?" (Using 'user_connection_details' or 'user_details' tool)
    • "哪些站点目前处于退化状态?" (Using 'degraded_sites' tool)
    • "查找所有类型为 'VPN User' 的实体,搜索名称包含 'John' 的用户。" (Using 'entity_lookup' tool)
  5. LLM会根据您的问题自动选择合适的工具,调用服务器获取数据,并基于返回的数据生成答案。

信息

分类

AI与计算