Splunk MCP Server

Splunk MCP Server

Splunk MCP Server 是一个基于 FastMCP 的应用程序,可让语言模型和与 MCP 兼容的人工智能代理通过自然语言和标准协议与 Splunk Enterprise 或 Splunk Cloud 进行交互。它提供安全、灵活和实时访问 Splunk 数据、搜索、KV 存储和系统资源,支持多种通信模式以满足不同的集成需求。

Author: livehybrid


查看协议

什么是 Splunk MCP Server?

Splunk MCP Server 是 Splunk 和模型上下文协议之间的强大连接器,允许大型语言模型以标准化且友好的方式与 Splunk 服务进行通信。它将 Splunk 复杂的 API 和管理操作抽象为可发现和调用的“工具”,可通过自然语言或编程请求自动化任务,如搜索、用户管理、索引检查和 key-value 存储访问。

如何配置

  1. 设置环境变量
    通过导出环境变量(如 SPLUNK_HOSTSPLUNK_PORTSPLUNK_USERNAMESPLUNK_PASSWORDSPLUNK_TOKEN)来配置 Splunk 和 MCP 的连接设置。根据需要调整 VERIFY_SSL 以进行证书验证。
  2. 选择操作模式
    决定使用模式:SSE(默认,用于实时代理连接)、API(REST 端点)或 STDIO(与本地 AI 代理进行直接集成,如 Claude Desktop)。
  3. 安装依赖项
    使用 uvpoetrypip 安装所有必需的 Python 包。
  4. 启动应用程序
    根据您的设置,使用 Python 或 Docker 命令以所选模式运行服务器。
    • SSE 模式: python splunk_mcp.py
    • API 模式: python splunk_mcp.py api
    • STDIO 模式: python splunk_mcp.py stdio
  5. (可选)在 Docker 中运行
    使用 docker compose 在任何支持的模式下构建和部署服务。

如何使用

  • 对于 LLMs/AI 代理:
    将您的 AI 助手客户端(如 Claude Desktop 或基于网页的代理)连接到 Splunk MCP Server 的端点(SSE、API 或 STDIO)。客户端可以根据需要发现并调用工具(Splunk 操作)。
  • 通过工具交互:
    使用自然语言或编程请求触发 Splunk 搜索、查看索引、管理用户或操作 KV 存储。MCP 层将这些请求转换为对您的 Splunk 实例的安全、授权查询。
  • 测试与验证:
    运行内置健康检查和集成测试,以确保连接性和功能性。可以从 CLI 和 Docker 容器测试搜索和工具调用。
  • API 和 SSE 端点: 访问 RESTful 或 SSE 端点,将 Splunk 数据集成到第三方仪表板或自动化中。

主要特性

  • 多种操作模式: SSE、API 和 STDIO,适用于广泛的客户端和代理接口。
  • 自然语言 Splunk 搜索: 将自然语言查询转换为 Splunk 搜索任务,参数灵活。
  • 索引和用户管理: 直接从代理界面枚举和检查索引/用户。
  • KV 存储操作: 完全 CRUD 操作 Splunk KV 存储集合。
  • 异步性能: 使用异步编程实现高吞吐量和响应操作。
  • 综合日志记录: 详细的、增强了 emoji 的日志增加了可观察性,简化了故障排除。
  • 可定制的 SSL 安全性: 在严格的证书验证和放宽模式之间进行选择,以便于开发。
  • 深度错误处理: 为所有工具调用提供清晰、结构化的错误信息。
  • 健康与连接检查: 内置工具和端点来验证服务就绪性和 Splunk 连接性。

用例

  • 基于 AI 的 IT 操作: 从 LLM 助手自动化常规的 Splunk 查询、索引管理和用户查找。
  • 安全分析: 使用 LLM 搜索日志、分析威胁模式,并提取上下文数据以支持调查流程。
  • DevOps 监控: 启用聊天操作或代理工作流查询系统索引、检查健康状况和管理日志存储。
  • 自动报告: 使用自然语言命令生成报告或从 Splunk 提取数据,减少手动仪表板使用。
  • 为 Splunk 开发自定义 AI 代理: 构建基于 LLM 的机器人或副驾驶,通过 MCP 程序化地与 Splunk 交互。

常见问题

Q1: Splunk MCP Server 支持哪些操作模式,我该使用哪种模式?
A: 它支持 SSE(用于实时 AI/网页客户端)、API(用于编程集成的 REST 调用)和 STDIO(与 Claude Desktop 等直接代理连接)。SSE 是默认模式;根据您的集成场景选择。

Q2: 如何保护我的 Splunk 凭据并确保安全部署?
A: 始终使用环境变量来保存凭据,切勿将其提交到源代码管理中。在生产环境中,强制使用 VERIFY_SSL=true,在可能的情况下使用 Docker 密码,并限制端口暴露。

Q3: 我可以使用 Splunk MCP Server 与 Splunk Cloud 和企业版进行集成吗?
A: 是的,它支持 Splunk Enterprise(本地部署)和 Splunk Cloud。配置相同;只需确保端点可访问且经过正确身份验证。

Q4: 如何排查失败的 Splunk 搜索或连接问题?
A: 检查 MCP 服务器日志(带有详细的 emoji/日志),查看工具响应中的错误信息,检查环境变量是否正确,并验证 Splunk API/网络的连接性。

Q5: 我可以添加自定义工具或扩展 MCP 服务器以支持其他 Splunk 操作吗?
A: 当然可以——Splunk MCP 是可扩展的。您可以将新的 MCP 工具实现为 Python 的异步函数,并将其注册,以提供额外的 Splunk 或第三方集成。