启用AI代理通过模型上下文协议(MCP)与Splunk环境无缝交互
将您的Splunk实例转变为AI原生平台。我们的社区驱动型MCP服务器连接大型语言模型和Splunk企业/云,提供超过20种工具、16种资源(包括CIM数据模型),以及生产就绪的安全性——所有这些都通过单一标准化协议实现。
🚀 新功能:AI驱动的故障排除工作流 - 将被动的灭火行动转变为智能、系统的问题解决方法,使用专业AI工作流。
<a name="快速开始"></a>
<a name="先决条件"></a>
📖 完整安装指南:安装指南
<a name="配置"></a>
在运行设置之前,请配置您的Splunk连接:
# 复制示例配置
cp env.example .env
# 使用您的Splunk凭据编辑.env文件
# - 使用现有的Splunk实例(本地、云端或Splunk Cloud)
# - 或者使用包含的Docker Splunk(需要Docker)
# 可选的HTTP传输默认值(本地运行)
# - 无状态HTTP避免了粘性会话需求
# - JSON响应提高了与某些客户端的兼容性
# 这些已经是本地运行的默认设置,通过`mcp-server --local`
echo "MCP_STATELESS_HTTP=true" >> .env
echo "MCP_JSON_RESPONSE=true" >> .env
<a name="一键设置"></a>
Windows:
git clone https://github.com/deslicer/mcp-for-splunk.git
cd mcp-for-splunk
```python
# 启动MCP服务器(项目脚本)
uv run mcp-server --local --detached
# 验证服务器
uv run mcp-server --test
# 可选:显示详细的工具/资源和健康输出
uv run mcp-server --test --detailed
macOS/Linux:
git clone https://github.com/deslicer/mcp-for-splunk.git
cd mcp-for-splunk
# (推荐)预览将要安装的内容
./scripts/smart-install.sh --dry-run
# 安装缺失的先决条件(基础:Python,uv,Git,Node)
./scripts/smart-install.sh
# 启动MCP服务器(项目脚本)
# 本地运行默认为HTTP无状态模式 + JSON响应
uv run mcp-server --local --detached
# 验证服务器
uv run mcp-server --test
# 可选:显示详细的工具/资源和健康输出
uv run mcp-server --test --detailed
💡 部署选项:
mcp-server命令将提示您选择:
- Docker(选项1):完整的堆栈,包括Splunk、Traefik、MCP检查器——如果已安装Docker,则推荐此选项
- 本地(选项2):轻量级的FastMCP服务器——适用于没有Docker的用户
停止服务:
uv run mcp-server --stop仅停止该项目的compose服务(开发/生产/Splunk)。它不会停止Docker引擎。
关于Splunk许可:当使用
so1Splunk容器时,如果您需要Splunk企业许可,必须提供自己的许可。compose文件中包含一个注释的示例挂载:# - ./lic/splunk.lic:/tmp/license/splunk.lic:ro。创建一个lic/目录并挂载您的许可文件,或者在启动后通过Splunk Web UI添加许可。
<a name="您可以做什么"></a>
<a name="ai驱动的故障排除-new"></a>
将您的Splunk故障排除从手动程序转变为智能、自动化的流程,使用MCP服务器端点:
# 发现并执行智能故障排除工作流
result = await list_workflows.execute(ctx, format_type="summary")
# 返回:缺少数据故障排除、性能分析、自定义工作流...
# 使用单个命令执行AI驱动的故障排除
result = await workflow_runner.execute(
ctx=ctx,
workflow_id="missing_data_troubleshooting",
earliest_time="-24h",
latest_time="now",
focus_index="main"
)
# → 并行执行,专家分析,可操作建议
🚀 主要优点:
📖 阅读完整的AI工作流指南 → 以获取详细示例、工作流创建和高级故障排除技巧。
<a name="文档中心"></a>
| 文档 | 目的 | 对象 | 时间 |
|---|---|---|---|
| 🤖 AI驱动的故障排除 | 由工作流工具驱动的智能工作流 | 所有用户 | 5分钟 |
| 入门指南 | 完整的设置指南,包括先决条件 | 新用户 | 15分钟 |
| 集成指南 | 连接AI客户端 | 开发人员 | 30分钟 |
| 部署指南 | 生产部署 | DevOps | 45分钟 |
| 工作流指南 | 创建和运行工作流(OpenAI环境变量) | 开发人员 | 1_0分钟 |
| API参考 | 工具文档 | 集成人员 | 参考 |
| 资源参考 | 访问CIM数据模型和Splunk文档 | 所有用户 | 参考 |
| 贡献指南 | 添加您自己的工具 | 贡献者 | 60分钟 |
| 📖 贡献指南 | 完整的贡献框架 | 贡献者 | 15分钟 |
| 架构 | 技术深入 | 架构师 | 参考 |
| 测试快速开始 | 第一次成功测试步骤 | 开发人员 | 2分钟 |
| 插件 | 使用入口点插件扩展(单独包) | 集成人员 | 5分钟 |
<a name="可用工具--能力"></a>
<a name="ai工作流--专家-new"></a>
list_workflows:发现可用的故障排除工作流(核心 + 贡献)workflow_runner:执行任何工作流,具有完全参数控制和进度跟踪workflow_builder:为您的组织创建自定义故障排除程序<a name="搜索--分析"></a>
<a name="数据发现"></a>
<a name="管理"></a>
<a name="健康监控"></a>
<a name="客户端集成示例"></a>
💪 多客户端配置强度:此Splunk用的MCP服务器的一个关键优势是能够同时支持多种客户端配置。您可以运行一个服务器实例,并连接具有不同Splunk环境、凭据和配置的多个客户端——所有这些都不需要重启服务器或管理单独的过程。
<a name="多客户端优势"></a>
基于会话的隔离:每个客户端连接维护其自己的Splunk会话,具有独立的身份验证,防止不同用户或环境之间的凭据冲突。
动态配置:通过简单地更改标头,在不同的Splunk实例(本地、云端、开发、生产)之间切换——无需重启服务器。
可扩展架构:单个服务器可以处理多个并发客户端,每个客户端都有自己的Splunk上下文,使其非常适合团队环境、CI/CD管道和多租户部署。
资源效率:消除了为每个Splunk环境运行单独的MCP服务器实例的需求,减少了资源消耗和管理开销。
<a name="cursor-ide"></a>
{
"mcpServers": {
"splunk": {
"command": "fastmcp",
"args": ["run", "/path/to/src/server.py"],
"env": {
"MCP_SPLUNK_HOST": "your-splunk.com",
"MCP_SPLUNK_USERNAME": "your-user"
}
}
}
}
{
"mcpServers": {
"splunk-in-docker": {
"url": "http://localhost:8002/mcp/",
"headers": {
"X-Splunk-Host": "so1",
"X-Splunk-Port": "8089",
"X-Splunk-Username": "admin",
"X-Splunk-Password": "Chang3d!",
"X-Splunk-Scheme": "http",
"X-Splunk-Verify-SSL": "false",
"X-Session-ID": "splunk-in-docker-session"
}
},
"splunk-cloud-instance": {
"url": "http://localhost:8002/mcp/",
"headers": {
"X-Splunk-Host": "myorg.splunkcloud.com",
"X-Splunk-Port": "8089",
"X-Splunk-Username": "admin@myorg.com",
"X-Splunk-Password": "Chang3d!Cloud",
"X-Splunk-Scheme": "https",
"X-Splunk-Verify-SSL": "true",
"X-Session-ID": "splunk-cloud-session"
}
}
}
}
<a name="google-agent-development-kit"></a>
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
splunk_agent = LlmAgent(
model='gemini-2.0-flash',
tools=[MCPToolset(connection_params=StdioServerParameters(
command='fastmcp',
args=['run', '/path/to/src/server.py']
))]
)
<a name="社区--贡献"></a>
快速链接:贡献指南 · 行为准则 · 安全政策 · 治理 · 许可证
<a name="创建您自己的工具--扩展"></a>
🚀 贡献者的快速开始:
# 交互式工具生成器(项目脚本)
uv run generate-tool
# 浏览现有工具以获得灵感
./contrib/scripts/list_tools.py
# 验证您的工具实现(项目脚本)
uv run validate-tools
# 测试您的贡献
./contrib/scripts/test_contrib.py
📖 完整的贡献指南 → —— 您需要知道的一切关于为Splunk用的MCP服务器创建工具、资源和工作流。
<a name="贡献类别"></a>
<a name="部署选项"></a>
<a name="开发-local"></a>
MCP_STATELESS_HTTP=true和MCP_JSON_RESPONSE=true,以与官方MCP客户端兼容(无粘性会话;JSON优于SSE)。
http://localhost:8003/mcp/Accept: application/json, text/event-streamMCP-Session-ID: <uuid>(首选;X-Session-ID可选)X-Splunk-*标头(主机、端口、用户名、密码、方案、验证SSL)或通过.env设置<a name="生产-docker"></a>