Tempo MCP Server

Tempo MCP Server

用于 Grafana Tempo 的 MCP (模型上下文协议) 服务器

scottlepp

开发者工具
访问服务器

README

Tempo MCP 服务器

一个基于 Go 的服务器实现,用于支持集成 Grafana Tempo 的模型上下文协议 (MCP)。

概述

此 MCP 服务器允许 AI 助手查询和分析来自 Grafana Tempo 的分布式追踪数据。它遵循模型上下文协议,以提供可由兼容的 AI 客户端(如 Claude Desktop)使用的工具定义。

快速开始

前提条件

  • Go 1.21 或更高版本
  • Docker 和 Docker Compose(用于本地测试)

构建和运行

构建并运行服务器:

# 构建服务器
go build -o tempo-mcp-server ./cmd/server

# 运行服务器
./tempo-mcp-server

或者直接使用 Go 运行:

go run ./cmd/server

服务器使用 stdin/stdout 进行通信,遵循模型上下文协议 (MCP)。 这使其适合与 Claude Desktop 和其他 MCP 兼容的客户端一起使用。 它不作为 HTTP 服务器在端口上运行。

Docker 支持

您可以使用 Docker 构建和运行 MCP 服务器:

# 构建 Docker 镜像
docker build -t tempo-mcp-server .

# 运行服务器
docker run --rm -i tempo-mcp-server

或者,您可以使用 Docker Compose 来获得完整的测试环境:

# 使用 Docker Compose 构建和运行
docker-compose up --build

项目结构

.
├── cmd/
│   ├── server/       # MCP 服务器实现
│   └── client/       # 用于测试 MCP 服务器的客户端
├── internal/
│   └── handlers/     # 工具处理程序
├── pkg/
│   └── utils/        # 实用函数和共享代码
└── go.mod            # Go 模块定义

MCP 服务器

Tempo MCP 服务器实现了模型上下文协议 (MCP) 并提供以下工具:

Tempo 查询工具

tempo_query 工具允许您查询 Grafana Tempo 追踪数据:

  • 必需参数:
    • query: Tempo 查询字符串(例如,{service.name="frontend"}{duration>1s}
  • 可选参数:
    • url: Tempo 服务器 URL(默认:来自 TEMPO_URL 环境变量或 http://localhost:3200)
    • start: 查询的开始时间(默认:1 小时前)
    • end: 查询的结束时间(默认:现在)
    • limit: 要返回的最大追踪数(默认:20)
    • username: 用于基本身份验证的用户名(可选)
    • password: 用于基本身份验证的密码(可选)
    • token: 用于身份验证的 Bearer 令牌(可选)

环境变量

Tempo 查询工具支持以下环境变量:

  • TEMPO_URL: 如果请求中未指定,则使用的默认 Tempo 服务器 URL

测试

./run-client.sh tempo_query "{resource.service.name=\\\"example-service\\\"}"

与 Claude Desktop 一起使用

您可以将此 MCP 服务器与 Claude Desktop 一起使用,以添加 Tempo 查询工具。 请按照以下步骤操作:

  1. 构建服务器或 Docker 镜像
  2. 通过将其添加到您的 Claude Desktop 配置文件,配置 Claude Desktop 以使用该服务器

Claude Desktop 配置示例:

{
  "mcpServers": {
    "temposerver": {
      "command": "path/to/tempo-mcp-server",
      "args": [],
      "env": {
        "TEMPO_URL": "http://localhost:3200"
      },
      "disabled": false,
      "autoApprove": ["tempo_query"]
    }
  }
}

对于 Docker:

{
  "mcpServers": {
    "temposerver": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "TEMPO_URL=http://host.docker.internal:3200", "tempo-mcp-server"],
      "disabled": false,
      "autoApprove": ["tempo_query"]
    }
  }
}

Claude Desktop 配置文件位于:

  • 在 macOS 上:~/Library/Application Support/Claude/claude_desktop_config.json
  • 在 Windows 上:%APPDATA%\Claude\claude_desktop_config.json
  • 在 Linux 上:~/.config/Claude/claude_desktop_config.json

与 Cursor 一起使用

您还可以将 Tempo MCP 服务器与 Cursor 编辑器集成。 为此,请将以下配置添加到您的 Cursor 设置:

{
  "mcpServers": {
    "tempo-mcp-server": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "TEMPO_URL=http://host.docker.internal:3200", "tempo-mcp-server:latest"]
    }
  }
}

使用示例

配置完成后,您可以在 Claude 中使用这些工具进行如下查询:

  • "使用查询 {duration>1s} 查询 Tempo 中的追踪"
  • "使用查询 {service.name=\"frontend\"} 在 Tempo 中查找来自前端服务的追踪"
  • "向我展示 Tempo 中最近的 50 个追踪,其中 {http.status_code=500}"

<img width="991" alt="Screenshot 2025-04-11 at 5 24 03 PM" src="https://github.com/user-attachments/assets/bcb1fb78-5532-48ab-ada2-4857f6f22514" />

许可证

本项目采用 MIT 许可证。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript