OpenSearch MCP 服务器是一个基于 Model Context Protocol (MCP) 的服务器,主要用于查询和分析存储在 OpenSearch 中的 Wazuh 安全日志,为安全日志的处理提供了便捷的途径。
在使用 OpenSearch MCP 服务器之前,需要确保满足以下先决条件:
您可以直接使用 npx 运行此工具,而无需克隆仓库:
# 运行来自 GitHub 的最新版本
npx github:jetbalsa/mcp-opensearch-js
# 启用调试模式
npx github:jetbalsa/mcp-opensearch-js --debug
# 您还可以指定特定分支或提交
npx github:jetbalsa/mcp-opensearch-js#main
git clone https://github.com/jetbalsa/mcp-opensearch-js.git
cd mcp-opensearch-js
npm install
cp .env.example .env
.env 文件:OPENSEARCH_URL=https://your-opensearch-endpoint:9200
OPENSEARCH_USERNAME=your-username
OPENSEARCH_PASSWORD=your-password
DEBUG=false
npm start
这将在 stdio 模式下启动服务器。
npm run stdio:debug
npm run dev
这将启动服务器并使用 MCP CLI 工具进行交互式测试。
npm run inspect
这将启动服务器并与 MCP Inspector 连接以进行可视化调试。
在 Wazuh 数据中搜索安全警报。 参数:
--search:指定要搜索的关键词或条件。--filter:应用高级过滤器(如时间范围、日志级别等)。-o, --output:指定输出格式(支持 JSON、CSV、文本等)。获取特定警报的详细信息。 参数:
--id:指定要查询的警报 ID。--fields:指定要显示的字段(以逗号分隔)。-v, --verbose:启用详细模式,显示更多相关信息。生成安全事件的统计信息。 参数:
--time-range:指定时间范围(格式为 YYYY-MM-DD HH:MM:SS)。--aggregation:指定聚合方式(如按小时、天、周等)。-s, --summary:显示汇总结果。可视化警报的时间趋势。 参数:
--start-time:指定起始时间。--end-time:指定结束时间。-f, --format:指定输出格式(如图表、表格等)。# 搜索警报
mcp-cli search --keyword "error" --output json
# 获取警报详细信息
mcp-cli get --id 12345 --verbose
# 生成统计信息
mcp-cli stats --time-range "2023-10-01 00:00:00" "2023-10-07 23:59:59" --summary
# 可视化趋势
mcp-cli trends --start-time "2023-10-01" --end-time "2023-10-07" --format chart
npm install mcp-opensearch
const { MCPClient } = require('mcp-opensearch');
const client = new MCPClient({
host: 'localhost',
port: 9200,
username: 'your-username', // 可选
password: 'your-password' // 可选
});
// 搜索警报
client.search({ keyword: 'error' }, (err, result) => {
if (err) return console.error(err);
console.log('Search Result:', result);
});
// 获取警报详细信息
client.get({ id: '12345' }, (err, result) => {
if (err) return console.error(err);
console.log('Alert Details:', result);
});