Jaeger · Capability

Jaeger Query API

The Jaeger Query API provides HTTP endpoints for retrieving trace data, service information, operations, and dependency graphs from the Jaeger distributed tracing backend. This API is exposed by the jaeger-query component and is used by the Jaeger UI and other clients to search and retrieve distributed traces collected across microservices.

Run with Naftiko JaegerAPI

What You Can Do

GET
Searchtraces — Search traces
/api/traces
GET
Gettrace — Get a trace by ID
/api/traces/{traceID}
GET
Getservices — Get all services
/api/services
GET
Getoperations — Get operations for a service
/api/services/{service}/operations
GET
Getdependencies — Get service dependency graph
/api/dependencies
GET
Getlatencymetrics — Get latency metrics
/api/metrics/latencies
GET
Getcallmetrics — Get call rate metrics
/api/metrics/calls
GET
Geterrormetrics — Get error rate metrics
/api/metrics/errors
GET
Getminstep — Get minimum step duration
/api/metrics/minstep

MCP Tools

searchtraces

Search traces

read-only idempotent
gettrace

Get a trace by ID

read-only idempotent
getservices

Get all services

read-only idempotent
getoperations

Get operations for a service

read-only idempotent
getdependencies

Get service dependency graph

read-only idempotent
getlatencymetrics

Get latency metrics

read-only idempotent
getcallmetrics

Get call rate metrics

read-only idempotent
geterrormetrics

Get error rate metrics

read-only idempotent
getminstep

Get minimum step duration

read-only idempotent

Capability Spec

jaeger-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Jaeger Query API
  description: The Jaeger Query API provides HTTP endpoints for retrieving trace data, service information, operations, and
    dependency graphs from the Jaeger distributed tracing backend. This API is exposed by the jaeger-query component and is
    used by the Jaeger UI and other clients to search and retrieve distributed traces collected across microservices.
  tags:
  - Jaeger
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: jaeger
    baseUri: http://localhost:16686
    description: Jaeger Query API HTTP API.
    resources:
    - name: api-traces
      path: /api/traces
      operations:
      - name: searchtraces
        method: GET
        description: Search traces
        inputParameters:
        - name: service
          in: query
          type: string
          required: true
          description: The service name to filter traces by.
        - name: operation
          in: query
          type: string
          description: The operation name to filter traces by.
        - name: tags
          in: query
          type: string
          description: Tags to filter by in JSON format, e.g. {"http.status_code":"200"}.
        - name: start
          in: query
          type: integer
          description: Start time as Unix microseconds.
        - name: end
          in: query
          type: integer
          description: End time as Unix microseconds.
        - name: minDuration
          in: query
          type: string
          description: Minimum trace duration filter, specified as a duration string (e.g. 1.2s, 100ms, 500us).
        - name: maxDuration
          in: query
          type: string
          description: Maximum trace duration filter, specified as a duration string (e.g. 1.2s, 100ms, 500us).
        - name: limit
          in: query
          type: integer
          description: Maximum number of traces to return.
        - name: lookback
          in: query
          type: string
          description: How far back to search for traces, specified as a duration string (e.g. 1h, 2d). Only used if start
            and end are not set.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-traces-traceid
      path: /api/traces/{traceID}
      operations:
      - name: gettrace
        method: GET
        description: Get a trace by ID
        inputParameters:
        - name: traceID
          in: path
          type: string
          required: true
          description: The trace ID in hexadecimal format (16 or 32 hex characters).
        - name: raw
          in: query
          type: boolean
          description: Return raw trace data without post-processing.
        - name: prettyPrint
          in: query
          type: boolean
          description: Pretty-print the JSON response.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-services
      path: /api/services
      operations:
      - name: getservices
        method: GET
        description: Get all services
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-services-service-operations
      path: /api/services/{service}/operations
      operations:
      - name: getoperations
        method: GET
        description: Get operations for a service
        inputParameters:
        - name: service
          in: path
          type: string
          required: true
          description: The service name.
        - name: spanKind
          in: query
          type: string
          description: Filter operations by span kind (e.g. server, client, producer, consumer).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-dependencies
      path: /api/dependencies
      operations:
      - name: getdependencies
        method: GET
        description: Get service dependency graph
        inputParameters:
        - name: endTs
          in: query
          type: integer
          required: true
          description: End timestamp in Unix milliseconds.
        - name: lookback
          in: query
          type: integer
          required: true
          description: Duration to look back from endTs in milliseconds.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-metrics-latencies
      path: /api/metrics/latencies
      operations:
      - name: getlatencymetrics
        method: GET
        description: Get latency metrics
        inputParameters:
        - name: service
          in: query
          type: string
          required: true
          description: The service name.
        - name: quantile
          in: query
          type: number
          required: true
          description: The quantile to retrieve (e.g. 0.5, 0.75, 0.95, 0.99).
        - name: endTs
          in: query
          type: integer
          description: End timestamp in Unix milliseconds.
        - name: lookback
          in: query
          type: integer
          description: Duration to look back in milliseconds.
        - name: step
          in: query
          type: integer
          description: Step duration for bucketing in milliseconds.
        - name: ratePer
          in: query
          type: integer
          description: Rate normalization duration in milliseconds.
        - name: spanKind
          in: query
          type: string
          description: Filter by span kind.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-metrics-calls
      path: /api/metrics/calls
      operations:
      - name: getcallmetrics
        method: GET
        description: Get call rate metrics
        inputParameters:
        - name: service
          in: query
          type: string
          required: true
          description: The service name.
        - name: endTs
          in: query
          type: integer
          description: End timestamp in Unix milliseconds.
        - name: lookback
          in: query
          type: integer
          description: Duration to look back in milliseconds.
        - name: step
          in: query
          type: integer
          description: Step duration for bucketing in milliseconds.
        - name: ratePer
          in: query
          type: integer
          description: Rate normalization duration in milliseconds.
        - name: spanKind
          in: query
          type: string
          description: Filter by span kind.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-metrics-errors
      path: /api/metrics/errors
      operations:
      - name: geterrormetrics
        method: GET
        description: Get error rate metrics
        inputParameters:
        - name: service
          in: query
          type: string
          required: true
          description: The service name.
        - name: endTs
          in: query
          type: integer
          description: End timestamp in Unix milliseconds.
        - name: lookback
          in: query
          type: integer
          description: Duration to look back in milliseconds.
        - name: step
          in: query
          type: integer
          description: Step duration for bucketing in milliseconds.
        - name: ratePer
          in: query
          type: integer
          description: Rate normalization duration in milliseconds.
        - name: spanKind
          in: query
          type: string
          description: Filter by span kind.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-metrics-minstep
      path: /api/metrics/minstep
      operations:
      - name: getminstep
        method: GET
        description: Get minimum step duration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: jaeger-rest
    description: REST adapter for Jaeger Query API.
    resources:
    - path: /api/traces
      name: searchtraces
      operations:
      - method: GET
        name: searchtraces
        description: Search traces
        call: jaeger.searchtraces
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/traces/{traceID}
      name: gettrace
      operations:
      - method: GET
        name: gettrace
        description: Get a trace by ID
        call: jaeger.gettrace
        with:
          traceID: rest.traceID
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/services
      name: getservices
      operations:
      - method: GET
        name: getservices
        description: Get all services
        call: jaeger.getservices
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/services/{service}/operations
      name: getoperations
      operations:
      - method: GET
        name: getoperations
        description: Get operations for a service
        call: jaeger.getoperations
        with:
          service: rest.service
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/dependencies
      name: getdependencies
      operations:
      - method: GET
        name: getdependencies
        description: Get service dependency graph
        call: jaeger.getdependencies
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/metrics/latencies
      name: getlatencymetrics
      operations:
      - method: GET
        name: getlatencymetrics
        description: Get latency metrics
        call: jaeger.getlatencymetrics
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/metrics/calls
      name: getcallmetrics
      operations:
      - method: GET
        name: getcallmetrics
        description: Get call rate metrics
        call: jaeger.getcallmetrics
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/metrics/errors
      name: geterrormetrics
      operations:
      - method: GET
        name: geterrormetrics
        description: Get error rate metrics
        call: jaeger.geterrormetrics
        outputParameters:
        - type: object
          mapping: $.
    - path: /api/metrics/minstep
      name: getminstep
      operations:
      - method: GET
        name: getminstep
        description: Get minimum step duration
        call: jaeger.getminstep
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: jaeger-mcp
    transport: http
    description: MCP adapter for Jaeger Query API for AI agent use.
    tools:
    - name: searchtraces
      description: Search traces
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.searchtraces
      with:
        service: tools.service
        operation: tools.operation
        tags: tools.tags
        start: tools.start
        end: tools.end
        minDuration: tools.minDuration
        maxDuration: tools.maxDuration
        limit: tools.limit
        lookback: tools.lookback
      inputParameters:
      - name: service
        type: string
        description: The service name to filter traces by.
        required: true
      - name: operation
        type: string
        description: The operation name to filter traces by.
      - name: tags
        type: string
        description: Tags to filter by in JSON format, e.g. {"http.status_code":"200"}.
      - name: start
        type: integer
        description: Start time as Unix microseconds.
      - name: end
        type: integer
        description: End time as Unix microseconds.
      - name: minDuration
        type: string
        description: Minimum trace duration filter, specified as a duration string (e.g. 1.2s, 100ms, 500us).
      - name: maxDuration
        type: string
        description: Maximum trace duration filter, specified as a duration string (e.g. 1.2s, 100ms, 500us).
      - name: limit
        type: integer
        description: Maximum number of traces to return.
      - name: lookback
        type: string
        description: How far back to search for traces, specified as a duration string (e.g. 1h, 2d). Only used if start and
          end are not set.
      outputParameters:
      - type: object
        mapping: $.
    - name: gettrace
      description: Get a trace by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.gettrace
      with:
        traceID: tools.traceID
        raw: tools.raw
        prettyPrint: tools.prettyPrint
      inputParameters:
      - name: traceID
        type: string
        description: The trace ID in hexadecimal format (16 or 32 hex characters).
        required: true
      - name: raw
        type: boolean
        description: Return raw trace data without post-processing.
      - name: prettyPrint
        type: boolean
        description: Pretty-print the JSON response.
      outputParameters:
      - type: object
        mapping: $.
    - name: getservices
      description: Get all services
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.getservices
      outputParameters:
      - type: object
        mapping: $.
    - name: getoperations
      description: Get operations for a service
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.getoperations
      with:
        service: tools.service
        spanKind: tools.spanKind
      inputParameters:
      - name: service
        type: string
        description: The service name.
        required: true
      - name: spanKind
        type: string
        description: Filter operations by span kind (e.g. server, client, producer, consumer).
      outputParameters:
      - type: object
        mapping: $.
    - name: getdependencies
      description: Get service dependency graph
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.getdependencies
      with:
        endTs: tools.endTs
        lookback: tools.lookback
      inputParameters:
      - name: endTs
        type: integer
        description: End timestamp in Unix milliseconds.
        required: true
      - name: lookback
        type: integer
        description: Duration to look back from endTs in milliseconds.
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getlatencymetrics
      description: Get latency metrics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.getlatencymetrics
      with:
        service: tools.service
        quantile: tools.quantile
        endTs: tools.endTs
        lookback: tools.lookback
        step: tools.step
        ratePer: tools.ratePer
        spanKind: tools.spanKind
      inputParameters:
      - name: service
        type: string
        description: The service name.
        required: true
      - name: quantile
        type: number
        description: The quantile to retrieve (e.g. 0.5, 0.75, 0.95, 0.99).
        required: true
      - name: endTs
        type: integer
        description: End timestamp in Unix milliseconds.
      - name: lookback
        type: integer
        description: Duration to look back in milliseconds.
      - name: step
        type: integer
        description: Step duration for bucketing in milliseconds.
      - name: ratePer
        type: integer
        description: Rate normalization duration in milliseconds.
      - name: spanKind
        type: string
        description: Filter by span kind.
      outputParameters:
      - type: object
        mapping: $.
    - name: getcallmetrics
      description: Get call rate metrics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.getcallmetrics
      with:
        service: tools.service
        endTs: tools.endTs
        lookback: tools.lookback
        step: tools.step
        ratePer: tools.ratePer
        spanKind: tools.spanKind
      inputParameters:
      - name: service
        type: string
        description: The service name.
        required: true
      - name: endTs
        type: integer
        description: End timestamp in Unix milliseconds.
      - name: lookback
        type: integer
        description: Duration to look back in milliseconds.
      - name: step
        type: integer
        description: Step duration for bucketing in milliseconds.
      - name: ratePer
        type: integer
        description: Rate normalization duration in milliseconds.
      - name: spanKind
        type: string
        description: Filter by span kind.
      outputParameters:
      - type: object
        mapping: $.
    - name: geterrormetrics
      description: Get error rate metrics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.geterrormetrics
      with:
        service: tools.service
        endTs: tools.endTs
        lookback: tools.lookback
        step: tools.step
        ratePer: tools.ratePer
        spanKind: tools.spanKind
      inputParameters:
      - name: service
        type: string
        description: The service name.
        required: true
      - name: endTs
        type: integer
        description: End timestamp in Unix milliseconds.
      - name: lookback
        type: integer
        description: Duration to look back in milliseconds.
      - name: step
        type: integer
        description: Step duration for bucketing in milliseconds.
      - name: ratePer
        type: integer
        description: Rate normalization duration in milliseconds.
      - name: spanKind
        type: string
        description: Filter by span kind.
      outputParameters:
      - type: object
        mapping: $.
    - name: getminstep
      description: Get minimum step duration
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: jaeger.getminstep
      outputParameters:
      - type: object
        mapping: $.