项目简介
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 来查询和检索追踪数据。
安装步骤
- 安装 Go 环境: 确保您的系统已安装 Go 编程语言环境(推荐使用最新稳定版本)。您可以访问 https://go.dev/dl/ 下载安装。
- 克隆仓库: 打开终端,执行以下命令克隆项目代码库:
git clone https://github.com/serkan-ozal/jaeger-mcp-server.git - 进入项目目录:
cd jaeger-mcp-server - 构建服务器程序: 执行 Go 构建命令生成可执行文件:
构建成功后,会在当前目录下生成一个名为 'jaeger-mcp-server' 的可执行文件。go build -o jaeger-mcp-server ./main.go
服务器配置 (用于 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' 参数。具体参数含义请参考服务器的命令行帮助或源代码。
基本使用方法
- 启动 Jaeger: 确保您的 Jaeger 收集器和服务正在运行且可以通过配置的端点访问。
- 启动 Jaeger MCP 服务器: 在终端中运行您构建的 'jaeger-mcp-server' 可执行文件,并带上必要的配置参数(如监听地址和 Jaeger 端点)。
- 配置 MCP 客户端: 在您的 LLM 客户端或 MCP 客户端框架中,按照上述“服务器配置”说明,添加指向此 Jaeger MCP 服务器的配置。
- 客户端连接: 启动 MCP 客户端。客户端会根据配置尝试启动并连接到 Jaeger MCP 服务器。
- LLM 交互: 一旦连接建立,LLM 即可通过 MCP 协议向服务器发起请求,获取 Jaeger 相关的追踪数据作为上下文,或调用服务器注册的工具来执行查询等操作,从而增强其对分布式系统的理解能力。
信息
分类
开发者工具