项目简介

本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,它充当 LLM 客户端与 Sumo Logic 日志服务之间的桥梁。通过该服务器,LLM 可以调用预设的 'search_sumologic' 工具,利用自然语言查询 Sumo Logic 的日志数据,从而实现日志分析、问题排查等功能。

主要功能点

  • 日志搜索: 提供 'search_sumologic' 工具,允许 LLM 根据用户输入的自然语言查询,转换为 Sumo Logic 查询语句,并执行日志搜索。
  • 可配置时间范围: 支持在搜索时指定时间范围,精确控制日志检索的时间段。
  • 错误处理和日志记录: 具备完善的错误处理机制和详细的日志记录,方便开发者追踪问题和监控服务器运行状态。
  • Docker 部署: 提供 Dockerfile,支持容器化部署,简化部署流程。
  • PII 数据脱敏: 对日志数据中的敏感信息(如邮箱、信用卡号、电话号码、地址、社保号码等)进行脱敏处理,保护用户隐私。

安装步骤

  1. 克隆仓库

    git clone https://github.com/samwang0723/mcp-sumologic.git
    cd mcp-sumologic
  2. 安装依赖 确保已安装 Node.js 和 npm,然后运行:

    npm install
  3. 配置环境变量 创建 '.env' 文件,并根据 Sumo Logic 账号信息配置以下环境变量:

    ENDPOINT=https://api.au.sumologic.com/api/v1  # Sumo Logic API Endpoint,请根据您的Sumo Logic区域修改
    SUMO_API_ID=your_api_id                       # 您的 Sumo Logic API ID
    SUMO_API_KEY=your_api_key                     # 您的 Sumo Logic API Key

    请替换 'your_api_id' 和 'your_api_key' 为您真实的 Sumo Logic API 凭证。'ENDPOINT' 请根据您的Sumo Logic 部署区域进行调整,例如 'https://api.us2.sumologic.com/api/v1' (US2区域)。

  4. 构建项目

    npm run build
  5. 启动服务器

    npm start

    或者,如果您希望在开发模式下运行,可以使用:

    npm run dev

服务器配置

以下为 MCP 客户端连接此 MCP 服务器所需的配置信息 (JSON 格式):

{
  "serverName": "mcp-sumologic",  // MCP 服务器名称,可自定义
  "command": "npm",             // 启动服务器的命令,这里使用 npm
  "args": ["start"]              // 启动服务器命令的参数,这里使用 npm start 启动
}

配置参数注释:

  • 'serverName': MCP 服务器的名称,客户端可以使用此名称来标识和管理连接。您可以自定义此名称。
  • 'command': 用于启动 MCP 服务器的可执行命令。由于项目使用 npm 管理,并且 'package.json' 中配置了 'start' 脚本,因此这里使用 'npm' 命令。
  • 'args': 传递给 'command' 的参数列表。'npm start' 命令用于运行 'package.json' 中定义的 'start' 脚本,该脚本会启动 MCP 服务器。

注意: MCP 客户端需要能够执行 'npm' 命令,并访问到 'mcp-sumologic' 项目的根目录,以便正确启动服务器。 确保 MCP 客户端的运行环境已安装 Node.js 和 npm。 环境变量 'ENDPOINT', 'SUMO_API_ID', 'SUMO_API_KEY' 需要在 MCP 服务器的运行环境中正确配置,可以通过 '.env' 文件或者其他环境变量设置方式进行配置。

基本使用方法

服务器启动后,LLM 客户端可以通过 MCP 协议与之通信。客户端可以调用服务器提供的 'search_sumologic' 工具来搜索 Sumo Logic 日志。

'search_sumologic' 工具参数:

  • 'query' (必填): Sumo Logic 查询语句。例如:''_index=app_pro_fiat_cont | json auto | fields log_identifier''。
  • 'from' (可选): 搜索起始时间,ISO 8601 格式。例如:''2024-02-23T00:00:00Z''。
  • 'to' (可选): 搜索结束时间,ISO 8601 格式。例如:''2024-02-24T00:00:00Z''。

使用示例:

LLM 客户端可以构造 MCP 请求,调用 'search_sumologic' 工具,并传递相应的参数。服务器将执行 Sumo Logic 日志搜索,并将结果以 JSON 格式返回给客户端。客户端可以解析 JSON 结果,并将其用于后续的自然语言处理任务,例如日志分析、异常检测等。

例如,一个典型的 MCP 请求可能如下 (简化示例,实际 MCP 协议请求会更复杂):

{
  "method": "callTool",
  "params": {
    "toolName": "search_sumologic",
    "toolParams": {
      "query": "_index=nginx | json | count",
      "from": "2024-01-01T00:00:00Z",
      "to": "2024-01-02T00:00:00Z"
    }
  }
}

服务器将返回包含搜索结果的 MCP 响应。具体的响应格式请参考 MCP 协议文档和项目代码。

信息

分类

开发者工具