こんにちは。torippy1024です。
以前、以下の記事でSplunk CloudのMCP(Model Context Protocol)サーバー機能について試しました。
https://qiita.com/torippy1024/items/86c8df696dbb31d38d1f
最近、オンプレ版であるSplunk EnterpriseでもMCPサーバーが使えるようになったようです。
Splunk Cloudの契約がない人でもSplunkのMCPサーバー機能をためすことができるようになったので、やってみようと思います。
Splunk Enterpriseはトライアルライセンス、AIツールについてはClaude Desktopの無料プランをつかうことによって、全て無料で試すことができます。
(インストール先のサーバーや、インターネットへの接続は必要です)
概要図
というわけでいつもの概要図です。大したことはありません。
Splunk Cloudとは違って、Splunk Enterpriseの場合はApp経由での接続となり、ポートは8089を使用し、URLも異なるということを理解しておけばとりあえずOKです。
(後述しますが、ロールに「mcp_tool_execute」という権限を付与しておく必要があることにも注意が必要です)
用意するもの
(1)Splunk Enterpriseを導入するサーバー
今回は短期間での検証だったので以下をAWS環境上に構築しましたが、これで一応動作はしました。
・OS:Ubuntu 24.04
・インスタンスタイプ:t3.medium(2vCPU/4GBメモリ)
・ストレージ:20GB gp3
・インバウンド方向の通信許可ポート:22(SSHアクセスのため)、8000(Webアクセスのため)、8089(MCP通信のため)
※基本的にはクライアント端末からしか接続しないため、ソースIPでIPアドレスの接続制限をかけたい場合はクライアント端末のみに制限すればOKです。
(2)Node.jsがインストールされたクライアント端末
MacbookとWindows、両方で検証して成功しています。本記事では主にMacbookで検証するためのコマンドを記載していますので、Windowsをお使いの方は適時読み替えてください。
一点、Node.jsのインストールパスに半角スペース("Program Files"など)が含まれていると、不具合が発生することがあるため、Windowsを使う場合はインストールパスに注意してください。
(3)カスタムMCPサーバーに接続できるAIツール
一番簡単なのはClaude Desktopと思われます。他にCursor、Windsurfなども使えるようです。私が手元でいろいろ検証した中ではGemini CLIでも動作しました。また最近だとChat GPTもPlusプラン以上で使えるようになったそうです。(Microsoft Copilotではまだ無理らしいです。Copilot Studioを使うとできそうにも見えるのですが未検証です)
2025/11/10追記
Chat GPTやCopilot Studioは、現時点ではMCPサーバーには対応していますが、SplunkのMCPサーバーの認証方式であるBearer Token認証には対応していないため、使用できないようです。
もう少し細かく書くと、Chat GPTやCopilot StudioはMCPサーバーの認証方式としてOAuth2.0が利用でき、セキュリティ観点ではそちらを使った方が安全性が高いので、今後はClaude側がそちらの認証方式に対応していくのではないかと推察されます。(個人の意見です)
手順
(1)Splunk Enterprise(トライアル版)のインストール
他の記事でも解説していますので、コマンドだけさっさと記載します。ライセンスはトライアル版のままで使えます。
インストールするsplunkのバージョンは10.0.0です。
最新バージョンをインストールする場合は以下サイトでURLを確認してください。
https://www.splunk.com/ja_JP/download/splunk-enterprise.html
ssh ubuntu@xxx.xxx.xxx.xxx
sudo useradd -m splunk
sudo passwd splunk
(splunkユーザーのOSパスワードを入力。任意の値でよい)
wget -O splunk-10.0.0-e8eb0c4654f8-linux-amd64.tgz "https://download.splunk.com/products/splunk/releases/10.0.0/linux/splunk-10.0.0-e8eb0c4654f8-linux-amd64.tgz"
sudo tar -xzvC /opt -f splunk-10.0.0-e8eb0c4654f8-linux-amd64.tgz
sudo /opt/splunk/bin/splunk start --accept-license --answer-yes --seed-passwd password
sudo /opt/splunk/bin/splunk stop
sudo chown -R splunk:splunk /opt/splunk
sudo /opt/splunk/bin/splunk enable boot-start -user splunk
sudo /opt/splunk/bin/splunk start
ちなみに、Splunk Enterpriseインストール時に初期作成されるデフォルトユーザーはadminです。
上記のインストール実行時、--seed-passwdで指定しているpasswordが初期パスワードとなります。気になる方は値を変更してインストールしてください。
(2)MCP Server Appのインストール
次にMCP Server Appをダウンロードし、splunkに転送してインストールします。
以下より、Appファイルをダウンロードして転送してください。
https://splunkbase.splunk.com/app/7931
Appファイル転送コマンド例(別ターミナルを開いてローカルPC上で実行してください)
scp -r /Users/torippy1024/splunk-mcp-server_022.tgz ubuntu@xxx.xxx.xxx.xxx:/tmp/
Appインストール
ssh ubuntu@xxx.xxx.xxx.xxx
sudo /opt/splunk/bin/splunk install app /tmp/splunk-mcp-server_022.tgz
(splunkへのログインを求められるため、ユーザーadmin、パスワードpasswordを指定)
sudo /opt/splunk/bin/splunk restart
(3)MCP Server連携に必要なロール/ユーザーの作成とトークンの発行
2026/3/30追記
MCP Server App Version 1.0.0より、暗号化されたトークンを使用する仕様に変化しました。
これに伴い、暗号化されていないトークンを使用する以下の手順は使えなくなり、MCP Server App上で暗号化されたトークンを発行する必要があります。
MCPサーバー機能を使うためのロールとユーザーを作成します。
GUI上で操作するほうが直感的にはわかりやすいのですが、画面キャプチャを撮るのが面倒なので今回はAPI操作で実行してしまうことにします。
sshでログインしてsplunkコマンドを実行するのではなく、curlを使ってSplunkのAPIを実行しているところがポイントです。
実はsplunkコマンドよりAPIを使ったほうが実行できる操作は広いので、気になった方はAPIコマンドも覚えておくとよいかもしれません。
https://docs.splunk.com/Documentation/Splunk/9.4.2/RESTREF/RESTprolog
(思いっきりコマンドにユーザー名とパスワードが含まれてしまうので、使用には注意が必要です)
ローカルPCからSplunkに向けてcurl実行
curl -k -u admin:password https://<Splunk IP>:8089/services/authorization/roles -d name=mcp_user -d capabilities=mcp_tool_execute
curl -k -u admin:password https://<Splunk IP>:8089/services/authentication/users -d name=mcp_user -d password=prnAGHN4QNGqQ9JT87MEEM2am3mZeBPN -d roles=mcp_user -d roles=admin
curl -k -u admin:password https://<Splunk IP>:8089/services/authorization/tokens -d name=mcp_user -d audience=mcp | grep -oP 's:key name="token"><!\[CDATA\[\K[^\]]+(?=\]\]></s:key>)'
(トークンのみ出力されるようgrepしているので、その値を控えておく)
公式ドキュメントから読み取れる重要なポイントは以下です。
- MCPサーバーロール、ユーザーともに「mcp_user」としてください。
- トークン発行する際のオーディエンス(audience)には、「mcp」という値を指定してください。
- 「mcp_user」ロールには「mcp_tool_execute」権限を付与してください。(ここがSplunk Cloudとは明確に違う設定となります)
- 「mcp_user」ユーザーには、「mcp_user」ロールの他、他に必要なオブジェクトへの参照権限を持つロールを同時に付与してください。今回は「admin」ロールを含めてしまっています。
mcp_userユーザーのパスワードはなんでも構いません。mcp_userのユーザートークンを払い出して使用するため、ユーザー名とパスワードを使用してログインすることはないためです。今回はセキュリティの観点からとりあえず複雑な値を生成して仮設定しています。
ちなみに、発行したトークンの有効期限はデフォルトだと30日です。
(4)Claude Desktopへの設定
Claude Desktopは以下よりダウンロードできます。Web版ではなく、インストールして使用するDesktop版でないとMCPクライアント機能は使えないため注意してください。また、Googleまたはメールアドレスによってログインすることも必要です。
https://claude.ai/download
またClaude Desktopは、内部的にはローカルPC上でNode.jsを実行し、Node.js経由でSplunk MCPサーバーに接続する実装になっているようです。このためローカルPCにNode.js(バージョン18以上)のインストールも必要です。
まだの人は以下よりインストールしてください。
https://nodejs.org/ja/download/
WindowsとMacで設定箇所が異なるようですが、Claude Desktopのclaude_desktop_config.jsonにMCPサーバーへの接続設定を記載します。
Claude Desktopの「設定」-「開発者」タブを選択し、「構成を編集」を押すとclaude_desktop_config.jsonが保管されているフォルダを開くことができます。
< Splunk IP >と< token >の部分は適切な値に修正してください。
{
"mcpServers": {
"splunk-mcp-server": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://<Splunk IP>:8089/services/mcp/",
"--header",
"Authorization: Bearer ${AUTH_TOKEN}"
],
"env": {
"AUTH_TOKEN": "<token>",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}
デフォルトでは、Splunk Enterpriseは8089接続に自己証明書を使用しています。
このため、NODE_TLS_REJECT_UNAUTHORIZED=0を指定して証明書エラーを回避していることがポイントです。
設定が完了したらClaude Desktopを再起動してください。
ちなみに、Claude DesktopはローカルPC上からMCPサーバー(Splunk Enterprise)に接続しに行っているため、もしSplunk Enterprise側で接続元のIPアドレス制限を行っているのであれば、ローカルPCのIPアドレスに通信許可を与えておけばOKです。
トラブルシューティング
(1)サーバー/クライアントの原因箇所の切り分け
MCPサーバーに接続できないと、Claude Desktop上でエラーが表示されます。
問題がMCPクライアント側にあるのか、MCPサーバー側にあるのかを判別するために、直接MCPサーバーに接続してTool呼び出しをするコマンドは以下となります。
正常にMCPサーバーが動作しており、ロール/ユーザー/トークンが適切であれば、splunkで利用可能なtoolの一覧がレスポンスとして返ってきます。
MCPサーバーで利用可能なtoolの一覧
https://help.splunk.com/en/splunk-cloud-platform/mcp-server-for-splunk-platform/mcp-server-tools
url=https://<Splunk IP>:8089/services/mcp
token=<token>
curl -v -k $url -H "Authorization: Bearer $token" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
レスポンスに利用可能なToolの一覧が含まれていない場合、MCPサーバー側の問題である可能性が高いです。
MCPサーバー側で問題が発生している場合は、以下ドキュメントを参考にして、正しくMCPサーバーが設定され、トークンが払い出されていることを確認しましょう。
https://help.splunk.com/en/splunk-cloud-platform/mcp-server-for-splunk-platform/configure-the-server
MCPクライアント側で問題が発生している場合は、使用しているクライアントによって挙動が異なります。各クライアントのログを参照し、公式サイトなどで解決策を調べることになります。
remote-mcpに関する問題については以下のGithubを見て追加や修正をしてみてください。
https://www.npmjs.com/package/mcp-remote
(2)Windowsを使っている場合の注意
Windowsを使用している場合node.jsのインストールパスに半角スペースが含まれていると動作が失敗することがあるようです。
Node.jsは"C:\Program Files\nodejs"などにデフォルトでインストールされることが多いため、これは致命的なバグです。
いろいろ試したのですが、私にとって最も簡単で早い解決策は、「Node.jsをいったんアンインストールし、インストール先を"C:\nodejs"などに変更して再インストールする」 でした。Windowsで動作させようとする人は注意してください。
試してみる
では、実際に試してみます。とりあえず接続確認プロンプトを投げてみます。
OKっぽいですね。
次に、以下URLからチュートリアルデータ(tutorialdata.zip)をダウンロードしてsplunkにアップロードし、適当なプロンプトを投げてみます。
(Splunk Enterpriseへログインする場合、デフォルトのログイン接続先はhttp://< Splunk IP >:8000であることに注意してください)
https://docs.splunk.com/Documentation/Splunk/latest/SearchTutorial/Systemrequirements#Download_the_tutorial_data_files
素晴らしいの一言です。
また、AI Assistant for SPLとも連携し、SPLに関する問い合わせにも回答してくれるToolも用意されているようです。
参考資料
前の記事でも紹介した資料と被っていますが・・・・・・。
Splunk MCP Server
https://splunkbase.splunk.com/app/7931
MCPサーバーでSplunk Cloud Platformの力を解き放つ
https://www.splunk.com/ja_jp/blog/artificial-intelligence/unlock-the-power-of-splunk-cloud-platform-with-the-mcp-server.html
Leveraging Splunk MCP and AI for enhanced IT operations and security investigations
https://lantern.splunk.com/Splunk_Platform/Product_Tips/Artificial_Intelligence_and_Machine_Learning/Leveraging_Splunk_MCP_and_AI_for_enhanced_IT_operations_and_security_investigations
About the MCP server for Splunk platform
https://help.splunk.com/en/splunk-cloud-platform/mcp-server-for-splunk-platform/about-the-mcp-server-for-splunk-platform
MCP Server on Splunk Cloud Platform Demo
https://www.youtube.com/watch?v=JGh6uVUKOjI
mcp-remote
https://www.npmjs.com/package/mcp-remote
github-mcp-remote(remote-mcpの設定を確認したり挙動が怪しい場合はこちらのGithubを参照)
https://github.com/geelen/mcp-remote
Example Clients(リモートMCPサーバーをサポートするツールの一覧)
https://modelcontextprotocol.io/clients




