项目简介
本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,它充当 LLM 客户端与 Sumo Logic 日志服务之间的桥梁。通过该服务器,LLM 可以调用预设的 'search_sumologic' 工具,利用自然语言查询 Sumo Logic 的日志数据,从而实现日志分析、问题排查等功能。
主要功能点
- 日志搜索: 提供 'search_sumologic' 工具,允许 LLM 根据用户输入的自然语言查询,转换为 Sumo Logic 查询语句,并执行日志搜索。
- 可配置时间范围: 支持在搜索时指定时间范围,精确控制日志检索的时间段。
- 错误处理和日志记录: 具备完善的错误处理机制和详细的日志记录,方便开发者追踪问题和监控服务器运行状态。
- Docker 部署: 提供 Dockerfile,支持容器化部署,简化部署流程。
- PII 数据脱敏: 对日志数据中的敏感信息(如邮箱、信用卡号、电话号码、地址、社保号码等)进行脱敏处理,保护用户隐私。
安装步骤
-
克隆仓库
git clone https://github.com/samwang0723/mcp-sumologic.git cd mcp-sumologic -
安装依赖 确保已安装 Node.js 和 npm,然后运行:
npm install -
配置环境变量 创建 '.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区域)。
-
构建项目
npm run build -
启动服务器
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 协议文档和项目代码。
信息
分类
开发者工具