j

jetbalsa

@jetbalsa/mcp-opensearch-js
0 Stars 356 次浏览 jetbalsa 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

OpenSearch MCP 服务器

一个用于查询和分析存储在 OpenSearch 中的 Wazuh 安全日志的模型上下文协议 (MCP) 服务器。

功能

  • 使用高级过滤搜索安全警报
  • 获取特定警报的详细信息
  • 生成安全事件统计信息
  • 可视化随时间变化的警报趋势
  • 长时间运行操作的进度报告
  • 结构化的错误处理

前提条件

  • Node.js v16 或更高版本
  • 访问包含 Wazuh 安全日志的 OpenSearch 实例

安装

选项 1:直接从 GitHub 使用 npx(推荐)

您可以使用 npx 直接运行此工具,而无需克隆仓库:

bash

从 GitHub 运行最新版本

npx github:jetbalsa/mcp-opensearch-js

启用调试模式运行

npx github:jetbalsa/mcp-opensearch-js --debug

您也可以指定特定的分支或提交

npx github:jetbalsa/mcp-opensearch-js#main

选项 2:本地安装

  1. 克隆此仓库:
    bash
    git clone https://github.com/jetbalsa/mcp-opensearch-js.git
    cd mcp-opensearch-js

  2. 安装依赖项:
    bash
    npm install

  3. 配置环境变量:
    bash
    cp .env.example .env

  4. 编辑 .env 文件以添加您的 OpenSearch 连接详情:

    OPENSEARCH_URL=https://your-opensearch-endpoint:9200
    OPENSEARCH_USERNAME=your-username
    OPENSEARCH_PASSWORD=your-password
    DEBUG=false

运行服务器

启动服务器:

bash
npm start

这将以 stdio 模式启动服务器。

启用调试日志记录:

bash
npm run stdio:debug

使用 MCP CLI 测试:

bash
npm run dev

这将使用 FastMCP CLI 工具以交互方式测试服务器。

使用 MCP Inspector 测试:

bash
npm run inspect

这将启动服务器并将其连接到 MCP Inspector 以进行可视化调试。

服务器工具

服务器提供以下工具:

1. 搜索警报

在 Wazuh 数据中搜索安全警报。

参数:

  • query:搜索查询文本
  • timeRange:时间范围(例如,1h, 24h, 7d)
  • maxResults:返回的最大结果数
  • index:要搜索的索引模式

2. 获取警报详情

通过 ID 获取特定警报的详细信息。

参数:

  • id:警报 ID
  • index:索引模式

3. 警报统计

获取关于安全警报的统计信息。

参数:

  • timeRange:时间范围(例如,1h, 24h, 7d)
  • field:聚合字段(例如,rule.level, agent.name)
  • index:索引模式

4. 可视化警报趋势

随时间可视化警报趋势。

参数:

  • timeRange:时间范围(例如,1h, 24h, 7d)
  • interval:分组的时间间隔(例如,1h, 1d)
  • query:用于过滤警报的查询
  • index:索引模式

示例用法

使用 MCP CLI 工具:

tools
可用工具:

  • searchAlerts: 在 Wazuh 数据中搜索安全警报
  • getAlertDetails: 通过 ID 获取特定警报的详细信息
  • alertStatistics: 获取关于安全警报的统计信息
  • visualizeAlertTrend: 随时间可视化警报趋势

tools.searchAlerts(query: "rule.level:>10", timeRange: "12h", maxResults: 5)

与客户端一起使用

要将此 MCP 服务器与客户端实现一起使用:

javascript
import { Client } from "@modelcontextprotocol/sdk";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";

const client = new Client(
{
name: "example-client",
version: "1.0.0",
},
{
capabilities: {},
},
);

const transport = new SSEClientTransport(new URL(http://localhost:3000/sse));

await client.connect(transport);

// 使用工具
const result = await client.executeTool("searchAlerts", {
query: "rule.level:>10",
timeRange: "24h",
maxResults: 10
});

console.log(result);

许可证

MIT

相关 MCP 服务