Wazuh MCP Server について
Wazuh MCP Server は Rust で書かれたサーバーで、Claude Desktop などの AI アシスタントから Wazuh SIEM のデータを利用できるようにします。セキュリティチームはアラート、エージェント、脆弱性、コンプライアンスについて自然言語で問い合わせられます。
主な機能
- 01セキュリティアラートとイベントの検索
- 02エージェントの状態、プロセス、ポートの確認
- 03脆弱性と検知ルールの参照
- 04クラスターの状態とマネージャーログの分析
- 05PCI-DSS や HIPAA などのコンプライアンス確認
活用シーン
- 01Web サーバーの重大な脆弱性を抽出し修正の優先度を決める
- 02特定のエージェント上の実行中プロセスと開放ポートを調査する
- 03ログ記録が PCI-DSS の要件を満たすかを確認する
MCP 対応
本プロジェクトは MCP サーバーとして、Wazuh のアラート、エージェント、脆弱性、ルール、クラスターのデータをツールとして MCP クライアントに公開します。デフォルトは stdio で、http 機能を有効にすると HTTP でも動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Wazuh MCP Server - SIEM と対話
Wazuh Security Information and Event Management(SIEM)システムと、コンテキストに応じたセキュリティデータを必要とするアプリケーションとの橋渡しをするために設計された Rust ベースのサーバーです。Model Context Protocol(MCP)を使用した Claude Desktop との統合に特化しています。
概要
Claude のような最新の AI アシスタントは、ユーザーのセキュリティ環境に関するリアルタイムのコンテキストを活用できます。Wazuh MCP Server は、自然言語でのやり取りを通じて Wazuh SIEM データに包括的にアクセスできるようにし、このギャップを埋めます。
このサーバーは、複雑な Wazuh API の応答を MCP 互換形式に変換し、AI アシスタントが次の情報にアクセスできるようにします。
- セキュリティアラートとイベント:脅威の検出とインシデント対応のための Wazuh Indexer のデータ
- エージェントの管理と監視:健全性ステータス、システムプロセス、ネットワークポートなど
- 脆弱性評価:リスク管理とパッチ適用の優先順位付けに役立つデータ
- セキュリティルールと設定:検出の最適化とコンプライアンス検証のための情報
- システム統計とパフォーマンス:運用監視と監査証跡のための指標
- ログ分析とフォレンジック:インシデント調査とコンプライアンス報告のための機能
- クラスターの健全性と管理:インフラストラクチャの信頼性と可用性要件への対応
- コンプライアンス監視とギャップ分析:PCI-DSS、HIPAA、SOX、GDPR などの規制フレームワークへの対応
手動での API 呼び出しや複雑なクエリを必要とせず、セキュリティチームは「Web サーバーの重大な脆弱性を表示して」「エージェント 001 ではどのプロセスが実行中ですか?」「PCI-DSS のログ要件を満たしていますか?」といった自然言語の質問をして、Wazuh のデプロイ環境から構造化された実用的なデータを受け取れるようになります。
このアプローチは、セキュリティ態勢の迅速な評価、監視範囲のギャップの特定、ルールの有効性の検証、分散インフラストラクチャ全体における監査要件の証跡生成を必要とするコンプライアンスチームにとって、特に有用です。

使用例
Wazuh MCP Server は、自然言語でのやり取りを通じて Wazuh のセキュリティデータに直接アクセスできるようにし、実用的なユースケースをいくつも実現します。
セキュリティアラートの分析
- アラートのトリアージと調査:
get_wazuh_alert_summaryで最近のセキュリティアラートを照会し、早急な対応が必要な脅威をすばやく特定して優先順位を付けます。 - アラートパターンの認識: アラートの傾向とパターンを分析し、繰り返し発生するセキュリティ問題や潜在的な攻撃キャンペーンを特定します。
脆弱性管理
- エージェントの脆弱性評価:
get_wazuh_vulnerability_summaryとget_wazuh_critical_vulnerabilitiesを使用して、特定のエージェントのセキュリティ態勢を評価し、パッチ適用の優先順位を付けます。 - リスクに基づく脆弱性の優先順位付け: 脆弱性データをエージェントの重要度や露出度と関連付け、修復作業の対象を絞り込みます。
システム監視とフォレンジック
- プロセス分析:
get_wazuh_agent_processesを使用してエージェント上で実行中のプロセスを調査し、脅威ハンティングとシステム分析に役立てます。 - ネットワークセキュリティ評価:
get_wazuh_agent_portsで開いているポートとネットワークサービスを監視し、潜在的な攻撃経路を特定します。 - エージェントの健全性監視:
get_wazuh_running_agentsでエージェントのステータスと接続状態を追跡し、包括的なセキュリティ対策を維持します。
セキュリティ運用インテリジェンス
- ルールの有効性分析:
get_wazuh_rules_summaryでセキュリティ検出ルールを確認、分析し、検出機能を最適化します。 - マネージャーのパフォーマンス監視:
get_wazuh_weekly_stats、get_wazuh_remoted_stats、get_wazuh_log_collector_statsなどのツールで、システムのパフォーマンスと統計を追跡します。 - クラスターの健全性管理:
get_wazuh_cluster_healthとget_wazuh_cluster_nodesで Wazuh クラスターのステータスを監視し、運用の信頼性を確保します。
インシデント対応とフォレンジック
- ログ分析: インシデント調査のために、
search_wazuh_manager_logsとget_wazuh_manager_error_logsを使用してマネージャーのログを検索、分析します。 - エージェント固有の調査: 複数のツールを組み合わせて、セキュリティインシデント発生時に特定のエージェントの包括的なプロファイルを作成します。
- 自然言語によるセキュリティクエリ: 複雑なセキュリティに関する質問を自然言語で行い、複数の Wazuh コンポーネントから構造化データを取得します。
運用効率
- レポートの自動生成: 手動で API を呼び出すことなく、対話型インターフェースを通じてセキュリティレポートや要約を生成します。
- コンポーネント横断分析: Wazuh Indexer(アラート)と Wazuh Manager(エージェント、ルール、脆弱性)の両方からのデータを関連付け、包括的なセキュリティ分析情報を取得します。
- 多言語でのセキュリティ運用: グローバルなセキュリティチーム向けに、複数の言語で Wazuh のデータにアクセスし、分析情報を取得します。
脅威インテリジェンスの収集と対応
脅威インテリジェンスとインシデント対応の機能を強化するには、Wazuh MCP Server を補完的なセキュリティ MCP サーバーと組み合わせることができます。
| サーバー | 説明 |
|---|---|
| Cortex MCP Server | 140 以上のアナライザーによるアーティファクト分析と IOC のエンリッチメント |
| TheHive MCP Server | ケース管理とインシデント対応のオーケストレーション |
| MISP MCP Server | 脅威インテリジェンスの共有と IOC の検索 |
Cortex 連携による機能強化:
- アーティファクト分析: Wazuh のアラートで見つかった不審なファイル、URL、ドメイン、IP アドレスを、Cortex の 140 以上のアナライザーを使用して自動的に分析します
- IOC のエンリッチメント: VirusTotal、Shodan、MISP など複数のソースからの脅威インテリジェンスを使用して、Wazuh のアラートに含まれる侵害の痕跡(IOC)をエンリッチメントします
- 自動化された脅威ハンティング: Wazuh の検知機能と Cortex の分析エンジンを組み合わせて、脅威を自動的に調査し、分類します
- 複数ソースのインテリジェンス: レピュテーションチェック、マルウェア分析、ドメイン分析、振る舞い分析にアナライザーを活用します
- 対応のオーケストレーション: 分析結果を使用して、自動化された対応アクションとアラートの優先順位付けに役立てます
TheHive 連携による機能強化:
- ケースの作成: Wazuh のアラートから TheHive にケースを自動作成し、体系的にインシデントを追跡します
- アラートの関連付け: 関連する Wazuh のアラートを既存のケースに紐付け、包括的なインシデントのタイムラインを作成します
- タスク管理: アラートの重大度と種類に基づいて調査タスクを作成し、追跡します
- オブザーバブルの管理: ケースの調査で IOC を抽出し、オブザーバブルとして管理します
- コラボレーション: Wazuh が検知したインシデントについて、セキュリティチームの連携を可能にします
MISP 連携による機能強化:
- IOC の検索: Wazuh のアラートに含まれるインジケーターが、脅威インテリジェンスデータベースに登録されているかを確認します
- 脅威コンテキスト: IOC のイベントコンテキスト、脅威アクターの帰属情報、MITRE ATT&CK のマッピングを取得します
- 誤検知の削減: MISP の警告リストに照らして IOC を検証し、誤検知を減らします
- 検知情報の追跡: 検知情報の履歴を記録して検索し、IOC の普及状況を評価します
- ギャラクシーの探索: 脅威アクターのプロファイル、マルウェアファミリー、攻撃パターンにアクセスします
ワークフローの例:
- Wazuh がアラート内で不審なファイルハッシュまたはネットワーク接続を検知します
- AI アシスタントが MISP MCP Server に問い合わせ、IOC が脅威インテリジェンスで既知かどうかを確認します
- 未知の場合、Cortex MCP Server が複数のアナライザーを使用してアーティファクトを分析します
- VirusTotal、ハイブリッド分析、ドメインのレピュテーションなど、さまざまなソースからの結果を相関分析します
- 調査を追跡するため、TheHive MCP Server を介して TheHive にケースを作成します
- 統合されたインテリジェンスが、インシデント対応の判断に必要なコンテキストを提供します
- 調査結果を使用して Wazuh のルールを更新したり、追加の監視を開始したりできます
要件
- MCP(Model Context Protocol)に対応した LLM クライアント(例:Claude Desktop)
- API が有効化され、アクセス可能な Wazuh サーバー(v4.12 を推奨)が稼働していること。
- (API を使用する場合)このサーバーと Wazuh API 間のネットワーク接続。
インストール
オプション 1:ビルド済みバイナリをダウンロードする(推奨)
- バイナリをダウンロードする:
mcp-server-wazuhGitHub リポジトリのリリースページにアクセスします。- お使いのオペレーティングシステムに適したバイナリ(例:
mcp-server-wazuh-linux-amd64、mcp-server-wazuh-macos-amd64、mcp-server-wazuh-macos-arm64、mcp-server-wazuh-windows-amd64.exe)をダウンロードします。 - ダウンロードしたバイナリを実行可能にします(例:
chmod +x mcp-server-wazuh-linux-amd64)。 - (任意)
mcp-server-wazuhのような簡単な名前に変更し、アクセスしやすいようにシステムのPATHに含まれるディレクトリに移動します。
オプション 2:Docker
- Docker イメージを取得する:
docker pull ghcr.io/gbrigandi/mcp-server-wazuh:latest
オプション 3:ソースからビルドする
-
前提条件:
- Rust をインストールします:https://www.rust-lang.org/tools/install
-
ビルドする:
git clone https://github.com/gbrigandi/mcp-server-wazuh.git cd mcp-server-wazuh # stdio トランスポートのみでビルド(デフォルト) cargo build --release # HTTP トランスポートのサポートを有効にしてビルド cargo build --release --features httpバイナリは
target/release/mcp-server-wazuhで利用できます。
LLM クライアントを設定する
LLM クライアントの設定方法は、クライアントによって異なります。MCP(Model Context Protocol)をサポートするクライアントでは、通常、mcp-server-wazuh実行ファイルのパスをクライアントに指定する必要があります。
Claude Desktop の例:
claude_desktop_config.jsonファイルを設定します。
{
"mcpServers": {
"wazuh": {
"command": "/path/to/mcp-server-wazuh",
"args": [],
"env": {
"WAZUH_API_HOST": "your_wazuh_manager_api_host",
"WAZUH_API_PORT": "55000",
"WAZUH_API_USERNAME": "your_wazuh_api_user",
"WAZUH_API_PASSWORD": "your_wazuh_api_password",
"WAZUH_INDEXER_HOST": "your_wazuh_indexer_host",
"WAZUH_INDEXER_PORT": "9200",
"WAZUH_INDEXER_USERNAME": "your_wazuh_indexer_user",
"WAZUH_INDEXER_PASSWORD": "your_wazuh_indexer_password",
"WAZUH_VERIFY_SSL": "false",
"WAZUH_TEST_PROTOCOL": "https",
"RUST_LOG": "info"
}
}
}
}
/path/to/mcp-server-wazuhをバイナリへの実際のパスに置き換え、設定セクションの説明に従って環境変数を設定します。
設定が完了すると、LLM クライアントからmcp-server-wazuhを起動して通信し、Wazuh のセキュリティデータにアクセスできるようになります。
Docker を使用する場合は、Wazuh の設定を記載した.envファイルを作成します。
WAZUH_API_HOST=your_wazuh_manager_api_host
WAZUH_API_PORT=55000
WAZUH_API_USERNAME=your_wazuh_api_user
WAZUH_API_PASSWORD=your_wazuh_api_password
WAZUH_INDEXER_HOST=your_wazuh_indexer_host
WAZUH_INDEXER_PORT=9200
WAZUH_INDEXER_USERNAME=your_wazuh_indexer_user
WAZUH_INDEXER_PASSWORD=your_wazuh_indexer_password
WAZUH_VERIFY_SSL=false
WAZUH_TEST_PROTOCOL=https
RUST_LOG=info
claude_desktop_config.jsonファイルを設定します。
{
"mcpServers": {
"wazuh": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--env-file", "/path/to/your/.env",
"ghcr.io/gbrigandi/mcp-server-wazuh:latest"
]
}
}
}
設定
設定は環境変数で管理します。ローカル開発では、プロジェクトのルートに .env ファイルを配置できます。
| 変数 | 説明 | デフォルト | 必須 |
|---|---|---|---|
WAZUH_API_HOST | Wazuh Manager API サーバーのホスト名または IP アドレスです。 | localhost | はい |
WAZUH_API_PORT | Wazuh Manager API のポート番号です。 | 55000 | はい |
WAZUH_API_USERNAME | Wazuh Manager API 認証用のユーザー名です。 | wazuh | はい |
WAZUH_API_PASSWORD | Wazuh Manager API 認証用のパスワードです。 | wazuh | はい |
WAZUH_INDEXER_HOST | Wazuh Indexer API サーバーのホスト名または IP アドレスです。 | localhost | はい |
WAZUH_INDEXER_PORT | Wazuh Indexer API のポート番号です。 | 9200 | はい |
WAZUH_INDEXER_USERNAME | Wazuh Indexer API 認証用のユーザー名です。 | admin | はい |
WAZUH_INDEXER_PASSWORD | Wazuh Indexer API 認証用のパスワードです。 | admin | はい |
WAZUH_VERIFY_SSL | Wazuh API および Indexer への接続で SSL 証明書を検証するには、true に設定します。 | false | いいえ |
WAZUH_TEST_PROTOCOL | Wazuh 接続用のプロトコルです(例:「http」、「https」)。クライアントのデフォルト設定を上書きします。 | https | いいえ |
RUST_LOG | ログレベルです(例:info、debug、trace)。 | info | いいえ |
WAZUH_VERIFY_SSL に関する注意: 本番環境では、WAZUH_VERIFY_SSL=true に設定し、Wazuh Manager API と Wazuh Indexer の両方への接続で証明書が適切に検証されるようにすることを強く推奨します。false に設定すると証明書の検証が無効になり、安全ではありません。
「必須:はい」は、サーバーが各 Wazuh コンポーネントに接続するうえで、これらの変数が不可欠であることを示します。デフォルト値は設定されていますが、本番環境やローカル以外の環境に適合する可能性は低いです。
ビルド
前提条件
- Rust をインストールします:https://www.rust-lang.org/tools/install
- Docker と Docker Compose をインストールします(任意。コンテナ化されたデプロイに使用):https://docs.docker.com/get-docker/
ローカル開発
- リポジトリをクローンします:
git clone https://github.com/gbrigandi/mcp-server-wazuh.git cd mcp-server-wazuh - 設定します(Wazuh API を使用する場合):
- サンプル環境ファイルをコピーします:
cp .env.example .env .envファイルを編集し、使用する Wazuh API の詳細(例:WAZUH_API_HOST、WAZUH_API_PORT)を設定します。
- サンプル環境ファイルをコピーします:
- ビルドします:
# デフォルト機能でビルド(stdio トランスポートのみ) cargo build # HTTP トランスポートのサポートを有効にしてビルド cargo build --features http - 実行します:
# stdio トランスポートで実行(デフォルト) cargo run # HTTP トランスポートで実行(ビルド時に --features http が必要) cargo run --features http -- --transport http # または実行スクリプトを使用(stdio モードを設定する場合があります): # ./run.sh
トランスポートモード
Wazuh MCP サーバーは、MCP クライアントとの通信に2つのトランスポートモードをサポートしています。
stdio トランスポート(デフォルト)
stdio トランスポートはデフォルトのモードで、MCP クライアントがサーバーを子プロセスとして起動するローカル統合に適しています。通信には stdin/stdout を使用し、JSON-RPC 2.0 メッセージを送受信します。
# Run with stdio transport (default)
mcp-server-wazuh
# Explicit stdio transport
mcp-server-wazuh --transport stdio
ストリーミング可能な HTTP トランスポート
HTTP トランスポートを使用すると、リモートサーバーをデプロイし、MCP クライアントがネットワーク経由で接続できるようになります。このモードでは、Server-Sent Events(SSE)をサポートする MCP Streamable HTTP 仕様を実装しています。
# Run with HTTP transport on default address (127.0.0.1:8080)
mcp-server-wazuh --transport http
# Run with custom host and port
mcp-server-wazuh --transport http --host 0.0.0.0 --port 3000
HTTP トランスポートの機能:
- すべての MCP 通信に使用する単一の
/mcpエンドポイント - JSON-RPC メッセージを含む POST リクエスト
- 応答のストリーミングに使用する Server-Sent Events(SSE)
MCP-Session-Idヘッダーによるセッション管理- プロトコルバージョン:
2025-06-18(rmcp 0.10 でサポートされる MCP 仕様)
セキュリティに関する注意: HTTP トランスポートはデフォルトで 127.0.0.1(ローカルホストのみ)にバインドされます。リモートアクセスのために 0.0.0.0 にバインドする場合は、適切なネットワークセキュリティ対策(ファイアウォールルール、TLS を使用するリバースプロキシなど)が確実に設定されていることを確認してください。
CLI 引数
| 引数 | 説明 | デフォルト |
|---|---|---|
--transport | トランスポートモード:stdio または http | stdio |
--host | HTTP サーバーのバインドアドレス(http トランスポートのみ) | 127.0.0.1 |
--port | HTTP サーバーのポート(http トランスポートのみ) | 8080 |
アーキテクチャ
サーバーは rmcp フレームワーク(v0.10 以降)を使用して構築されており、MCP クライアント(Claude Desktop、IDE 拡張機能など)と Wazuh MCP Server 間の通信を仲介します。サーバーは stdio と Streamable HTTP の両方のトランスポートをサポートし、Wazuh Indexer および Wazuh Manager API と連携してセキュリティアラートなどのデータを取得します。
sequenceDiagram
participant ClientApp as Client Application (e.g., IDE Extension / Claude Desktop)
participant WazuhMCPServer as Wazuh MCP Server (this application)
participant WazuhAPI as Wazuh API
ClientApp->>+WazuhMCPServer: (stdio) MCP Initialize
WazuhMCPServer-->>-ClientApp: (stdout) MCP Initialized
ClientApp->>+WazuhMCPServer: (stdio) MCP Request (tools/list)
WazuhMCPServer->>WazuhMCPServer: Parse MCP Request
WazuhMCPServer->>WazuhMCPServer: Process internally
WazuhMCPServer-->>-ClientApp: (stdout) MCP Response (available tools)
ClientApp->>+WazuhMCPServer: (stdio) MCP Request (tools/call for wazuhAlerts)
WazuhMCPServer->>WazuhMCPServer: Parse MCP Request
WazuhMCPServer->>+WazuhAPI: Request Wazuh Alerts (with WAZUH_API_USERNAME, WAZUH_API_PASSWORD)
WazuhAPI-->>-WazuhMCPServer: Wazuh Alert Data (JSON)
WazuhMCPServer->>WazuhMCPServer: Transform Wazuh Alerts to MCP Format
WazuhMCPServer-->>-ClientApp: (stdout) MCP Response (alerts)
データフロー(stdio を中心に説明):
- アプリケーション(IDE 拡張機能や CLI ツールなど)が、子プロセスとして Wazuh MCP Server を起動します。
- アプリケーションは、MCP 形式のリクエスト(コマンド)をサーバーの
stdinに送信します。 - Wazuh MCP Server は、
stdinからコマンドを読み取ります。 - 処理:
- サーバーは MCP コマンドを解析します。
- コマンドで Wazuh からのデータ取得が必要な場合(例:「最新のアラートを取得」):
- サーバーは Wazuh API に接続します(必要に応じて、
WAZUH_API_USERNAME、WAZUH_API_PASSWORDなどの設定済み認証情報を使用して認証します)。 - 必要なデータ(例:セキュリティアラート)を取得します。
- サーバーの変換ロジックが各アラートを処理し、Wazuh のフィールドを MCP 形式に対応付けます。
- サーバーは Wazuh API に接続します(必要に応じて、
- コマンドが内部的なもの(例:MCP サーバー固有のステータス確認)である場合は、サーバーが直接処理します。
- サーバーは、MCP 形式の JSON 応答(変換済みアラート、コマンドの確認応答、エラーメッセージなど)を
stdout経由でアプリケーションに送信します。 - アプリケーションは、サーバーの
stdoutから MCP 応答を読み取り、処理します。
この stdio 通信により、子プロセスを管理できるローカル開発ツールやその他のアプリケーションと緊密に連携できます。ポーリングを希望するクライアント向けに、オプションの HTTP エンドポイント(/mcp)も利用できる場合があります。
サーバーは Model Context Protocol(MCP)に準拠し、JSON-RPC 2.0 メッセージを使用して stdin と stdout 経由で通信します。
通信フローの例:
-
クライアントアプリケーション(IDE 拡張機能など)が
mcp-server-wazuhプロセスを起動します。 -
クライアントが
initializeリクエストをサーバーのstdinに送信します:{ "jsonrpc": "2.0", "id": 0, "method": "initialize", "params": { "protocolVersion": "2025-06-18", "capabilities": { "sampling": {}, "roots": { "listChanged": true } }, "clientInfo": { "name": "mcp-inspector", "version": "0.11.0" } } } -
サーバーは
stdoutを介してinitializeレスポンスをクライアントに送信します:{ "jsonrpc": "2.0", "id": 1, "result": { "protocolVersion": "2025-06-18", "capabilities": { "prompts": {}, "resources": {}, "tools": {} }, "serverInfo": { "name": "mcp-server-wazuh", "version": "0.3.0" }, "instructions": "This server provides tools to interact with a Wazuh SIEM instance for security monitoring and analysis.\nAvailable tools:\n- 'get_wazuh_alert_summary': Retrieves a summary of Wazuh security alerts. Optionally takes 'limit' parameter to control the number of alerts returned (defaults to 100)." } } -
クライアントは
notifications/initializedをサーバーのstdinに送信します: (これは通知のため、クライアントはidを省略します。){ "jsonrpc": "2.0", "method": "notifications/initialized" } -
クライアントは
tools/listをサーバーのstdinに送信して、利用可能なツールをリクエストします:{ "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} } -
サーバーは
stdoutを介してツールの一覧をクライアントに返します:{ "jsonrpc": "2.0", "id": 2, "result": { "tools": [ { "name": "get_wazuh_alert_summary", "description": "Retrieves a summary of Wazuh security alerts. Returns formatted alert information including ID, timestamp, and description.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Maximum number of alerts to retrieve (default: 100)", "format": "uint32", "minimum": 0.0, "type": ["integer", "null"] } }, "title": "GetAlertSummaryParams", "type": "object" } } ] } } -
クライアントは
tools/callをサーバーのstdinに送信して、get_wazuh_alert_summaryツールを呼び出します:{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "get_wazuh_alert_summary", "arguments": { "limit": 5 } } } -
サーバーは
stdinでリクエストを受信し、get_wazuh_alert_summary呼び出しを処理します(Wazuh Indexer APIへのクエリとデータの変換を行います)。 -
サーバーは整形したアラートを含む
tools/callレスポンスをstdoutを介してクライアントに送信します:{ "jsonrpc": "2.0", "id": 3, "result": { "content": [ { "type": "text", "text": "Alert ID: 1747091815.1212763\nTime: 2024-01-15T10:30:45.123Z\nAgent: web-server-01\nLevel: 7\nDescription: Attached USB Storage" }, { "type": "text", "text": "Alert ID: 1747066333.1207112\nTime: 2024-01-15T10:25:12.456Z\nAgent: database-server\nLevel: 5\nDescription: New dpkg (Debian Package) installed." } ], "isError": false } }または、アラートが見つからない場合:
{ "jsonrpc": "2.0", "id": 3, "result": { "content": [ { "type": "text", "text": "No Wazuh alerts found." } ], "isError": false } }または、Wazuhへの接続でエラーが発生した場合:
{ "jsonrpc": "2.0", "id": 3, "result": { "content": [ { "type": "text", "text": "Error retrieving alerts from Wazuh: HTTP request error: connection refused" } ], "isError": true } }
開発とテスト
- コードスタイル: 標準の Rust フォーマット(
cargo fmt)を使用します。 - リンティング: Clippy(
cargo clippy)を使用します。 - テスト: 変換ロジックの単体テストと統合テストが含まれています。stdio のテストでは、テストハーネスに入力と出力をパイプで渡す場合があります。HTTP のテストでは、Wazuh API のモックサーバー(
httpmock)とテスト用 MCP クライアントを使用します。# すべてのテストを実行 cargo test # 特定の統合テストを実行(HTTP テストの例) # cargo test --test integration_test # 詳細なログを表示してテストを実行 RUST_LOG=debug cargo test - テストの実行方法とテストクライアント CLI の使用方法について詳しくは、
tests/README.mdを参照してください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。