内容
# sumo-logic-mcp
Sumo Logic 的 MCP 服务器 — 48 种工具,用于搜索日志、管理监视器、警报、仪表盘、收集器、指标、内容库、用户、角色、字段、分区、查找表和摄入预算。
通用且与组织无关。任何团队都可以插入自己的 Sumo Logic 凭证并开始查询。
> **注意:** 这是一个实验性、社区驱动的项目 — 不是官方的 Sumo Logic 产品。可以随意测试和使用。
## 安装
```bash
pip install sumo-logic-mcp
```
或在不安装的情况下运行(通过 [uv](https://docs.astral.sh/uv/)):
```bash
uvx sumo-logic-mcp
```
## 设置
### 1. 获取访问凭证
1. 登录到您的 Sumo Logic 账户(例如,`https://<your-org>.sumologic.com`)
2. 点击您的个人资料图标(右上角)并进入 **首选项**
3. 滚动到 **我的访问密钥** 并点击 **添加访问密钥**
4. 为其命名,保留作用域默认值或根据需要设置
5. 复制 **访问 ID** 和 **访问密钥**
### 2. 配置您的 MCP 客户端
添加到您的 MCP 客户端配置(例如,`~/.cursor/mcp.json` 或 Claude Desktop 配置):
```json
{
"mcpServers": {
"sumologic": {
"command": "uvx",
"args": ["sumo-logic-mcp"],
"env": {
"SUMOLOGIC_ACCESS_ID": "<your-access-id>",
"SUMOLOGIC_ACCESS_KEY": "<your-access-key>",
"SUMOLOGIC_ENDPOINT": "https://api.sumologic.com"
}
}
}
}
```
**或直接运行:**
```bash
export SUMOLOGIC_ACCESS_ID="your-access-id"
export SUMOLOGIC_ACCESS_KEY="your-access-key"
export SUMOLOGIC_ENDPOINT="https://api.sumologic.com"
sumo-logic-mcp
```
## 工具参考
### 搜索和分析(4 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `search_logs` | 执行日志搜索(完整生命周期:创建作业、轮询、获取、清理) | `query` |
| `get_search_status` | 检查正在运行的搜索作业的状态 | `job_id` |
| `get_search_results` | 从搜索作业中获取消息或记录 | `job_id` |
| `cancel_search` | 取消正在运行的搜索作业 | `job_id` |
**`search_logs` 可选参数:** `from_time`(默认值 `-15m`),`to_time`(默认值 `now`),`timezone`(默认值 `UTC`),`limit`(默认值 `100`),`by_receipt_time`,`timeout`(默认值 `300s`)。
**时间格式:** ISO 8601(`2024-01-15T09:00:00`),相对(`-15m`,`-1h`,`-2d`,`-1w`),毫秒级时间戳(`1718745600000`),或 `now`。
### 监视器管理(10 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `list_monitors` | 列出所有监视器 | — |
| `search_monitors` | 按名称或状态筛选搜索 | `query` |
| `get_monitor` | 获取完整的监视器配置 | `monitor_id` |
| `create_monitor` | 创建新的监视器 | `name`,`query`,`threshold` |
| `update_monitor` | 更新监视器配置(读取-修改-写入) | `monitor_id`,`fields_json` |
| `delete_monitor` | 删除监视器(不可逆) | `monitor_id` |
| `enable_monitor` | 启用禁用的监视器 | `monitor_id` |
| `disable_monitor` | 禁用监视器 | `monitor_id` |
| `get_monitor_status` | 获取当前健康/触发状态 | `monitor_id` |
| `get_monitor_history` | 获取监视器的警报历史 | `monitor_id` |
### 警报管理(3 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `get_active_alerts` | 获取所有当前触发的警报 | — |
| `get_alert_details` | 获取监视器的详细警报信息 | `monitor_id` |
| `resolve_alert` | 通过禁用监视器来解决警报 | `monitor_id` |
### 仪表盘管理(5 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `list_dashboards` | 列出仪表盘并分页 | — |
| `get_dashboard` | 获取完整的仪表盘配置 | `dashboard_id` |
| `create_dashboard` | 创建带有面板和布局的仪表盘 | `title`,`panels_json`,`layout_json` |
| `update_dashboard` | 更新仪表盘配置(读取-修改-写入) | `dashboard_id`,`fields_json` |
| `delete_dashboard` | 删除仪表盘(不可逆) | `dashboard_id` |
### 收集器和源管理(8 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `list_collectors` | 列出所有收集器 | — |
| `get_collector` | 获取收集器配置 | `collector_id` |
| `create_hosted_collector` | 创建新的托管收集器 | `name` |
| `update_collector` | 更新收集器配置(使用 ETag 锁定) | `collector_id`,`fields_json` |
| `delete_collector` | 删除收集器及其源 | `collector_id` |
| `list_sources` | 列出收集器上的源 | `collector_id` |
| `get_source` | 获取源配置 | `collector_id`,`source_id` |
| `create_http_source` | 创建 HTTP 源(返回端点 URL) | `collector_id`,`name` |
### 指标(4 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `query_metrics` | 执行指标查询 | `query` |
| `list_metric_definitions` | 发现可用的指标名称 | — |
| `get_metric_metadata` | 获取指标的维度 | `metric_name` |
| `list_metric_namespaces` | 列出指标内容类型 | — |
### 内容库(3 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `get_personal_folder` | 获取您的个人内容文件夹和子项 | — |
| `get_folder` | 获取文件夹及其子项 | `folder_id` |
| `get_content_by_path` | 按库路径查找内容 | `path` |
### 管理(8 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `list_users` | 列出所有用户及其电子邮件、角色、状态 | — |
| `list_roles` | 列出角色及其功能和筛选器(v2) | — |
| `list_fields` | 列出所有字段(内置 + 自定义) | — |
| `list_field_extraction_rules` | 列出 FER 及其作用域和解析表达式 | — |
| `list_partitions` | 列出分区及其路由和保留期 | — |
| `list_lookup_tables` | 列出查找表及其架构 | — |
| `get_lookup_table` | 获取查找表的配置和字段 | `table_id` |
| `list_ingest_budgets` | 列出摄入预算及其作用域和容量 | — |
### 实用工具(3 种工具)
| 工具 | 描述 | 必需参数 |
|---|---|---|
| `check_connection` | 验证 API 连接性和身份验证 | — |
| `get_account_usage` | 获取账户状态和摄入信息 | — |
| `validate_query` | 检查查询是否在语法上有效 | `query` |
## 使用示例
配置完成后,自然地询问您的 AI 助手:
```
"在过去一小时内搜索 500 错误"
"显示所有关键警报"
"为 API 高错误率创建监视器"
"列出所有托管收集器"
"有哪些 CPU 指标可用?"
"显示字段提取规则"
"列出所有分区及其保留期"
```
## 开发
```bash
git clone https://github.com/rajfirke/sumo-logic-mcp.git
cd sumo-logic-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# lint
ruff check src/ tests/
# test
pytest -v
# 在本地运行
export SUMOLOGIC_ACCESS_ID="..."
export SUMOLOGIC_ACCESS_KEY="..."
export SUMOLOGIC_ENDPOINT="https://api.sumologic.com"
sumo-logic-mcp
```
## 架构
```
src/sumo_logic_mcp/
├── __init__.py # 导出 mcp,触发工具注册
├── __main__.py # 入口点:python -m sumo_logic_mcp
├── server.py # FastMCP 实例 + 生命周期(共享 HTTP 客户端)
├── client.py # 异步 HTTP 客户端(httpx,基本身份验证,重试,cookie)
├── validation.py # 时间解析和验证
└── tools/
├── __init__.py # 导入所有工具模块
├── search.py # 4 种搜索工具
├── monitors.py # 10 种监视器工具
├── alerts.py # 3 种警报工具
├── dashboards.py # 5 种仪表盘工具
├── collectors.py # 8 种收集器/源工具
├── metrics.py # 4 种指标工具
├── content.py # 3 种内容库工具
├── admin.py # 8 种管理工具(用户,角色,字段,分区等)
└── utils.py # 3 种实用工具
```