
Splunk MCP桥
该项目实现了一个模型上下文协议(MCP)桥,用于连接 克劳德桌面版 到一个 Splunk管理端点。它利用定制设计的Node.js JSON-RPC中继来绕过Splunk Port 8089上的传统协议限制,实现安全、实时的AI驱动日志分析。
项目概述
该项目的核心目标是将Claude Desktop转变为Splunk搜索头的功能扩展。通过桥接这两个平台,用户可以使用自然语言而不是手动SPL编码来执行复杂的数据操作,如多指标相关性分析和自动根本原因识别。
主要特点
- 自定义Node.js中继: 定制的JavaScript桥(
splunk_mcp_bridge.mjs)它将来自Claude的JSON-RPC请求重构为Splunk兼容的REST命令。
- 安全的“零信任”架构: 使用Nginx代理管理器为SSL/TLS终止和细粒度、零继承IAM角色实施强化的安全边界(
mcp_user).
- 加密令牌身份验证: 使用高熵加密的受众令牌(范围为
mcp)以确保只有经过验证的AI实例才能访问数据湖。
- Docker化部署: Splunk Enterprise核心和Nginx环境都是容器化的,以实现一致的部署和完全的服务隔离。
系统架构
该实现由三个主要环境组成:
- 当地环境: 托管Claude Desktop和Node.js网桥。
- 网络周长: 通过Cloudflare DNS和Nginx代理管理器进行管理,以确保HTTPS流量的安全。
- 远程云(DigitalOcean): 一个高性能的Ubuntu droplet(8GB RAM,160GB磁盘),承载着停靠的Splunk Enterprise内核。
实施步骤
1.基础设施设置
- 提供高性能的Ubuntu服务器。
- 部署Docker和Portainer进行容器编排。
- 将Splunk Enterprise初始化为具有持久存储映射的无状态容器。
2.Splunk配置
- 安装 Splunk MCP服务器 和 SPL的Splunk AI助手 Splunkbase的附加组件。
- 配置
mcp_user具有“最小权限”执行设置和零继承的角色。
- 生成一个 加密令牌 强制受众范围设置为
mcp.
3.安全与网络
- 部署 Nginx代理管理器 将内部Docker网络映射到安全域。
- 对所有传输数据实施TLS 1.3加密。
4.客户集成
- 配置克劳德桌面
config.json启动splunk_mcp_bridge.mjs继电器。
- 通过确认Claude识别握手来验证握手
splunk-mcp-server连接器。
未来工程
- 主动警报: 配置Claude以自动监控阈值,并在触发事件时提供即时根本原因分析。
- 自动修复: 授予网桥“写入”功能,以允许实时威胁阻止(例如,更新防火墙黑名单)。
- 集装箱网关: 包装
.mjs桥接作为sidecar服务,便于企业范围内的部署。
