article
README
🚀 Tempo MCP 服务器
Tempo MCP 服务器是一个基于 Go 语言实现的服务器,它遵循 Model Context Protocol(MCP),能够实现与 Grafana Tempo 的集成。该服务器允许 AI 助手查询和分析来自 Grafana Tempo 的分布式跟踪数据,为数据分析和处理提供了便利。
🚀 快速开始
先决条件
- Go 1.21 或更高版本
- Docker 和 Docker Compose(用于本地测试)
构建和运行
构建并运行服务器:
# 构建项目
go build
# 运行服务器
./tempo-mcp-server
✨ 主要特性
- 支持 AI 助手查询和分析来自 Grafana Tempo 的分布式跟踪数据。
- 遵循 Model Context Protocol(MCP),可与兼容的 AI 客户端(如 Claude Desktop)配合使用。
- 提供 HTTP 和 WebSocket 端点,方便不同方式的访问。
- 支持 Docker 部署,便于快速搭建和测试。
📦 安装指南
本地构建运行
# 构建项目
go build
# 运行服务器
./tempo-mcp-server
Docker 部署
# 构建 Docker 镜像
docker build -t tempo-mcp-server .
# 运行 Docker 容器
docker run -p 8080:8080 tempo-mcp-server
📚 详细文档
服务器端点
- HTTP 端点:
http://localhost:8080 - WebSocket 端点:
ws://localhost:8080/ws
项目结构
tempo-mcp-server/
├── main.go # 主程序入口
├── server.go # 服务器实现
├── handler.go # 请求处理逻辑
└── docker/Dockerfile # Docker 配置文件
MCP 服务器工具定义
tempo_query
- 描述:用于查询 Grafana Tempo 的跟踪数据。
- 必填参数:
query:要执行的查询语句。
- 可选参数:
limit:限制返回的结果数量(默认值为 10)。
环境变量
TEMPO_SERVER_ADDR:指定服务器的监听地址(默认值为localhost:8080)。TEMPO_SERVER_DEBUG:启用调试模式(默认值为false)。
💻 使用示例
基础用法
配置完成后,您可以在 Claude 中使用以下查询:
- “使用
{duration>1s}查询 Tempo 的跟踪数据” - “查找前端服务在 Tempo 中的跟踪记录,使用查询
{service.name=\"frontend\"}” - “显示最近的 50 条满足
{http.status_code=500}的 Tempo 跟踪记录”
集成使用
与 Claude Desktop 集成
- 打开 Claude Desktop 的配置文件。
- 添加以下内容到
mcpServers部分:
{
"tempo-mcp-server": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "TEMPO_URL=http://host.docker.internal:8080", "tempo-mcp-server:latest"]
}
}
- 保存文件并重启 Claude Desktop。
与 Cursor 集成
- 打开 Cursor 的设置。
- 添加以下内容到
mcpServers部分:
{
"tempo-mcp-server": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "TEMPO_URL=http://host.docker.internal:8080", "tempo-mcp-server:latest"]
}
}
- 保存设置。
与 n8n 集成
- 在 n8n 中添加一个 MCP 客户端工具 节点。
- 配置节点,如下所示:
- SSE 端点:
http://your-server-address:8080/sse - 身份验证:选择适当的认证方式
- 包含的工具:选择要暴露给 AI 代理的工具
- 将 MCP 客户端工具节点连接到支持的 AI 代理节点(如 Claude)。
📄 许可证
本项目在 MIT 许可证下发布。
微信扫一扫