内容
<!-- mcp-name: io.github.rijul170/alertlogic-mcp -->
<div align="center">
# Alert Logic MCP 服务器
**将 Alert Logic MDR 平台全面整合到您的 AI 助手中。**
[](https://github.com/rijul170/alertlogic-mcp/actions/workflows/test.yml)
[](https://pypi.org/project/alertlogic-mcp/)
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.rijul170/alertlogic-mcp)
一个 [Model Context Protocol](https://modelcontextprotocol.io) 服务器,暴露完整的 Alert Logic API 接口,作为结构化工具,任何兼容 MCP 的客户端(Claude Desktop,Claude Code,Cursor 等)可以直接调用,实现 AI 驱动的安全运营、事件响应和威胁狩猎,适用于 MSSP 规模。
[](https://www.python.org/)
[](https://modelcontextprotocol.io)
[](#module-overview)
[](#license)
[](https://github.com/rijul170/alertlogic-mcp)
</div>
> **对于事件响应人员:** 查询 Alert Logic MDR 事件,详细说明原始日志证据,启动 SOAR 流程,搜索日志(使用 SQL)— 所有操作都通过 Claude 实现。设计用于 MSSP 规模的多账户操作。
---
## 目录
- [概述](#overview)
- [功能](#features)
- [架构](#architecture)
- [前提条件](#prerequisites)
- [安装](#installation)
- [配置](#configuration)
- [Claude Code 集成(HTTP 模式)](#claude-code-integration-http-mode)
- [Claude Desktop 集成(stdio 模式)](#claude-desktop-integration-stdio-mode)
- [模块概述](#module-overview)
- [SOC 快速入门](#soc-quick-start)
- [内置 SOC 流程](#built-in-soc-playbooks)
- [多账户 MSSP 使用](#multi-account-mssp-usage)
- [安全注意事项](#security-notes)
- [测试](#testing)
- [故障排除](#troubleshooting)
- [贡献](#contributing)
- [许可证](#license)
---
## 概述
该 MCP 服务器封装了 Alert Logic MDR 平台 API,并将其暴露为 473+ 结构化工具,任何兼容 MCP 的 AI 客户端可以直接调用。涵盖了完整的 Alert Logic API 接口 — 事件响应、基于 SQL 的日志搜索、SOAR 流程自动化、资产管理、漏洞分析、用户和凭证管理、计费等 — 组织成 46 个领域模块。身份验证、重试、分页、令牌管理和 JSON 塑形均在服务器端处理;您的 AI 客户端只需按名称调用工具。
---
## 功能
- **事件响应** — 列出、获取、详细说明(原始日志证据)、完成、重新打开、添加备注和反馈到事件中。包含友好 ID 查找。
- **SQL 日志搜索** — 以 SQL 提交 Alert Logic 日志搜索查询,轮询状态,检索结果,并释放会话。
- **SOAR 流程自动化** — 列出、获取、执行和监控 SOAR 流程;管理查询、触发器和执行状态。
- **资产拓扑** — 查询完整的资产库存,声明和删除资产,设置属性,并为任何部署检索拓扑图。
- **漏洞管理** — 按严重性列出暴露,检索每资产漏洞,搜索漏洞知识库,并管理补救项目。
- **用户和访问密钥管理** — 对用户、角色、访问密钥、MFA 设置和跨账户密码重置执行完整的 CRUD 操作。
- **多账户 MSSP 支持** — 每个工具的 `account_id` 覆盖和批量跨账户操作(批量部署、批量健康检查、合作伙伴事件)。
- **内置 SOC 流程** — 六个工具,提供预写的 IR 指南、威胁狩猎工作流、MITRE ATT&CK 映射和工具参考指南,直接在上下文中显示。
- **票务和监控列表** — 创建、更新和关闭票务;管理警报监控列表。
- **云和 Azure 资源管理器** — 跨 AWS 和 Azure 环境浏览云资源拓扑。
- **分析引擎** — 访问 AE 内容、规则、分析、标签、调优和发布,跨多个 AE 子系统。
- **基础设施运营** — 管理环境、扫描计划、扫描结果、网络控制、摄取源和日志集成。
---
## 架构
```
+--------------------+ stdio / streamable-HTTP (MCP) +--------------------------------+
| MCP 客户端 | <-------------------------------------> | AlertLogic MCP 服务器 |
| (Claude Desktop, | | (此仓库,main.py) |
| Claude Code, …) | | |
+--------------------+ | 46 个模块(~473 个工具): |
| 事件、SOC、SOAR、资产、漏洞、用户、… |
| | |
| base.py(HTTP、AIMS 身份验证、 |
| 令牌缓存、重试) |
+----------+---------------------+
|
v HTTPS + AIMS 令牌
+-----------------------------+
| AlertLogic MDR 平台 |
| api.cloudinsight....com |
+-----------------------------+
```
**传输协议:** 服务器支持三种 MCP 传输协议,可通过 `MCP_TRANSPORT` 选择:
- `stdio`(默认)— 按需启动您的 MCP 客户端;无需打开网络端口。
- `streamable-http` — 持久的 HTTP 服务器;适用于 Claude Code 和远程客户端。
- `sse` — 服务器发送事件(SSE)传输协议,适用于支持 SSE 的客户端。
**身份验证:** Alert Logic 使用 AIMS 令牌身份验证。服务器用您的 `access_key_id:secret_key` API 密钥交换短期令牌,缓存它,并在令牌过期时自动重新身份验证 — 无需手动令牌轮换。
**`base.py`** 集中了 HTTP 方法助手(`_get`、`_post`、`_put`、`_delete`),每个服务的 URL 路由(Account-Topology 服务、全局服务、`_at` 前缀路由),错误转换和 AIMS 令牌缓存。
---
## 前提条件
- Python 3.10 或更新版本
- `uv`(推荐)或 `pip`
- 具有启用 API 访问的 Alert Logic 账户
- Alert Logic API 密钥(访问密钥 ID + 秘密密钥;参见 [配置](#configuration))
---
## 安装
```bash
# 1. 克隆仓库
git clone https://github.com/rijul170/alertlogic-mcp.git
cd alertlogic-mcp
# 2. 创建虚拟环境并安装依赖
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# 或使用 uv(更快):
uv venv
uv pip install -r requirements.txt
# 3. 配置凭证
cp .env.example .env
$EDITOR .env # 填写所需的变量(见下文)
```
---
## 配置
所有配置均通过环境变量完成,在启动时从 `.env` 加载。
### 必需变量
| 变量 | 描述 |
| ------------------------- | ----------------------------------------------------------------------------------------------- |
| `ALERTLOGIC_API_KEY` | 以 `access_key_id:secret_key` 格式表示的 API 密钥(参见下文,了解如何创建) |
| `ALERTLOGIC_BASE_URL` | API 基本 URL — `https://api.cloudinsight.alertlogic.com`(美国)或 `https://api.cloudinsight.alertlogic.co.uk`(英国) |
| `ALERTLOGIC_ACCOUNT_ID` | 您的 Alert Logic 账户 ID(在控制台 URL 和账户设置中可见) |
### 可选变量
| 变量 | 默认值 | 描述 |
| ------------------------- | -------------- | -------------------------------------------------------- |
| `MCP_TRANSPORT` | `stdio` | 传输协议:`stdio`、`sse` 或 `streamable-http` |
| `MCP_HOST` | `127.0.0.1` | 绑定主机(仅限 HTTP 传输协议) |
| `MCP_PORT` | `8000` | 绑定端口(仅限 HTTP 传输协议) |
| `ALERTLOGIC_MCP_READONLY` | _(关闭)_ | 设置为 `true` 以仅注册读取工具 — 写入和破坏性工具永远不会暴露给 AI 客户端 |
| `ALERTLOGIC_MCP_ALLOW_DESTRUCTIVE` | _(关闭)_ | 破坏性工具(删除、SOAR 流程执行、扫描启动等)默认情况下被抑制。设置为 `true` 以启用所有工具,或选择性地启用以逗号分隔的工具名称列表 |
### 可选服务 URL 重写
这些默认设置为 Alert Logic 的标准端点。仅在您有自定义部署时才覆盖:
```dotenv
ALERTLOGIC_GLOBAL_BASE_URL=https://api.global-services.global.alertlogic.com
ALERTLOGIC_AETUNER_BASE_URL=https://aetuner.mdr.global.alertlogic.com
ALERTLOGIC_CONNECTORS_BASE_URL=https://connectors.mdr.global.alertlogic.com
ALERTLOGIC_RESPONDER_BASE_URL=https://api.responder.alertlogic.com
```
### 创建 API 密钥
1. 登录 Alert Logic 控制台。
2. 导航到 **管理 → 用户**,选择您的用户,然后打开 **访问密钥 → 创建**。
3. 复制 **访问密钥 ID** 和 **秘密密钥**。
4. 将它们组合成 `access_key_id:secret_key`(带有冒号)并将其设置为 `ALERTLOGIC_API_KEY`。
---
## Claude Code 集成(HTTP 模式)
在 HTTP 模式下启动服务器:
```bash
MCP_TRANSPORT=streamable-http python main.py
```
然后在您的 Claude Code 项目或用户 MCP 配置(`.claude/settings.json` 或 `~/.claude/settings.json`)中注册它:
```json
{
"mcpServers": {
"alertlogic-mcp": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
}
}
```
或通过 CLI:
```bash
claude mcp add --transport http alertlogic-mcp http://localhost:8000/mcp
```
---
## Claude Desktop 集成(stdio 模式)
编辑 `claude_desktop_config.json`:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%AppData%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"alertlogic-mcp": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["/absolute/path/to/alertlogic-mcp/main.py"]
}
}
}
```
> 使用绝对路径。Claude Desktop 不会扩展波浪号 (`~`)。将 `command` 指向 venv Python,而不是系统 Python。
重启 Claude Desktop。Alert Logic 工具将出现在工具选择器中。
---
## 模块概述
46 个模块,约 473 个工具,按领域组织:
### 事件响应
| 模块 | 工具 | 关键操作 |
| ---------------- | :---: | --------------------------------------------------------------------------------------- |
| `incidents_mcp` | 11 | 列出、获取、友好 ID 查找、完成、重新打开、添加备注、添加反馈、列出合作伙伴事件 |
| `soc` | 14 | 提交/轮询/释放 SQL 日志搜索,列出暴露,获取健康摘要 |
| `soc_playbooks` | 6 | 内置 IR 指南、威胁狩猎工作流、MITRE 映射、工具指南(见下文) |
### 资产管理
| 模块 | 工具 | 关键操作 |
| ---------------- | :---: | --------------------------------------------------------------------------------------- |
| `assets` | 15 | 查询资产、获取拓扑、声明/批量声明/删除资产、设置属性 |
| `assets_manager` | 5 | 高级资产管理和分组 |
| `cloud_explorer` | 12 | 按部署浏览 AWS 云资源拓扑 |
| `azure_explorer` | 13 | 按部署浏览 Azure 资源拓扑 |
### SOAR
| 模块 | 工具 | 关键操作 |
| ------ | :---: | ------------------------------------------------------------------------------------------------- |
| `soar` | 33 | 列出/获取流程和操作,创建/获取/查询执行,管理查询和触发器 |
### 漏洞和合规性
| 模块 | 工具 | 关键操作 |
| -------------------- | :---: | --------------------------------------------------------------------- |
| `vulnerability` | 10 | 按严重性列出暴露,获取每资产暴露 |
| `vulnerabilities_kb` | 9 | 查询漏洞知识库(CVE 详情、CVSS、补救) |
| `compliance` | 4 | 列出补救项目,结束/处置/取消处置补救 |
### 用户和身份验证
| 模块 | 工具 | 关键操作 |
| ------------- | :---: | ------------------------------------------------------------------------------------- |
| `users` | 30 | 对用户、角色、访问密钥、MFA 和密码重置执行完整的 CRUD 操作 |
| `auth` | 6 | AIMS 令牌管理,列出托管账户,账户 ID 枚举 |
| `credentials` | 10 | IAM 角色和 Azure AD 凭证 CRUD,凭证扫描,解密检索 |
| `themis` | 3 | 凭证验证和验证 |
### 基础设施和部署
| 模块 | 工具 | 关键操作 |
| ------------------ | :---: | --------------------------------------------------------------------------- |
| `deployments` | 5 | 列出、获取、创建、更新、删除部署 |
| `environments` | 10 | 管理 Alert Logic 环境和环境配置 |
| `network_controls` | 15 | 排除 CRUD、资产检查、标签/主机白名单管理 |
| `scan_scheduler` | 13 | 创建、更新和管理部署的扫描计划 |
| `scan_result` | 4 | 检索和分析扫描结果 |
### 分析引擎
| 模块 | 工具 | 关键操作 |
| ----------- | :---: | --------------------------------------------------------------------------- |
| `aecontent` | 11 | 管理 AE 内容(检测内容库) |
| `aefr` | 23 | AE 平面规则管理 |
| `aerta` | 13 | AE 实时分析管理 |
| `aetag` | 23 | AE 标签和相关规则管理 |
| `aepublish` | 1 | 发布 AE 分析更新 |
| `aemanual` | 2 | 手动 AE 分析操作 |
| `kalm` | 5 | AE 知识和分析生命周期管理 |
### 票务和监控列表
| 模块 | 工具 | 关键操作 |
| ------------------ | :---: | ------------------------------------------------------- |
| `tickets` | 8 | 创建、获取、更新、列出和关闭票务 |
| `watchlist_module` | 7 | 管理警报监控列表(添加、删除、查询项目) |
### 操作与平台
| 模块 | 工具数量 | 关键操作 |
| --------------------- | :------: | ---------------------------------------------------------------------- |
| `account_management` | 7 | 账户详情、按名称查找、父/子关系、拓扑结构 |
| `policies` | 2 | 列出和检查策略 |
| `billing` | 12 | 列出和检查订阅、权益和计费数据 |
| `common` | 22 | Herald通知、订阅、Webhook/电子邮件连接器、端点 |
| `ingest_module` | 6 | 管理日志摄入源和摄入配置 |
| `logging_integration` | 17 | 日志源CRUD、源类型、集合管理 |
| `otis` | 7 | 按需威胁情报搜索 |
| `notify` | 2 | 通知调度 |
| `search_stylist` | 2 | 日志搜索查询格式化和建议 |
| `informant` | 2 | Informant服务查询 |
| `strawboss` | 10 | Strawboss作业和调度管理 |
| `tacoma` | 12 | Tacoma服务操作 |
| `album` | 10 | 证据和工件管理 |
| `usage_module` | 4 | 账户使用统计和报告 |
| `bulk_ops` | 2 | 跨账户批量操作(批量部署、批量健康检查) |
| `suggestions` | 10 | AI辅助搜索和调查建议 |
| `seceng` | — | 安全工程:Cargo调度/执行,AETuner分析/调优 |
---
## 安全运营中心快速入门
连接后,在Claude中尝试以下提示:
```
显示过去24小时内所有开放的严重事件
```
```
获取事件INC-12345的详细说明(原始日志证据)
```
```
使用SQL搜索10.0.0.5在过去一小时内的SSH登录失败记录
```
```
向事件INC-12345添加备注:确认恶意,升级给客户
```
```
列出所有部署及其在所有账户中的健康状态
```
```
显示主机web-prod-01的十大严重漏洞
```
```
运行SOC IR剧本来指导我完成事件响应步骤
```
---
## 内置SOC剧本
`soc_playbooks`模块提供了六种工具,提供精选的、上下文相关的操作指南 — 无需外部文档查找:
| 工具 | 内容 |
| --------------------------- | ------------------------------------------------------------------------------------------ |
| `soc_ir_start` | 端到端的事件响应工作流:分诊检查清单、范围确定步骤、遏制标准、证据收集和文档要求 |
| `soc_threat_hunt` | 基于假设的威胁狩猎剧本:基于IOCs的狩猎、基于TTP的狩猎和常见攻击模式的日志查询模板 |
| `soc_mitre_attack_guide` | MITRE ATT&CK战术/技术参考,映射到Alert Logic检测类型和推荐的搜索查询 |
| `soc_alertlogic_tool_guide` | Alert Logic MCP工具的快速参考,按调查任务组织(分诊、范围确定、证据、遏制) |
| `soc_log_query_templates` | 适用于常见SOC场景的即用SQL日志查询模板:身份验证失败、横向移动、C2信标、数据泄露等 |
| `soc_summary` | 可执行事件摘要模板和字段填充指南 |
这些工具旨在调查开始时调用,以在查询实时数据之前加载相关上下文。
---
## 多账户MSSP使用
服务器设计用于MSSP环境,其中单个API密钥管理多个子账户:
**合作伙伴事件列表** — `incidents_list_partner`在一个调用中返回所有托管账户的事件,并附有账户所有权标签。
**每工具账户覆盖** — 大多数工具接受可选的`account_id`参数。传递子账户的ID以将任何查询范围限定为该账户,而无需更改您的`.env`配置:
```
获取账户<child-account-id>的所有开放事件
```
**批量操作** — `bulk_list_deployments`将部署查询扩展到所有托管账户,并返回聚合结果。`bulk_health_check`对健康状态执行相同的操作。
**账户拓扑** — `aims_get_account_topology`和`aims_list_accounts_by_relationship`映射父/子账户层次结构,有助于在运行操作前确定范围。
> **租户隔离**:在跨多个账户工作时,请始终在执行写入操作(遏制、添加备注、创建票证)之前确认目标账户。服务器不会强制执行跨租户保护,超出Alert Logic API提供的保护范围。
---
## 安全注意事项
- **只读模式**:设置`ALERTLOGIC_MCP_READONLY=true`以仅在启动时注册读取工具。写入和破坏性工具永远不会暴露给AI客户端,无论请求如何。
- **破坏性操作门控**:即使启用写入,破坏性工具(用户/资产删除、SOAR剧本执行、扫描启动、密钥撤销等)默认情况下被抑制。通过`ALERTLOGIC_MCP_ALLOW_DESTRUCTIVE`显式启用它们,建议使用逗号分隔的特定工具名称列表,而不是`true`:
```bash
# 仅启用事件完成工作流删除
ALERTLOGIC_MCP_ALLOW_DESTRUCTIVE=user_delete,playbook_execute
```
- 每个工具都带有MCP `readOnlyHint`/`destructiveHint`注释,因此兼容的客户端可以应用自己的确认策略。
- **永远不要提交`.env`文件。** 它被`.gitignore`排除;只有`.env.example`(带有占位符)被跟踪。
- 将`ALERTLOGIC_API_KEY`视为密码。如果怀疑暴露,请立即轮换它(聊天日志、屏幕共享、丢失设备)。
- **AIMS令牌处理**:服务器在首次使用时将您的API密钥交换为短期Bearer令牌,并将其缓存在内存中。令牌在过期时自动刷新。原始`secret_key`在初始AIMS身份验证调用后不会被记录或传输。
- 在`stdio`模式下,服务器不打开任何网络端口。在`streamable-http`或`sse`模式下,绑定到`127.0.0.1`(默认),除非您特别需要远程访问,否则添加适当的网络控件。
- `base.py`不记录请求体、响应体或凭证材料。如果您分叉并添加日志记录,请注意排除令牌和密钥值。
- 此存储库不附带任何类型的凭证。
---
## 测试
独立的烟雾测试脚本在不经过MCP客户端的情况下,锻炼了代表性的工具选择:
```bash
python smoke_test.py
```
这验证了凭证有效性、网络可达性和基本配置,然后将服务器连接到您的MCP客户端。
---
## 故障排除
<details>
<summary><b>"身份验证失败" / 401错误</b></summary>
- 确认`ALERTLOGIC_API_KEY`是完整的`access_key_id:secret_key`字符串,包括冒号分隔符。
- 验证`ALERTLOGIC_BASE_URL`是否与您的数据中心(美国`api.cloudinsight.alertlogic.com` vs. 英国`api.cloudinsight.alertlogic.co.uk`)匹配。
- 在Alert Logic控制台(管理 → 用户 → 访问密钥)中检查访问密钥是否仍然有效。
- 确认`ALERTLOGIC_ACCOUNT_ID`是否正确 — 不匹配可能导致账户范围端点的401错误。
</details>
<details>
<summary><b>工具未出现在Claude Desktop中</b></summary>
- 在`claude_desktop_config.json`中使用绝对路径。波浪号(`~`)和相对路径不会被扩展。
- 将`command`指向虚拟环境的Python(`.venv/bin/python`),而不是系统Python。
- 检查Claude Desktop日志中是否有此服务器的stderr输出:macOS日志位于`~/Library/Logs/Claude/`。
- 在编辑配置文件后完全重启Claude Desktop(退出并重新打开)。
</details>
<details>
<summary><b>"ModuleNotFoundError: mcp" 或缺少依赖项</b></summary>
您在虚拟环境外部运行`python main.py`。请先激活它(`source .venv/bin/activate`)或直接调用虚拟环境的Python(`/path/to/.venv/bin/python main.py`)。
</details>
<details>
<summary><b>HTTP模式:端口8000连接被拒绝</b></summary>
确保您在使用`MCP_TRANSPORT=streamable-http python main.py`启动服务器之前启动了服务器。服务器仅在选择非stdio传输时绑定端口。
</details>
<details>
<summary><b>空结果或无声失败</b></summary>
如果所有工具调用返回空结果或失败,则通常是SSO或代理层阻止出站API调用。尝试从非代理网络或不同客户端运行以确认。同时检查`ALERTLOGIC_BASE_URL`和`ALERTLOGIC_ACCOUNT_ID`是否都正确适用于您的环境。
</details>
---
## 贡献
欢迎PR和问题。
1. 分叉仓库,创建功能分支,提交更改并打开PR。
2. 在`modules/`下的匹配模块文件中添加新的Alert Logic端点作为附加的`@server.tool`定义。
3. 对于新模块:创建`modules/<name>.py`并具有`setup(server)`函数,然后将其添加到`main.py`中的`MODULES`列表中。
4. 保持工具文档字符串准确和描述性 — 文档字符串是LLM在决定是否以及如何调用工具时看到的内容。
5. 在提交之前运行`python smoke_test.py`以验证基本功能。
---
## 相关MCP服务器
这三个服务器涵盖了安全堆栈的互补层 — 网络/日志(Alert Logic)、端点保护(Sophos)和EDR/威胁情报(CrowdStrike)。将它们一起使用以实现全栈AI驱动的SOC操作。
| 服务器 | 平台 | 亮点 |
|--------|----------|------------|
| [falcon-mcp](https://github.com/rijul170/falcon-mcp) | CrowdStrike Falcon | EDR遥测、RTR、威胁情报、MSSP飞行控制、1,296种工具 |
| [sophos-central-mcp](https://github.com/rijul170/sophos-central-mcp) | Sophos Central | 端点隔离、Live Discover SQL、XDR、电子邮件/防火墙/DNS、334种工具 |
| [alertlogic-mcp](https://github.com/rijul170/alertlogic-mcp) | Alert Logic MDR | 事件响应、SQL日志搜索、SOAR、漏洞管理、473种工具 |
## 许可证
MIT许可证。有关完整文本,请参见[LICENSE](LICENSE)。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器