Skip to main content
Glama
mshegolev

jaeger-mcp

by mshegolev

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JAEGER_URLNoJaeger query service URL, e.g. https://jaeger.example.com
JAEGER_TOKENNoBearer token (takes precedence over Basic auth)
JAEGER_PASSWORDNoHTTP Basic auth password
JAEGER_USERNAMENoHTTP Basic auth username
JAEGER_SSL_VERIFYNoSet false for self-signed certificatestrue

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
jaeger_list_servicesA

List all services that Jaeger has observed traces for.

Wraps GET /api/services. Jaeger returns all services at once — no pagination. Output is capped at 500 services with a truncation hint.

Use this first to discover valid service names before calling jaeger_list_operations or jaeger_search_traces.

Examples: - Use when: "What services does Jaeger know about?" → call with no parameters; read the services list. - Use when: "Is payment-service instrumented?" → check if payment-service appears in the services list. - Use when: Starting a debugging session — list services first, then pick one for jaeger_list_operations or jaeger_search_traces. - Don't use when: You already know the service name and want to search its traces (call jaeger_search_traces directly). - Don't use when: You want the dependency graph between services (call jaeger_get_dependencies).

Returns: dict with keys services_count / truncated / services.

jaeger_list_operationsA

List all operation names Jaeger has seen for a given service.

Wraps GET /api/services/{service}/operations. Useful for discovering which operation names to pass as filters to jaeger_search_traces. Output is capped at 500 operations.

Examples: - Use when: "What HTTP endpoints does order-service expose in tracing?" → service='order-service'. - Use when: You want to search for a specific slow operation but need the exact name — list operations first, then pass it to jaeger_search_traces. - Use when: Auditing which gRPC methods a service traces. - Don't use when: You don't have a specific service — start with jaeger_list_services first. - Don't use when: You want to search traces immediately (skip this step if you already know the operation name).

Returns: dict with service / operations_count / truncated / operations (sorted alphabetically).

jaeger_search_tracesA

Search Jaeger traces with rich filters.

Wraps GET /api/traces. Returns a list of trace summaries — use jaeger_get_trace to drill into a specific trace for span details.

The tags parameter accepts a JSON string so the LLM can construct arbitrary tag filters. Durations (min_duration/max_duration) are forwarded as-is to Jaeger (e.g. '100ms', '1.5s').

Examples: - Use when: "Show me recent 500 errors in order-service" → service='order-service', tags='{"http.status_code":"500"}'. - Use when: "Find slow traces (>1s) for checkout endpoint" → service='checkout', operation='POST /checkout', min_duration='1s'. - Use when: "Give me the last 5 traces in the last hour" → limit=5, set start to (now - 3600s) in microseconds. - Don't use when: You already have a traceID and want full details (call jaeger_get_trace directly — one fewer round trip). - Don't use when: You want service dependency topology (call jaeger_get_dependencies).

Returns: dict with service / operation / returned / truncated / traces (list of :class:TraceSummary).

jaeger_get_traceA

Retrieve full trace detail with all spans, service breakdown, and execution tree.

Wraps GET /api/traces/{traceID}. Returns every span in the trace, per-service statistics, and a flat execution tree (each node lists its child span IDs) that summarises the call hierarchy.

Error spans are identified by tags["error"] = "true".

Examples: - Use when: "Why is trace abc123... slow — show me the span breakdown" → trace_id='abc123...'; inspect services for the heaviest service and execution_tree for the call hierarchy. - Use when: "Which service caused the error in trace xyz...?" → check spans where is_error=true. - Use when: You found a slow/failed trace in jaeger_search_traces and need full detail. - Don't use when: You don't have a specific traceID — use jaeger_search_traces to find one first. - Don't use when: You only want aggregate data across many traces (use jaeger_search_traces with filters instead).

Returns: dict with trace_id / span_count / service_count / root_operation / root_service / start_time_us / total_duration_us / errors_count / services (per-service stats) / spans (all spans) / execution_tree.

jaeger_get_dependenciesA

Retrieve the service-to-service call graph from Jaeger.

Wraps GET /api/dependencies. Returns directed edges (parent → child) with call_count — the number of spans where parent called child in the lookback window.

Use this to understand service topology, find high fan-out services, or verify that a new service is connected as expected.

Examples: - Use when: "What services does order-service call?" → check edges where parent='order-service'. - Use when: "Map the full service dependency graph for the last 7 days" → lookback_hours=168. - Use when: "Which services are called most frequently?" → sort edges by call_count descending. - Don't use when: You want detailed span timings (use jaeger_search_traces + jaeger_get_trace instead). - Don't use when: You need real-time data — Jaeger's dependency graph is aggregated and may lag by minutes.

Returns: dict with end_ts_us / lookback_hours / edge_count / edges (list of {parent, child, call_count}).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mshegolev/jaeger-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server