关于 Jaeger MCP Server
Jaeger MCP Server 将 MCP 客户端连接到 Jaeger 实例以查询追踪数据,面向排查服务与分布式追踪的开发者。
主要功能
- 01列出 Jaeger 服务
- 02按服务获取操作
- 03按追踪 ID 获取 spans
- 04按时间和属性搜索追踪
适用场景
- 01查找某服务在指定时间段内的追踪
- 02检查已知追踪 ID 对应的 spans
MCP 相关
向 MCP 客户端提供列出服务和操作、获取追踪及搜索追踪的工具。使用 STDIO 传输,并通过 HTTP 或 gRPC 连接 Jaeger。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| service | string | 是 | 按服务名称筛选操作(必填) |
| spanKind | enum | 否 | 按 OpenTelemetry span kind 筛选操作("server"、"client"、"producer"、"consumer"、"internal")(可选) | server | client | producer | consumer | internal |
详细介绍
Jaeger MCP 服务
适用于 Jaeger 的 MCP 服务。
前提条件
- Node.js 18+
快速开始
此 MCP 服务(使用 STDIO 传输)可通过 jaeger-mcp-server NPM 包添加到 VS Code、Claude、Cursor、Windsurf Github Copilot 等任意 MCP 客户端。
VS Code
{
"servers": {
"jaeger-mcp-server": {
"command": "npx",
"args": ["-y", "jaeger-mcp-server"],
"envFile": "${workspaceFolder}/.env"
}
}
}
Claude Desktop
{
"mcpServers": {
"jaeger-mcp-server": {
"command": "npx",
"args": ["-y", "jaeger-mcp-server"],
"env": {
"JAEGER_URL": "<YOUR_JAEGER_HTTP_OR_GRPC_API_URL>"
}
}
}
}
配置
环境变量
JAEGER_URL:要访问的 Jaeger 实例的 HTTP API(HTTP JSON(/api/v3/*))或 gRPC API(gRPC/Protobuf(jaeger.api_v3.QueryService))URL。JAEGER_PORT:要访问的 Jaeger 实例的 HTTP 或 gRPC API 端口。gRPC API 的默认值为16685,HTTP API 的默认值为16686。JAEGER_AUTHORIZATION_HEADER:查询 Jaeger API 上的跟踪时要添加到请求中的AuthorizationHTTP 标头(例如Basic <Basic Auth Header>)JAEGER_PROTOCOL:要访问的 Jaeger 实例的 API 协议。有效值为GRPC和HTTP。默认值为GRPC。有效
组件
工具
get-operations:以 JSON 对象数组的形式获取操作,每个对象包含name和spanKind属性。 支持以下输入参数:service:Mandatory:trueType:stringDescription:按服务名称筛选操作
spanKind:Mandatory:falseType:stringDescription:按 OpenTelemetry Span 类型(server、client、producer、consumer、internal)筛选操作
get-services:以 JSON 字符串数组的形式获取服务名称。 不支持输入参数。get-trace:按给定的跟踪 ID 获取 Span,并以 OpenTelemetry 资源 Span 格式的 JSON 对象数组形式返回。traceId:Mandatory:trueType:stringDescription:按兼容 OpenTelemetry 的跟踪 ID 筛选 Span,格式为 32 个字符的十六进制字符串
startTime:Mandatory:falseType:stringDescription:筛选 Span 的开始时间,格式遵循 RFC 3339 第 5.6 节(例如2017-07-21T17:32:28Z)
endTime:Mandatory:falseType:stringDescription:筛选 Span 的结束时间,格式遵循 RFC 3339 第 5.6 节(例如2017-07-21T17:32:28Z)
find-traces:搜索 Span,并以 OpenTelemetry 资源 Span 格式的 JSON 对象数组形式返回。serviceName:Mandatory:trueType:stringDescription:按兼容 OpenTelemetry 的跟踪 ID 筛选 Span,格式为 32 个字符的十六进制字符串
operationName:Mandatory:falseType:stringDescription:筛选 Span 的开始时间,格式遵循 RFC 3339 第 5.6 节(例如2017-07-21T17:32:28Z)
attributes:Mandatory:falseType:map<string, string | number | boolean>Description:按 Span 属性筛选 Span。属性可在 JSON 中以键值格式传入, 键可以是字符串,值可以是字符串、数字(整数或双精度数)或布尔值。 例如{ "stringAttribute": "str", "integerAttribute": 123, "doubleAttribute": 123.456, "booleanAttribute": true, }
startTimeMin:Mandatory:trueType:stringDescription:查询时间区间的起始时间(包含),格式遵循 RFC 3339 第 5.6 节(例如,2017-07-21T17:32:28Z)。 只返回包含在此时间或之后开始的跨度的追踪。
startTimeMax:Mandatory:trueType:stringDescription:查询时间区间的结束时间(不包含),格式遵循 RFC 3339 第 5.6 节(例如,2017-07-21T17:32:28Z)。 只返回包含在此时间之前开始的跨度的追踪。
durationMin:Mandatory:falseType:stringDescription:追踪中跨度的最短持续时间,单位为毫秒。 只返回持续时间至少达到此值的跨度所在的追踪。
durationMax:Mandatory:falseType:stringDescription:追踪中跨度的最长持续时间,单位为毫秒。 只返回持续时间不超过此值的跨度所在的追踪。
searchDepth:Mandatory:falseType:numberDescription:定义最大搜索深度。 根据后端存储实现,此参数的行为可能类似于 SQLLIMIT子句。 不过,某些实现可能不支持精确限制, 且较大的值通常会返回更多追踪。
资源
不适用
路线图
- 支持
HTTP Stream传输协议(SSE传输协议已弃用,由该协议取代),以便从远程使用 MCP 服务。 - 支持更多无法通过 Jaeger API 直接使用的工具(编排和流水线处理多个 API 端点)
问题与反馈
如需报告错误、请求功能或寻求支持,请使用 GitHub Issues。
贡献
如果您想参与贡献,请:
- 在 GitHub 上 Fork 此仓库,并克隆您的 Fork。
- 为您的更改创建分支,并在该分支上进行修改。
- 提交拉取请求,并清楚说明您的贡献内容。
提示: 请检查现有拉取请求,看看是否有类似的贡献, 并考虑在编写代码前提交问题,以讨论提议的功能。
许可证
采用 MIT 许可证。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。