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 secretsの使用を検討する
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
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Splunk Enterprise/Cloudと自然言語で対話するためのFastMCPベースのツール。このツールは、Splunkデータの検索、KVストアの管理、Splunkリソースへのアクセスのための一連の機能を提供します。
Related Resources
Related MCP Servers
- -security-license-qualityFastMCP is a comprehensive MCP server allowing secure and standardized data and functionality exposure to LLM applications, offering resources, tools, and prompt management for efficient LLM interactions.Last updated -3MIT License
- -security-license-qualityAn MCP server that allows using natural language to manage Cloudflare resources (Workers, KV, R2, D1) through Claude Desktop, VSCode, and other MCP clients.Last updated -79Apache 2.0
- Asecurity-licenseAqualityA FastMCP tool that enables control of Spotify through natural language commands in Cursor Composer, allowing users to manage playback, search for content, and interact with playlists.Last updated -5
- -security-license-qualityAn MCP server that enables LLMs to access Slack's search functionality to retrieve users, channels, messages, and thread replies from a Slack workspace.Last updated -3