MCP Observability: How to Trace Every Tool Call in Production
๐ TL;DR MCP observability means seeing the full path from a prompt, through the model's tool choice, into your server, and back. The 2026-07-28 spec deprecated protocol-level Logging , along with Roots, Sampling and HTTP+SSE, on a twelve-month clock. OpenTelemetry's GenAI semantic conventions now include a dedicated MCP section with defined spans, attributes and metrics. Trace context travels inโฆ
MCP observability refers to seeing the entire path from a user's prompt, through the model's tool selection, into your server, and back again. This was made more challenging when the 2026-07-28 version of the Model Context Protocol (MCP) deprecated protocol-level Logging. To remedy this, OpenTelemetry's GenAI semantic conventions now include a dedicated section for MCP with defined spans, attributes, and metrics.
Trace context travels through the params._meta in a specific format using unprefixed traceparent, tracestate, and baggage keys. The MCP client span is always the parent span of the server span, regardless of the transport used. This ensures that even if a tool call fails in production, there is enough signal to trace the full path and identify the issue.
Written by urgent.news from Dev.to's reporting โ not their text. Machine-written โ may contain errors; check the original before relying on it.