Confirm Tempo is deployed with the query-frontend component exposed and note the base URL and authentication requirements
Search for traces via POST to '/api/search' with JSON body containing 'q' (a TraceQL expression), 'start' and 'end' (Unix epoch seconds), and 'limit' for result count
Construct a TraceQL expression to filter spans: '{ span.http.status_code = 500 }' returns traces containing spans with that attribute; '{ duration > 2s }' filters by span duration
Fetch a full trace by trace ID via GET to '/api/traces/{traceID}' which returns the trace in OTLP JSON format with all spans and resource attributes
Use '/api/search/tags' to discover available tag names and '/api/search/tag/{tag_name}/values' to see values before building TraceQL queries
Known gotchas
TraceQL span attribute names use dot notation matching OTLP semantic conventions (e.g. 'span.http.target'); using underscore-separated names common in other systems returns no matches
Tempo search requires a backend that supports search (e.g. Parquet-based block format); older block formats created before enabling search do not become searchable retroactively
The /api/search endpoint has a configurable maximum duration window; queries spanning very long time ranges may be rejected or return only partial results depending on Tempo's search configuration
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp