---
title: "Jaeger Telemetry MCP Server: review, setup & limitations · Undominated.ai"
canonical: https://undominated.ai/mcp-servers/jaeger/
description: "In-tree Jaeger query service MCP server exposing OpenTelemetry distributed tracing queries over Streamable HTTP and SSE."
---

# Jaeger Telemetry MCP Server: review, setup & limitations · Undominated.ai

> In-tree Jaeger query service MCP server exposing OpenTelemetry distributed tracing queries over Streamable HTTP and SSE.

[← Explore all mcp servers](/mcp-servers/)

OBSERVABILITY / CNCF Jaeger Project

# Jaeger Telemetry MCP Server

In-tree Jaeger query service MCP server exposing OpenTelemetry distributed tracing queries over Streamable HTTP and SSE.

 [See setup guidance ↓](#setup)[Original source ↗](https://github.com/jaegertracing/jaeger)

SOURCE REVIEW

 Reviewed 2026-10-14
 Evidence 5 linked sources
 Publisher CNCF Jaeger Project
 Licence [Apache-2.0 ↗](https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/LICENSE)
 Revision 2dbe46862ac1
 [Read what was—and wasn’t—checked ↓](#review)

“Jaeger telemetry MCP server providing distributed tracing inspection tools directly from jaeger-query.”

 [CNCF Jaeger Project · upstream description ↗](https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/server.go) Our analysis follows below.

01 / THE REASONING

## Why this made the selection.

 - Official CNCF OpenTelemetry tracing server exposing 9 dedicated read tools (search_traces, get_services, get_span_details, get_trace_errors, get_trace_topology, get_critical_path, get_dependencies) with zero write or mutation methods.
- Mounts natively on jaeger-query's mux under /api/ai/mcp/ via Streamable HTTP without requiring an external proxy or container shim.
- The pinned file is Jaeger's telemetry MCP adapter over an existing QueryService, served as streamable HTTP when a caller mounts the handler.
- Search results are summaries, and the topology tool omits span attributes, events, and links.

### A good fit for

 - Find trace summaries, then inspect only relevant spans and critical-path timing.
- Compare error-span count with returned details before interpreting a truncated incident sample.
- Inspecting services and traces already stored in a Jaeger query service

### Weigh up before choosing

 - The root LICENSE contains an unfilled Apache appendix template, but source headers explicitly declare Copyright (c) 2026 The Jaeger Authors under Apache-2.0.
- Requires enabling the ai.mcp configuration block in Jaeger v2 (ai: mcp: {}); default builds without this config do not mount the endpoint.
- The previous Docker 2.0.0/--ai.mcp.enabled=true command was not supported by the inspected source and has been removed; this review establishes current source integration, not a verified historical release launcher.
- The MCP handler shares the query server listener and applies tenant extraction. It does not itself establish a separate authenticated public service.
- Search returns lightweight summaries, topology omits attributes, and error-span details can be truncated. Compare total counts before treating a sample as exhaustive.

02 / THE REVIEW RECORD

## What we actually inspected.

Source review has boundaries. A clear record is more useful than a “safe” badge.

### Material inspected

 - cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/server.go
- cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/mcptools-config.go
- LICENSE
- 2026-10-14 reread of retained pinned setup/configuration evidence for the specific operational details added in this batch.
- cmd/jaeger/internal/extension/jaegerquery/internal/server.go
- cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/config.go

### Our findings

 - Source files declare Copyright (c) 2026 The Jaeger Authors, SPDX-License-Identifier: Apache-2.0.
- Tool handlers call in-process QueryService read methods directly and mount no file-write or mutating tools.
- Additional query-server integration mounts MCP whenever ai.mcp is configured, independently of ai.agent_url. The shared handler owns sessions and a five-minute idle timeout; stopping a client is not an authentication boundary.
- The tools wrap a QueryService and are exposed over streamable HTTP. NewHandler does not bind a listener; the caller mounts the handler.
- search_traces returns lightweight summaries without individual spans or attributes. get_trace_topology does not include attributes, events, or links.
- get_trace_errors may truncate to the server limit. read_skill serves embedded playbooks and is not a trace query.

### Not established by this review

 - Server compilation and live trace query RPCs were not run.
- Authentication bearer token forwarding was not tested.
- No authenticated session, installation, permission bypass or package-to-source parity test was performed.
- The server was not started and its tools were not called.
- A pin does not verify transitive dependencies.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

## Connect a server deliberately.

[Upstream setup instructions ↗](https://github.com/jaegertracing/jaeger)
 - Use a Jaeger build containing the reviewed query MCP integration and a configured trace store; no compatibility with the old 2.0.0 image is established here.
- Configure ai.mcp under the jaeger_query extension, then connect to the query-server base path plus /api/ai/mcp/.
- Protect the query endpoint and tenant identity, then begin with bounded trace search and progressively fetch details.

### Before you start

 - Docker or a compiled Jaeger v2 binary
- Active trace store containing OpenTelemetry span data

### Documented configuration example

Use the client and authentication context described in the setup guidance. Configuration formats vary between hosts.

 {
 "mcpServers": {
 "jaeger": {
 "type": "http",
 "url": "http://127.0.0.1:16686/api/ai/mcp/"
 }
 }
} Copy configuration ↗

### Compatibility

MCP clients supporting Streamable HTTP or SSE transports · Jaeger v2 / OpenTelemetry distributed tracing backend

### Implementation

Go

### Transports

Streamable HTTP · SSE

### Jaeger Query Service in-process read tools

 - Read distributed traces and service dependency graphs
- No write or mutation capability

### Cost model

Apache-2.0 open source at no charge. Self-hosted compute costs apply.

04 / FOLLOW THE EVIDENCE

## The source trail.

Our notes are separate from the original resource. Check upstream before adopting a new version.

 - [Jaeger MCP tools server implementation ↗](https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/server.go) Checked 2026-10-14 https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/server.go Supports: summary, transports, whySelected, bestFor, limitations, install, configExample, access, review, compatibility
- [Jaeger repository license ↗](https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/LICENSE) Checked 2026-10-07 https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/LICENSE Supports: license
- [Additional pinned implementation/setup ↗](https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/server.go) Checked 2026-10-14 https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/server.go Supports: summary, install, configExample, access, limitations, bestFor, review, compatibility, transports
- [Additional pinned implementation/setup ↗](https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/config.go) Checked 2026-10-14 https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/config.go Supports: summary, install, configExample, access, limitations, bestFor, review, compatibility, transports
- [Jaeger MCP tools server implementation ↗](https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/server.go) Checked 2026-10-07 https://github.com/jaegertracing/jaeger/blob/2dbe46862ac14ecfb3b1ea9f511f3d9a83ac7b0d/cmd/jaeger/internal/extension/jaegerquery/internal/mcptools/server.go Supports: summary, transports, whySelected, bestFor, limitations

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### Apache SkyWalking MCP Server ↗ Queries a SkyWalking OAP you already run. The inspected install builds a local image; it does not pull a published one.](/mcp-servers/apache-skywalking-mcp/)[### Honeycomb MCP ↗ Explore production telemetry and save investigations in Honeycomb, with additional write scope for operational changes.](/mcp-servers/honeycomb/)[### Logfire MCP ↗ Connects assistants to Logfire traces, metrics and observability management tools in the chosen region.](/mcp-servers/logfire/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Inspect resource evidence](/tools/)
- [Choose a host](/agents/)
- [Inspect reusable workflows](/skills/)
- [Use Undominated data](/api/)
