hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows for interacting with Splunk Enterprise/Cloud through natural language queries. Supports executing Splunk searches, managing indexes, viewing users, and performing KV store operations.
Splunk MCP(モデルコンテキストプロトコル)ツール
Splunk Enterprise/Cloud を自然言語で操作するための FastMCP ベースのツールです。このツールは、直感的なインターフェースを通じて Splunk データの検索、KV ストアの管理、Splunk リソースへのアクセスを行うための一連の機能を提供します。
動作モード
このツールは次の 3 つのモードで動作します。
- SSEモード(デフォルト)
- サーバー送信イベントベースの通信
- リアルタイムの双方向インタラクション
- ウェブベースのMCPクライアントに適しています
- 引数が指定されていない場合のデフォルトモード
/sse
エンドポイント経由のアクセス
- APIモード
- RESTful APIエンドポイント
/api/v1
エンドポイントプレフィックス経由でアクセスpython splunk_mcp.py api
から始める
- STDIOモード
- 標準入出力ベースの通信
- Claude Desktopおよびその他のMCPクライアントと互換性があります
- AIアシスタントとの直接統合に最適
python splunk_mcp.py stdio
から始める
特徴
- Splunk Search : 自然言語クエリでSplunk検索を実行する
- インデックス管理: Splunk インデックスの一覧表示と検査
- ユーザー管理: Splunk ユーザーの表示と管理
- KVストア操作: KVストアコレクションの作成、一覧表示、管理
- 非同期サポート: パフォーマンス向上のため、async/await パターンで構築されています
- 詳細なログ記録: 絵文字インジケーターによる包括的なログ記録で視認性が向上します
- SSL 構成: さまざまなセキュリティ要件に対応する柔軟な SSL 検証オプション
- 強化されたデバッグ: トラブルシューティングのための詳細な接続とエラーのログ記録
- 包括的なテスト: すべての主要な機能をカバーするユニットテスト
- エラー処理: 適切なステータスコードによる堅牢なエラー処理
- SSE準拠:MCP SSE仕様に完全準拠
利用可能なMCPツール
MCP インターフェース経由では次のツールが利用できます。
ツール管理
- リストツール
- 利用可能なすべてのMCPツールとその説明およびパラメータを一覧表示します。
健康チェック
- ヘルスチェック
- 接続を確認するために利用可能なSplunkアプリのリストを返します
- ピン
- MCP サーバーが稼働していることを確認するためのシンプルな ping エンドポイント
ユーザー管理
- 現在のユーザー
- 現在認証されているユーザーに関する情報を返します
- リストユーザー
- すべてのユーザーとその役割のリストを返します
インデックス管理
- リストインデックス
- アクセス可能なすべてのSplunkインデックスのリストを返します
- インデックス情報を取得する
- 特定のインデックスに関する詳細情報を返します
- パラメータ: index_name (文字列)
- インデックスとソースタイプ
- インデックスとそのソースタイプの包括的なリストを返します
検索
- 検索_splunk
- Splunk検索クエリを実行する
- パラメータ:
- search_query (文字列): Splunk検索文字列
- earliest_time(文字列、オプション): 検索ウィンドウの開始時刻
- Latest_time(文字列、オプション): 検索ウィンドウの終了時刻
- max_results (整数、オプション): 返される結果の最大数
- 保存した検索リスト
- Splunkインスタンスに保存された検索のリストを返します
KVストア
- list_kvstore_collections
- すべてのKVストアコレクションを一覧表示します
- kvstoreコレクションを作成する
- 新しいKVストアコレクションを作成します
- パラメータ: collection_name (文字列)
- 削除_kvstore_コレクション
- 既存のKVストアコレクションを削除します
- パラメータ: collection_name (文字列)
SSEエンドポイント
SSE モードで実行する場合、次のエンドポイントが利用できます。
- /sse : SSE接続情報をテキスト/イベントストリーム形式で返します
- SSE接続に関するメタデータを提供します
- メッセージエンドポイントのURLが含まれています
- プロトコルと機能の情報を提供します
- /sse/messages : メインのSSEストリームエンドポイント
- ハートビートなどのシステムイベントをストリーミングする
- 永続的な接続を維持
- 適切にフォーマットされたSSEイベントを送信します
- /sse/health : SSEモードのヘルスチェックエンドポイント
- SSE形式でステータスとバージョン情報を返します
エラー処理
MCP 実装には一貫したエラー処理が含まれます。
- 無効な検索コマンドまたは不正なリクエスト
- 権限が不十分です
- リソースが見つかりません
- 無効な入力検証
- 予期しないサーバーエラー
- Splunk サーバーとの接続の問題
すべてのエラー応答には、エラーを説明する詳細なメッセージが含まれます。
前提条件
- Python 3.10以上
- 依存管理のための詩
- Splunk Enterprise/Cloudインスタンス
- 必要な権限を持つ適切なSplunk認証情報
インストール
オプション1: ローカルインストール
- リポジトリをクローンします。
- Poetry を使用して依存関係をインストールします。
- サンプル環境ファイルをコピーして設定を構成します。
- Splunk の資格情報を使用して
.env
ファイルを更新します。
オプション2: Dockerのインストール
- 最新のイメージをプルします:
- 上記のように
.env
ファイルを作成するか、環境変数を直接使用します。 - Docker Compose を使用して実行します。
または Docker を直接使用します:
使用法
ローカル使用
このツールは 3 つのモードで実行できます。
- SSE モード (MCP クライアントのデフォルト):
- STDIO モード:
Dockerの使用
このプロジェクトは、新しいdocker compose
(V2) コマンドと従来のdocker-compose
(V1) コマンドの両方をサポートしています。以下の例ではV2構文を使用していますが、どちらもサポートされています。
- SSE モード (デフォルト):
- API モード:
- STDIO モード:
Dockerを使ったテスト
このプロジェクトには、Docker の専用テスト環境が含まれています。
- すべてのテストを実行します。
- 特定のテスト コンポーネントを実行します。
テスト結果は./test-results
ディレクトリに保存されます。
Docker開発のヒント
- 建物画像:
- ログの表示:
- デバッグ:
注意: Docker Compose V1 を使用している場合は、上記のコマンドでdocker compose
docker-compose
に置き換えてください。
セキュリティノート
- 環境変数:
.env
ファイルをコミットしない.env.example
テンプレートとして使用する- 本番環境ではDockerシークレットの使用を検討する
- SSL検証:
- 本番環境では
VERIFY_SSL=true
が推奨されます - 開発/テスト用に無効にすることができます
- 環境変数で設定する
- ポート露出:
- 必要なポートのみを公開する
- 可能な場合は内部 Docker ネットワークを使用する
- 生産現場でのネットワークセキュリティを考慮する
環境変数
次の環境変数を設定します。
SPLUNK_HOST
: SplunkホストアドレスSPLUNK_PORT
: Splunk管理ポート(デフォルト: 8089)SPLUNK_USERNAME
: Splunkユーザー名SPLUNK_PASSWORD
: SplunkのパスワードSPLUNK_SCHEME
: 接続スキーム(デフォルト: https)VERIFY_SSL
: SSL検証を有効/無効にする(デフォルト: true)FASTMCP_LOG_LEVEL
: ログレベル(デフォルト: INFO)SERVER_MODE
: uvicorn 使用時のサーバーモード (sse、api、stdio)
SSL設定
このツールは柔軟な SSL 検証オプションを提供します。
- デフォルト(セキュア)モード:
- 完全なSSL証明書検証
- ホスト名検証が有効
- 実稼働環境に推奨
- リラックスモード:
- SSL証明書の検証が無効になっています
- ホスト名検証が無効
- テストや自己署名証明書に便利
テスト
このプロジェクトには、pytest を使用した包括的なテスト カバレッジと、カスタム MCP クライアントを使用したエンドツーエンドのテストが含まれています。
テストの実行
基本的なテスト実行:
カバレッジレポートの場合:
詳細出力の場合:
エンドツーエンドのSSEテスト
このプロジェクトには、ライブ SSE エンドポイントに接続してすべてのツールをテストするカスタム MCP クライアント テスト スクリプトが含まれています。
このスクリプトは、次の機能により MCP クライアントとして機能します。
/sse
エンドポイントに接続してメッセージURLを取得する- ツール呼び出しをメッセージエンドポイントに送信する
- SSEイベントを処理してツールの結果を抽出する
- 期待される形式に対する結果の検証
これにより、実際の MCP クライアントで使用される SSE インターフェイスの現実的なテストが提供されます。
テスト構造
このプロジェクトでは、3 つの補完的なテスト手法を使用します。
- MCP 統合テスト(
tests/test_api.py
) :mcp.call_tool()
を通じて MCP ツール インターフェースをテストします。- FastMCPで適切なツール登録を検証
- 正しい応答形式とデータ構造を保証する
- MCPインターフェースレベルでのエラー処理を検証します
- **注:**このファイルは、目的をよりよく反映するために、理想的には
test_mcp.py
に名前を変更する必要があります。
- 直接関数テスト(
tests/test_endpoints_pytest.py
) :- Splunk 機能を直接テストします (MCP レイヤーをバイパス)
- 関数の実装の詳細をより包括的にカバーします
- エッジケース、パラメータのバリエーション、エラー処理をテストします
- SSL構成、接続パラメータ、タイムアウトのテストが含まれています
- 効率的なテストカバレッジのためにパラメータ化されたテストを使用する
- エンドツーエンドの MCP クライアント テスト(
test_endpoints.py
) :- SSEエンドポイントに接続する実際のMCPクライアントのように動作します
- 接続からツールの呼び出し、応答の解析までの完全なフローをテストします
- 実際のSSEプロトコル実装を検証します
- 実際のパラメータを使用してライブサーバーでツールをテストします
- 構成テスト(
tests/test_config.py
) :- 環境変数の解析のテスト
- SSL検証設定
- 接続パラメータの検証
テストツール
テストは以下をサポートします:
- pytest-asyncio による非同期テスト
- pytest-cov によるカバレッジレポート
- pytest-mock によるモック
- パラメータ化テスト
- 接続タイムアウトテスト
トラブルシューティング
接続の問題
- 基本的な接続:
- このツールは基本的なTCP接続テストを実行します
- ポート8089にアクセスできるかどうかを確認する
- ネットワークルーティングとファイアウォールを確認する
- SSLの問題:
- SSLエラーが表示される場合は、
VERIFY_SSL=false
を設定してみてください。 - 証明書の有効性と信頼チェーンを確認する
- ホスト名が証明書と一致することを確認する
- 認証の問題:
- Splunkの資格情報を確認する
- ユーザー権限を確認する
- アカウントがロックされていないことを確認する
- デバッグ:
- 詳細なログを取得するには、
FASTMCP_LOG_LEVEL=DEBUG
を設定します。 - 特定のエラーメッセージについては接続ログを確認してください
- SSL構成メッセージを確認する
- SSE 接続の問題:
- SSEエンドポイントが
/sse
経由でアクセス可能であることを確認する - 適切なコンテンツタイプヘッダーを確認する
- ブラウザ開発者ツールを使用してSSE接続を検査する
クロード・インテグレーション
クロードデスクトップ構成
Splunk MCPをClaude Desktopと統合するには、SSEモードまたはSTDIOモードのいずれかを使用するように設定する必要があります。claude_desktop_config.jsonに以下の設定claude_desktop_config.json
追加してください。
STDIO モード (デスクトップに推奨)
SSEモード
クロードとの使用
設定が完了すると、Claude を介して自然言語で Splunk と対話できるようになります。例:
- 利用可能なインデックスを一覧表示します。
- Splunk データを検索:
- システムの健全性を取得します。
- KV ストアを管理します。
MCP ツールは自動的に Claude で使用可能になり、自然言語コマンドを通じてこれらの操作を実行できるようになります。
ライセンス
[ここにライセンスを入力してください]
謝辞
- FastMCPフレームワーク
- Python 用 Splunk SDK
- 構成管理のためのPython分離
- SSE実装のためのSSE Starlette
This server cannot be installed
Splunk Enterprise/Cloudと自然言語で対話するためのFastMCPベースのツール。このツールは、Splunkデータの検索、KVストアの管理、Splunkリソースへのアクセスのための一連の機能を提供します。
- Operating Modes
- Features
- Available MCP Tools
- SSE Endpoints
- Error Handling
- Prerequisites
- Installation
- Usage
- Environment Variables
- Testing
- Claude Integration
- License
- Acknowledgments