MCP Server for TheHive について
TheHiveの利用者向けMCPサーバーで、MCPクライアントからセキュリティアラートやインシデント対応操作を利用できます。アラートとケースの照会、アラートのケース化、新規ケース作成に対応します。
主な機能
- 01アラート一覧と詳細の取得
- 02ケース一覧と詳細の取得
- 03アラートのケース化
- 04ケースの作成と設定
活用シーン
- 01最近のセキュリティアラートの確認
- 02インシデントケースの詳細確認
- 03アラートをケース調査へ移行
- 04インシデント対応ケースの作成
MCP 対応
stdioでMCPクライアントに接続し、TheHiveのアラートやケースの照会、ケース化、作成をツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
TheHive 向け MCP サーバー
AI モデルや自動化ツールが TheHive インシデント対応プラットフォームにアクセスできるようにする MCP(Model Context Protocol)サーバーです。
概要
このサーバーは、MCP クライアント(AI アシスタントなど)と TheHive の間のブリッジとして機能し、以下を可能にします。
- セキュリティアラートの取得と分析
- ケース情報へのアクセス
- アラートのケースへの昇格
- インシデント対応業務の実行
機能
利用可能なツール
-
get_thehive_alerts - TheHive からアラートの一覧を取得します
- 任意の
limitパラメーター(デフォルト:100) - ID、タイトル、重大度、ステータスなどを含む、書式化されたアラート情報を返します
- 任意の
-
get_thehive_alert_by_id - 特定のアラートの詳細情報を取得します
- 必須の
alert_idパラメーター - 包括的なアラート詳細を返します
- 必須の
-
get_thehive_cases - TheHive からケースの一覧を取得します
- 任意の
limitパラメーター(デフォルト:100) - 書式化されたケース情報を返します
- 任意の
-
get_thehive_case_by_id - 特定のケースの詳細情報を取得します
- 必須の
case_idパラメーター - 包括的なケース詳細を返します
- 必須の
-
promote_alert_to_case - アラートをケースに昇格します
- 必須の
alert_idパラメーター - 新しく作成されたケースの情報を返します
- 必須の
-
create_thehive_case - TheHive で新しいケースを作成します
- 必須の
titleとdescriptionパラメーター - 任意のパラメーター:
severity、tags、tlp、pap、status、assignee、case_template、start_date - 新しく作成されたケースの情報を返します
- 必須の
インストール
前提条件
- TheHive 5 インスタンスへのアクセス
- 有効な TheHive API トークン
コンパイル済みバイナリのダウンロード
GitHub Releases ページから、さまざまなオペレーティングシステム向けのコンパイル済みバイナリをダウンロードできます。お使いのシステムに適したバイナリをダウンロードし、実行可能にして、任意の場所に配置してください。
ソースからのビルド
git clone <repository-url>
cd mcp-server-thehive
cargo build --release
設定
サーバーには以下の環境変数が必要です。
THEHIVE_URL- TheHive API のベース URL(デフォルト:http://localhost:9000/api)THEHIVE_API_TOKEN- TheHive API トークン(必須)VERIFY_SSL- SSL 証明書を検証するかどうか(デフォルト:false)RUST_LOG- ログレベル(任意。例:debug、info)
環境ファイル
プロジェクトのルートに .env ファイルを作成します。
THEHIVE_URL=https://your-thehive-instance.com/api
THEHIVE_API_TOKEN=your-api-token-here
VERIFY_SSL=true
RUST_LOG=info
TheHive API トークンの取得
- TheHive インスタンスにログインします
- ユーザー設定 → API キーに移動します
- API キーを作成をクリックします
- 生成されたトークンをコピーし、
THEHIVE_API_TOKENとして使用します
使用方法
サーバーの実行
# Using cargo
cargo run
# Using the built binary
./target/release/mcp-server-thehive
MCP クライアントとの連携
サーバーは MCP プロトコルを使用して stdio 経由で通信します。このサーバーを使用するように MCP クライアントを設定します。
{
"mcpServers": {
"thehive": {
"command": "/path/to/mcp-server-thehive",
"env": {
"THEHIVE_URL": "https://your-thehive-instance.com:9000/api",
"THEHIVE_API_TOKEN": "your-api-token-here"
}
}
}
}
使用例
最近のアラートを取得する
{
"method": "tools/call",
"params": {
"name": "get_thehive_alerts",
"arguments": {
"limit": 10
}
}
}
アラートの詳細を取得する
{
"method": "tools/call",
"params": {
"name": "get_thehive_alert_by_id",
"arguments": {
"alert_id": "~123456"
}
}
}
アラートをケースに昇格する
{
"method": "tools/call",
"params": {
"name": "promote_alert_to_case",
"arguments": {
"alert_id": "~123456"
}
}
}
新しいケースを作成する
{
"method": "tools/call",
"params": {
"name": "create_thehive_case",
"arguments": {
"title": "Potential Malware Outbreak",
"description": "Multiple endpoints reporting suspicious process activity.",
"severity": 3,
"tags": ["malware", "endpoint", "epp"],
"tlp": 2,
"assignee": "soc_level2"
}
}
}
開発
プロジェクト構成
mcp-server-thehive/
├── src/
│ ├── main.rs # Main server implementation
│ ├── lib.rs # Library exports
│ └── thehive/
│ ├── mod.rs # Module declarations
│ ├── client.rs # TheHive API client
│ └── error.rs # Error types
├── tests/
│ ├── bin/
│ │ └── mock_thehive_server.rs # Mock TheHive API server for testing
│ ├── integration_test.rs # Integration tests
│ └── mcp_stdio_test.rs # Stdio interface tests
├── Cargo.toml # Dependencies and metadata
└── README.md # This file
依存関係
- rmcp - MCP プロトコルの実装
- thehive-client - TheHive API クライアントライブラリ
- tokio - 非同期ランタイム
- reqwest - HTTP クライアント
- serde - シリアライゼーションフレームワーク
- tracing - ログ記録と計装
テスト
このプロジェクトには、TheHive のモックサーバーを利用する、包括的な統合テストスイートが含まれています。このモックサーバーは TheHive API をシミュレートするため、実際の TheHive インスタンスを必要とせずに、MCP サーバーの機能を分離された再現可能な環境でテストできます。
テストの実行:
# Run all tests (including integration tests that use the mock server)
cargo test
# Run tests with verbose logging (includes MCP server and mock server logs)
RUST_LOG=debug MCP_SERVER_THEHIVE_VERBOSE_TEST_LOGS=true cargo test
セキュリティに関する考慮事項
- API トークンは安全に保管してください(環境変数または安全な認証情報ストアを使用してください)
- API トークンをバージョン管理にコミットしないでください
- 本番環境では SSL 検証を有効にしてください
- TheHive インスタンスへのネットワークアクセスを制限してください
- TheHive へのアクセスには最小権限の API トークンを使用してください
- すべての API 通信を監視し、ログに記録してください
- API トークンを定期的にローテーションしてください
トラブルシューティング
よくある問題
-
接続拒否
THEHIVE_URLが正しいことを確認します- TheHive インスタンスへのネットワーク接続を確認します
- TheHive が実行中で、アクセス可能であることを確認します
-
認証失敗
THEHIVE_API_TOKENが正しく、有効期限が切れていないことを確認します- API トークンに必要な権限があるか確認します
- トークンが正しくフォーマットされていることを確認します
-
SSL 証明書エラー
- テスト時は
VERIFY_SSL=falseを設定します(本番環境では推奨されません) - 適切な SSL 証明書をインストールします
- 有効な認証局を使用します
- テスト時は
ログ記録
トラブルシューティングのためにデバッグログを有効にします:
RUST_LOG=debug cargo run
貢献
- リポジトリをフォークします
- フィーチャーブランチを作成します
- 変更を加えます
- 該当する場合はテストを追加します
- プルリクエストを送信します
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
関連プロジェクト
- thehive-client-rs - TheHive API 用の Rust クライアントライブラリ
- mcp-server-cortex - Cortex 用の MCP サーバー
- mcp-server-wazuh - Wazuh SIEM 用の MCP サーバー
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。