はじめに
お久しぶりです。もうsplunkを退職してからはもう触ることはないかなと思っていましたが
数年ぶりにSplunkを触る必要がでてきました。
いろいろ触ってたら当然のごとくSPLなんてもう覚えてないわけです。
Stats...eventstats...tstatsってどう書くんだっけとかで悶々としてたので、MCPのsplunk agentを見つけたので、一旦実装してみます。
Splunk MCP tool
今回はこちらで作成いただいていたものがベースです。
searchはもちろん、indexのlist、kv_storeのlistやらいろいろfunctionがあります。
環境
一旦、Localのmacにinstallしたsplunkを使います。
MCPのhostはClaudeでやります。
準備
まずはlocalにgit cloneしてきます。
git clone https://github.com/livehybrid/splunk-mcp.git
cd splunk-mcp
githubの手順だとpoetryなのですが、uvを使ってやります。
splunk_mcp.pyの内部で、fastapiをcallするので、fastapi addします。
uv add "mcp[cli]" httpx fastapi
splunk_mcp.pyを修正
localでやる場合、splunkが8000portでlistenしているので、fast api側のportを変更します。
vim splunk_mcp.py
# FASTMCPのポートを8000から8001へ
FASTMCP_PORT = int(os.environ.get("FASTMCP_PORT", "8001"))
os.environ["FASTMCP_PORT"] = str(FASTMCP_PORT)
一旦起動するか確認
uv run splunk_mcp.py stdio
2025-04-10 14:46:45,501 - __main__ - INFO - 🚀 Starting Splunk MCP server in STDIO mode
起動したらCtlr+Cで抜けてください。
Claude側の設定ファイル修正
readmeだと、envファイルを置けばいけるっぽいのですがうまく読み込めていなかったので、jsonに直接書いちゃいます。
- commandはuvのパス
- envに接続情報
- argsにsplunk-mcpのパス
vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
"splunk": {
"command": "/Users/satoshi.udagawa/.local/bin/uv",
"env": {
"SPLUNK_HOST": "127.0.0.1",
"SPLUNK_PORT": "8089",
"SPLUNK_USERNAME": "admin",
"SPLUNK_PASSWORD": "hogehogefugaga",
"SPLUNK_SCHEME": "https",
"VERIFY_SSL": "false"
},
"args": [
"--directory",
"/Users/satoshi.udagawa/Downloads/splunk-mcp",
"run",
"splunk_mcp.py",
"stdio"
]
}
Claudeアプリ
一旦再起動してください。
結果どうなる
claudeを再度起動した際に、ハンマーアイコン?にmcp toolが出てくるはずです。
その中にsplunk関連のtoolが表示されると思います。
(表示されない場合はうまく設定がいけてないので確認してみてください)
では早速promptを書きます。
最初はラフな感じで。
雑なpromptなので、一発で行きませんでしたが状況に応じてそれぞれのtoolをcallしていることがわかります。
ちょっと足します。
これはきれいに行きましたね。
もうちょっとやってみましょう。
最後に
簡単ではありますがこんな感じでMCPを使ってagentを動かすことできますので。ragとも組み合わせて色々使えそうなのでまたやったらメモ残します