mcpField
M
MCP Server for Splunk

MCP Server for Splunk

ローカル
github.com/jkosikデータ・分析739 週間前に更新

MCP Server for Splunk について

MCP Server for Splunkは、MCPクライアントからSplunkデータを利用するためのGo製MCPサーバーです。保存済み検索、アラート、インデックス、マクロを照会でき、STDIOとSSEに対応します。

主な機能

  1. 01保存済み検索の一覧表示
  2. 02アラートと発火済みアラートの照会
  3. 03Splunkインデックスとマクロの一覧表示
  4. 04STDIOとSSEのトランスポート対応
  5. 05アラート検索用プロンプトとCSVリソース

活用シーン

  1. 01クライアントでSplunkの保存済み検索を確認
  2. 02タイトルや検索名でアラートを絞り込み
  3. 03Splunkのアラートやインデックス情報を会話に追加

MCP 対応

MCPサーバーは、Splunkの検索、アラート、インデックス、マクロを照会するツールに加え、アラート検索用プロンプトとローカルCSVリソースを提供します。STDIOまたはSSEで接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Splunk 用 MCP サーバー

Splunk 用 MCP サーバーの Go 実装です。 STDIO と SSE(Server-Sent Events HTTP API)をサポートしています。github.com/mark3labs/mcp-go SDK を使用しています。

クイックスタート - Cursor との連携

Cursor で MCP 設定を行うと、リモートデータを LLM コンテキストに直接含めることができます。

デモ

STDIO モード
cd /tmp # CHANGE ME
git clone https://github.com/jkosik/mcp-server-splunk.git
cd mcp-server-splunk/cmd/mcp-server-splunk/

~/.cursor/mcp.json の Cursor 設定を更新します。

{
  "mcpServers": {
    "splunk_stdio": {
      "name": "Splunk MCP Server",
      "description": "Splunk MCP server",
      "type": "stdio",
      "command": "/tmp/mcp-server-splunk/cmd/mcp-server-splunk/mcp-server-splunk", # CHANGE ME
      "env": {
        "SPLUNK_URL": "https://changeme.splunkcloud.com:8089", # CHANGE ME
        "SPLUNK_TOKEN": "abcdef" # CHANGE ME
      }
    }
  }
}

または、先にサーバーを再ビルドします。

go build -o cmd/mcp-server-splunk/mcp-server-splunk cmd/mcp-server-splunk/main.go
SSE モード

サーバーを起動します。

export SPLUNK_URL=https://your-splunk-instance:8089
export SPLUNK_TOKEN=your-splunk-token

# Start the server
go run cmd/mcp-server-splunk/main.go -transport sse -port 3001

~/.cursor/mcp.json の Cursor 設定を更新します。

{
  "mcpServers": {
    "splunk_sse": {
      "name": "Splunk MCP Server (SSE)",
      "description": "MCP server for Splunk integration (SSE mode)",
      "type": "sse",
      "url": "http://localhost:3001/sse"
    }
  }
}

MCP ツールとプロンプト

  • list_splunk_saved_searches

    • パラメーター:
      • count(number、任意):返す結果の数(最大 100、デフォルト 100)
      • offset(number、任意):ページネーションのオフセット(デフォルト 0)
  • list_splunk_alerts

    • パラメーター:
      • count(number、任意):返す結果の数(最大 100、デフォルト 10)
      • offset(number、任意):ページネーションのオフセット(デフォルト 0)
      • title(string、任意):アラートタイトルを絞り込む、大文字と小文字を区別しない部分文字列
  • list_splunk_fired_alerts

    • パラメーター:
      • count(number、任意):返す結果の数(最大 100、デフォルト 10)
      • offset(number、任意):ページネーションのオフセット(デフォルト 0)
      • ss_name(string、任意):アラートを絞り込む検索名のパターン(デフォルト "*")
      • earliest(string、任意):遡って検索する時間範囲(デフォルト "-24h")
  • list_splunk_indexes

    • パラメーター:
      • count(number、任意):返す結果の数(最大 100、デフォルト 10)
      • offset(number、任意):ページネーションのオフセット(デフォルト 0)
  • list_splunk_macros

    • パラメーター:
      • count(number、任意):返す結果の数(最大 100、デフォルト 10)
      • offset(number、任意):ページネーションのオフセット(デフォルト 0)
  • internal/splunk/prompt.go は、特定のキーワード(例:GitHub や OKTA)に関連する Splunk アラートを見つける MCP プロンプトを実装しており、最適な回答を提供するために、まず複数の MCP ツールを活用してすべての Splunk アラート、インデックス、マクロを確認するよう Cursor に指示します。

  • cmd/mcp/server/main.go は、チャットに追加のコンテキストを提供するため、Splunk 関連の内容を含むローカル CSV ファイル形式の MCP リソースを実装しています。

ローカルでの使用とテスト

STDIO モード(デフォルト)
export SPLUNK_URL=https://your-splunk-instance:8089
export SPLUNK_TOKEN=your-splunk-token

# List available tools
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | go run cmd/mcp-server-splunk/main.go | jq

# Call list_splunk_saved_searches tool
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_splunk_saved_searches","arguments":{}}}' | go run cmd/mcp-server-splunk/main.go | jq
SSE モード(Server-Sent Events HTTP API)
export SPLUNK_URL=https://your-splunk-instance:8089
export SPLUNK_TOKEN=your-splunk-token

# Start the server
go run cmd/mcp-server-splunk/main.go -transport sse -port 3001

# Call the server and get Session ID from the output. Do not terminate the session.
curl http://localhost:3001/sse

# Keep session running and and use different terminal window for the final MCP call
curl -X POST "http://localhost:3001/message?sessionId=YOUR_SESSION_ID" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | jq

Smithery 経由でのインストール

smithery バッジ

Dockerfile と smithery.yaml は、[Smithery](https://smithery.ai/server/@jkosik/ でこの MCP サーバーをホストできるようにするために使用されます。

MCP Review による認定:https://mcpreview.com/mcp-servers/jkosik/mcp-server-splunk

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。