项目简介

Jaeger MCP 服务器是一个基于 Model Context Protocol (MCP) 实现的应用后端,专门用于集成开源分布式追踪系统 Jaeger。它使得大型语言模型 (LLM) 客户端能够通过标准化的协议访问和利用 Jaeger 中的追踪数据。通过将追踪信息(如 Span、Trace)作为可用的“资源”暴露给 LLM,服务器为 LLM 应用提供了理解系统运行时状态的关键上下文。

主要功能点

  • 提供 Jaeger 数据资源: 将 Jaeger 中的分布式追踪、Span 详情等数据结构化后,以标准 MCP 资源的形式提供给 LLM 客户端按需获取。
  • 实现 MCP 协议: 完全遵循 Model Context Protocol 的规范,通过 JSON-RPC 协议处理来自 LLM 客户端的请求,包括资源获取、工具列表、工具执行、Prompt 渲染等。
  • 支持会话管理: 管理与不同客户端之间的会话状态,确保交互的连贯性。
  • 声明能力: 向客户端声明其提供的资源类型、工具和 Prompt 模板。
  • 集成 Jaeger API: 内部调用 Jaeger 的客户端或 API 来查询和检索追踪数据。

安装步骤

  1. 安装 Go 环境: 确保您的系统已安装 Go 编程语言环境(推荐使用最新稳定版本)。您可以访问 https://go.dev/dl/ 下载安装。
  2. 克隆仓库: 打开终端,执行以下命令克隆项目代码库:
    git clone https://github.com/serkan-ozal/jaeger-mcp-server.git
  3. 进入项目目录:
    cd jaeger-mcp-server
  4. 构建服务器程序: 执行 Go 构建命令生成可执行文件:
    go build -o jaeger-mcp-server ./main.go
    构建成功后,会在当前目录下生成一个名为 'jaeger-mcp-server' 的可执行文件。

服务器配置 (用于 MCP 客户端)

MCP 客户端需要知道如何启动并连接到此服务器。通常,您需要在 MCP 客户端的配置文件中添加一个条目,指定服务器的启动命令和参数。此服务器的启动命令通常是您构建的可执行文件路径,并接受一些命令行参数来配置监听地址和 Jaeger 服务端点。

以下是一个典型的 MCP 客户端配置片段(JSON 格式)的说明,用于描述如何连接到 Jaeger MCP 服务器:

// 这不是服务器的实际配置,而是 MCP 客户端用于启动和连接服务器的描述信息。
{
  "name": "jaeger-mcp-server", // 服务器的标识名称
  "command": "/path/to/your/jaeger-mcp-server", // 您构建的服务器可执行文件路径
  "args": [
    "--addr", "127.0.0.1:9900",  // MCP 服务器监听的 IP 地址和端口
    "--jaeger-grpc-endpoint", "localhost:14250", // Jaeger gRPC 收集器或查询服务的端点
    "--jaeger-collector-endpoint", "http://localhost:14268" // Jaeger HTTP 收集器或查询服务的端点 (根据实际需要配置)
    // 其他可能的服务器启动参数...
  ]
}

请根据您的实际情况替换 '"command"' 为 'jaeger-mcp-server' 可执行文件的完整路径,并根据您的 Jaeger 部署情况调整 '--addr' 和 Jaeger 相关的 '--jaeger-grpc-endpoint'、'--jaeger-collector-endpoint' 参数。具体参数含义请参考服务器的命令行帮助或源代码。

基本使用方法

  1. 启动 Jaeger: 确保您的 Jaeger 收集器和服务正在运行且可以通过配置的端点访问。
  2. 启动 Jaeger MCP 服务器: 在终端中运行您构建的 'jaeger-mcp-server' 可执行文件,并带上必要的配置参数(如监听地址和 Jaeger 端点)。
  3. 配置 MCP 客户端: 在您的 LLM 客户端或 MCP 客户端框架中,按照上述“服务器配置”说明,添加指向此 Jaeger MCP 服务器的配置。
  4. 客户端连接: 启动 MCP 客户端。客户端会根据配置尝试启动并连接到 Jaeger MCP 服务器。
  5. LLM 交互: 一旦连接建立,LLM 即可通过 MCP 协议向服务器发起请求,获取 Jaeger 相关的追踪数据作为上下文,或调用服务器注册的工具来执行查询等操作,从而增强其对分布式系统的理解能力。

信息

分类

开发者工具