OpenSearch MCP サーバー
OpenSearch に保存されている Wazuh セキュリティ ログを照会および分析するための Model Context Protocol (MCP) サーバー。
特徴
高度なフィルタリングでセキュリティアラートを検索する
特定のアラートに関する詳細情報を取得する
セキュリティイベントの統計を生成する
アラートの傾向を時間経過とともに視覚化する
長時間実行操作の進捗レポート
構造化されたエラー処理
Related MCP server: OpenSearch MCP Server
前提条件
Node.js v16以上
Wazuh セキュリティ ログを含む OpenSearch インスタンスへのアクセス
インストール
オプション 1: GitHub から直接 npx を使用する (推奨)
リポジトリをクローンせずに、npx を使用してこのツールを直接実行できます。
# Run the latest version from GitHub
npx github:jetbalsa/mcp-opensearch-js
# Run with debug mode enabled
npx github:jetbalsa/mcp-opensearch-js --debug
# You can also specify a specific branch or commit
npx github:jetbalsa/mcp-opensearch-js#mainオプション2: ローカルインストール
このリポジトリをクローンします:
git clone https://github.com/jetbalsa/mcp-opensearch-js.git
cd mcp-opensearch-js依存関係をインストールします:
npm install環境変数を設定します。
cp .env.example .envOpenSearch 接続の詳細を使用して
.envファイルを編集します。
OPENSEARCH_URL=https://your-opensearch-endpoint:9200
OPENSEARCH_USERNAME=your-username
OPENSEARCH_PASSWORD=your-password
DEBUG=falseサーバーの実行
サーバーを起動します。
npm startこれにより、サーバーが stdio モードで起動します。
デバッグ ログを有効にする:
npm run stdio:debugMCP CLI でテストします。
npm run devこれにより、対話型テスト用の FastMCP CLI ツールを使用してサーバーが実行されます。
MCP Inspector でテストします。
npm run inspectこれにより、サーバーが起動し、視覚的なデバッグのために MCP Inspector に接続されます。
サーバーツール
サーバーは次のツールを提供します。
1. 検索アラート
Wazuh データ内のセキュリティ警告を検索します。
パラメータ:
query: 検索クエリテキストtimeRange: 時間範囲(例:1時間、24時間、7日)maxResults: 返される結果の最大数index: 検索するインデックスパターン
2. アラートの詳細を取得する
ID 別に特定のアラートの詳細情報を取得します。
パラメータ:
id: アラートIDindex: インデックスパターン
3. アラート統計
セキュリティ警告に関する統計を取得します。
パラメータ:
timeRange: 時間範囲(例:1時間、24時間、7日)field: 集計するフィールド (例: rule.level、agent.name)index: インデックスパターン
4. アラートの傾向を視覚化する
アラートの傾向を時間経過とともに視覚化します。
パラメータ:
timeRange: 時間範囲(例:1時間、24時間、7日)interval: グループ化する時間間隔(例:1時間、1日)query: アラートをフィルタリングするクエリindex: インデックスパターン
使用例
MCP CLI ツールの使用:
> tools
Available tools:
- searchAlerts: Search for security alerts in Wazuh data
- getAlertDetails: Get detailed information about a specific alert by ID
- alertStatistics: Get statistics about security alerts
- visualizeAlertTrend: Visualize alert trends over time
> tools.searchAlerts(query: "rule.level:>10", timeRange: "12h", maxResults: 5)クライアントとの使用
この MCP サーバーをクライアント実装で使用するには:
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);
// Use tools
const result = await client.executeTool("searchAlerts", {
query: "rule.level:>10",
timeRange: "24h",
maxResults: 10
});
console.log(result);ライセンス
マサチューセッツ工科大学