Skip to main content

MCP 接入

把只读工具与调查 / 分诊 / 解读 / 生成暴露给外部 agent(Claude Desktop、Cursor、自研):Streamable HTTP、按角色签发的令牌、与界面同一套闸与审计。1.9.0 起。

MCP server 是一个随 splunkd 启停的常驻进程(bin/copilot_mcp_server.py,scripted input,interval=-1)。默认关闭;系统设置 → MCP 接入的开关即刻生效。

MCP 接入

开关与地址

默认说明
启用开启拉起进程,关闭结束它
绑定127.0.0.1只接受回环 / 0.0.0.0 / ::1。要给别的机器用,前置 TLS 反代并在反代上做访问控制;server 本身不做 TLS
端口18100
协议MCP Streamable HTTPhttp://<bind>:<port>/mcp;探活 GET /health 不鉴权

令牌与角色

每个请求带 Authorization: Bearer rsk_…。令牌在这一页签发,明文只显示一次,KV 只存 sha256;吊销即刻生效。令牌绑定角色档,签发者签不出高于自己的档:

能调的工具
viewerlist_indexes list_sourcetypes get_fields run_spl search_kb lookup_asset threat_intel generate_spl explain_event
analyst以上 + investigate_alert triage_alerts
admin以上(预留)

无令牌 / 错 / 已吊销 → 401;档位不够 → 工具返回 {"error":"forbidden"}(MCP 没有按工具的 403)。限流复用 [limits] rate_per_min / burst,按令牌计。

签发令牌

工具

工具说明
list_indexes()索引 + 事件数,只列白名单内的
list_sourcetypes(index)某索引的 sourcetype
get_fields(index, sourcetype)近 24h 真实字段名 + 脱敏样例
run_spl(spl)只读 SPL,最多 20 行,行已脱敏;delete / collect / outputlookup / sendemail / script / rest … 直接拒
search_kb(query, k)处置手册 / 知识库检索(含同步进来的 Splunk 对象)
lookup_asset(entity, kind)资产 / 身份上下文
threat_intel(indicator, kind)威胁情报(只有配了 [threat_intel] 才出网)
generate_spl(question, index, sourcetype)自然语言 → 只读 SPL,与首页同一引擎
explain_event(event, sourcetype)单条日志解读
investigate_alert(alert, context, sourcetype)告警调查(时间线 / MITRE / 影响 / FP 判定)
triage_alerts(alerts[], max_clusters)批量分诊聚类打分

资源:copilot://kb/{id}copilot://reports/latest;提示模板:investigate

安全边界

  • 只读:Splunk 侧全部走 bin/tools.py 的闸:只读命令过滤、[limits] agentic_index_whitelist[masking] mode
  • 许可与角色与界面同源:付费工具未激活返回 license_required
  • 每次调用一条审计(via=mcp),在调用审计里筛。
  • 进程以 splunk-system-user 跑搜索(Splunk Free 许可没有这个用户,MCP 拿不到会话)。

接入示例

Claude Desktop / Cursor(mcpServers):

{
  "mcpServers": {
    "splunk-ai-copilot": {
      "url": "http://127.0.0.1:18100/mcp",
      "headers": { "Authorization": "Bearer <TOKEN>" }
    }
  }
}

Claude Code:

claude mcp add --transport http splunk-ai-copilot http://127.0.0.1:18100/mcp \
  --header "Authorization: Bearer <TOKEN>"

排障

现象看哪里
开关打开但「未响应」index=_internal sourcetype=copilot:mcp / splunkd.logcopilot_mcp_server;常见:端口被占、splunk-system-user 不存在
全部 401令牌已吊销 / 少 Bearer 前缀
工具返回 forbidden令牌档位不够,换 analyst 令牌
license_required产品未激活或许可过期
refused: index … not in the allowed set[limits] agentic_index_whitelist 没包含该索引

本页内容