项目简介
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进行部署。
-
源码构建 (需要 Node.js 环境):
- 克隆仓库。
- 进入项目目录。
- 运行 'yarn install' 安装依赖。
- 运行 'yarn build' 构建项目。
-
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' 控制服务器日志输出级别。
基本使用方法
- 按照上述步骤安装并配置MCP服务器到您的MCP客户端。
- 确保您的MCP客户端已启动并成功连接到此MCP服务器(客户端通常会有界面或日志显示连接状态和发现的工具)。
- 在MCP客户端中与LLM交互时,LLM将能感知并使用此服务器提供的工具。
- 您可以向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)
- LLM会根据您的问题自动选择合适的工具,调用服务器获取数据,并基于返回的数据生成答案。
信息
分类
AI与计算