Skip to main content

Tempo MCP Server Configuration

The TalkOps Tempo MCP Server supports single-backend and multi-backend configurations, multi-tenancy via X-Scope-OrgID, and strict TraceQL query guardrails.


Server & Transport Settings

VariableDefaultAllowed ValuesDescription
MCP_TRANSPORTstdiostdio, http, sse, streamable-httpCommunication protocol for MCP clients.
MCP_HOST0.0.0.0Valid IP AddressHost interface to bind for HTTP/SSE server.
MCP_PORT8768Valid TCP PortListening port for HTTP/SSE server.
MCP_PATH/mcpURL PathBase endpoint path for JSON-RPC endpoints.
MCP_LOG_LEVELINFODEBUG, INFO, WARNING, ERRORServer logging verbosity.
MCP_LOG_FORMATjsonjson, textStructured JSON or text log formatting.
MCP_HTTP_TIMEOUT300Integer (Seconds)Maximum client request duration before timing out.

Single Backend Configuration

VariableDefaultDescription
TEMPO_BASE_URLhttp://localhost:3200Grafana Tempo HTTP API base URL.
TEMPO_BACKEND_IDdefaultIdentifier for this backend instance.
TEMPO_DISPLAY_NAME(empty)Human-readable backend name.
TEMPO_TIMEOUT30Request timeout per query in seconds.
TEMPO_VERIFY_SSLtrueVerify SSL certificates for remote endpoints.
TEMPO_AUTH_HEADER(empty)Optional authorization header (e.g. Bearer <token>).

Multi-Tenancy & Headers

VariableDefaultDescription
TEMPO_MULTI_TENANTfalseEnable multi-tenant header injection.
TEMPO_DEFAULT_TENANT(empty)Default tenant identifier.
TEMPO_TENANT_HEADERX-Scope-OrgIDHTTP header name used for tenant identification.

Query Policies & Guardrails

VariableDefaultDescription
TEMPO_MAX_LOOKBACK168h (7 days)Maximum query lookback window.
TEMPO_DEFAULT_SEARCH_LIMIT20Default maximum traces returned per search.
TEMPO_MAX_SEARCH_LIMIT100Upper limit on traces returned per query.
TEMPO_DEFAULT_SPSS3Default spans per span-set.
TEMPO_MAX_SPSS10Maximum spans per span-set.
TEMPO_LLM_FORMATtrueEnable LLM-optimized trace format (Tempo 2.9+ application/vnd.grafana.llm).
TEMPO_MAX_METRICS_DURATION3hMaximum allowed TraceQL metrics query time range.

Kubernetes Deployment Example

apiVersion: apps/v1
kind: Deployment
metadata:
name: tempo-mcp-server
namespace: monitoring
labels:
app.kubernetes.io/name: tempo-mcp-server
app.kubernetes.io/part-of: talkops
spec:
replicas: 1
selector:
matchLabels:
app: tempo-mcp-server
template:
metadata:
labels:
app: tempo-mcp-server
spec:
containers:
- name: server
image: talkopsai/tempo-mcp-server:latest
imagePullPolicy: IfNotPresent
env:
- name: MCP_TRANSPORT
value: "http"
- name: MCP_PORT
value: "8768"
- name: TEMPO_BASE_URL
value: "http://tempo-query-frontend.monitoring:3200"
- name: TEMPO_MULTI_TENANT
value: "true"
- name: TEMPO_DEFAULT_TENANT
value: "production"
ports:
- containerPort: 8768
name: http-mcp
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi