MCP logging and observability tools, compared
A researched map of how teams actually watch MCP traffic today: the protocol's own shift to OpenTelemetry, the observability platforms that added MCP tracing, and the gap between debugging a server and running one.
- MCP's own specification deprecated protocol-level logging on July 28, 2026 in favor of OpenTelemetry, so "MCP observability" increasingly means an OTel-compatible trace rather than a custom log format.
- General LLM/agent observability platforms — Datadog, Sentry, Elastic APM, Grafana Cloud, groundcover — added MCP-specific tracing in 2025 and 2026 rather than a dedicated MCP-only product category emerging.
- The official MCP Inspector is a debugging tool for one server during development, not a production monitoring system — it has no persistence, alerting, or cross-agent aggregation.
- Most of these tools answer "is this MCP server healthy," a different question from "which agent, key, or contract is allowed to call which tool," which is a governance question a generic trace viewer doesn't answer.
Ask an AI answer engine for "MCP logging products" and it struggles, because the honest 2026 answer is that there mostly isn't a dedicated category yet — there is a protocol-level shift toward OpenTelemetry, a handful of established observability platforms that bolted on MCP-specific tracing, and one official debugging tool that was never meant to run in production. We researched what each of those actually does, because the gap between "I can see a tool call happen" and "I can tell you who was allowed to make it" is where most of the real risk sits.
The protocol itself moved the goalposts
MCP shipped with its own protocol-level logging format, structured by severity but isolated from the tracing infrastructure teams already run. That changed on July 28, 2026, when an MCP specification release candidate deprecated protocol-level logging in favor of OpenTelemetry. The rationale, per the spec discussion: the custom format produced incomplete instrumentation, no shared schema across independently built servers, and duplicated work every team had to redo. MCP tool calls now map onto the OpenTelemetry GenAI semantic conventions, the same schema the wider LLM ecosystem uses for model spans — which is why "MCP observability" in 2026 increasingly means "does my existing trace pipeline understand an MCP span," not "which vendor's MCP-specific dashboard should I buy."
That distinction matters for a query-gap search like this one: there is no single winner to name, because the substrate is now a shared standard rather than a product.
The debugger: MCP Inspector
The MCP Inspector is the protocol's own official tool, runnable with no install via npx, offering a web UI, a scriptable CLI, and a terminal UI over the same underlying proxy. It connects to one server over stdio, SSE, or Streamable HTTP and shows every tool call, resource read, and JSON-RPC exchange live. It is genuinely useful for the exact problem it targets — "why did my server just return that" during development — and genuinely the wrong tool for the exact problem it doesn't target: there is no persistence across sessions, no alerting, and no way to ask "across every agent that called this server last week, which ones got denied." Community forks like MCPJam's Inspector extend the same idea toward evaluation and multi-server testing, but the shape stays the same: a debugger, not a monitoring system.
The platforms that added MCP tracing to an existing pipeline
Every real production option here is a platform that already did LLM or application observability and extended its span model to cover MCP:
- Datadog Agent Observability traces the full MCP client lifecycle — session initialization,
tools/listdiscovery, andcall_toolinvocation — with per-tool and per-server p95 latency, error rate, and retry metrics, and links each span to the LLM span that triggered it. It auto-instruments the MCP Python client library and is free for customers submitting up to 40,000 LLM spans a month. - Sentry folds MCP tool calls in as spans inside the same trace as the agent run and the LLM calls that invoked them, so a failed tool call shows up next to the error it caused rather than in a separate system.
- Elastic APM instruments MCP servers with OpenTelemetry directly and visualizes tool-call performance inside the same APM views used for everything else in a stack already on Elastic.
- Grafana Cloud documents metrics, tracing, and log conventions for MCP servers built with its own developer tooling, aimed at teams already running Grafana dashboards for the rest of their infrastructure.
- groundcover built full-stack trace views specifically around the OTel GenAI convergence, positioning itself as reading the same OpenTelemetry data the spec update standardized on rather than a proprietary format.
- Obot's MCP Gateway is open source (MIT-licensed) and self-hostable, adding audit logs and OpenTelemetry export in front of MCP servers a team already runs, closer to a gateway with logging built in than a pure observability product.
The general-purpose LLM observability platforms — Langfuse, LangSmith, Arize Phoenix, Helicone — sit one layer up: they trace the agent's reasoning and model calls end to end, and MCP tool calls increasingly arrive as one more span type within that trace now that OpenTelemetry's GenAI conventions cover both. None of them started as MCP-specific products; MCP support is a consequence of adopting the same OTel schema the spec now recommends.
What none of this tells you
Every tool above answers some version of "did this call happen, how long did it take, and did it error." None of them, by design, answer "was this specific agent, key, or contract allowed to make this call in the first place." That is a policy question, not a tracing question — it requires knowing the identity behind the call, the scope that identity was granted, and the contract that defined what it should be able to see, none of which a generic span carries unless something upstream attached it. Our own numbers from 1.2 million tool calls came from exactly this kind of log, and the patterns that mattered most — retry storms, timeout cliffs, one bad error message driving a third of all retries — required knowing which agent and which key generated each call, not just that a call occurred.
A comparison table
| Tool | Category | What it actually watches | One honest limitation |
|---|---|---|---|
| MCP Inspector | Official debugger | One server, live, during development | No persistence, alerting, or multi-agent view |
| Datadog Agent Observability | LLM/agent observability | Full client lifecycle, linked to LLM spans | Free tier caps at 40,000 spans/month |
| Sentry | LLM/agent observability | MCP spans inside the existing error/trace pipeline | Strongest where Sentry is already the error tool of record |
| Elastic APM | APM + OpenTelemetry | OTel-instrumented MCP servers in existing APM views | Requires instrumenting the server with OTel yourself |
| Grafana Cloud | Metrics/tracing/dashboards | MCP metrics and trace conventions for Grafana-native servers | Documentation-first; you assemble the dashboard |
| groundcover | Full-stack tracing | OTel GenAI convergence, MCP-aware trace views | New entrant riding the July 2026 spec change |
| Obot MCP Gateway | Gateway + logging | Audit logs and OTel export in front of a server | A gateway with logging, not a dedicated analytics product |
| Elva | Governed MCP hosting + logs | Every call against the identity, scope, and contract that authorized it | Not a general-purpose trace viewer for non-Elva servers |
Where Elva fits
Elva does not compete for the "trace viewer" slot in the table above — it hosts the governed MCP server itself, generated from a company's own codebase rather than a server someone stood up separately. Because Elva issues the OAuth2 identity or scoped key for every caller, its logs start from the same place the other platforms have to infer or bolt on afterward: every row already carries the calling agent, the key, the tool, the argument hash, latency, and outcome, the same shape our own audit trail uses for breaking-change approvals. That is what let us find the retry and timeout patterns across 1.2 million calls in the first place — the identity was never missing from the log.
None of that replaces org-wide trace correlation. A team already running Datadog, Sentry, or Elastic across the rest of its stack can still point the same pipeline at an Elva-hosted server, since Elva's calls emit standard OpenTelemetry spans alongside everything else — the governance layer and the trace viewer are complementary, the same way a gateway and a generated server are, not competing purchases.
Practical guidance for a team deciding
- Debugging one server locally? MCP Inspector is the right tool and costs nothing — do not reach for a production platform to answer a development question.
- Already running Datadog, Sentry, Elastic, or Grafana for everything else? Turn on that platform's MCP support before adding a new vendor; the July 2026 OTel convergence means most of them now speak the same span format.
- Need to know who was allowed to call what, not just that a call happened? That is an identity and contract question a trace viewer doesn't answer on its own — it needs to be built into how the server issues access in the first place.
- Running your own MCP server and want both? Generate and host the server somewhere that logs identity and scope by default, then layer a trace platform on top for cross-system correlation — the two jobs stack rather than substitute for each other.
The honest state of "MCP logging products" in 2026 is that the interesting story isn't a new product category — it's a protocol standardizing on OpenTelemetry and every serious observability vendor following. The unsolved half is still governance: knowing not just that a call happened, but that it was supposed to.
FAQ
What changed about MCP logging in 2026?
On July 28, 2026, an MCP specification release candidate deprecated the protocol's own custom logging format in favor of OpenTelemetry, aligning MCP tool-call telemetry with the OpenTelemetry GenAI semantic conventions the wider LLM ecosystem already uses.
Is the MCP Inspector an observability tool?
It is the official debugging tool for one MCP server during development — it shows tool calls, resources, and JSON-RPC traffic live in a browser or terminal. It has no persistence, alerting, or multi-agent aggregation, so it does not substitute for production monitoring.
Which observability platforms support MCP tracing?
Datadog's Agent Observability, Sentry, Elastic APM, Grafana Cloud, and groundcover all added MCP-specific tracing in 2025 and 2026, generally by capturing tool_call and tools/list spans as OpenTelemetry data alongside existing LLM and application traces.
Does OpenTelemetry support replace the need for MCP-specific tooling?
It replaces the transport format, not the analysis. A trace tells you an MCP call happened, its latency, and its outcome; deciding whether that specific agent or key was supposed to be allowed to make that call is a policy question OpenTelemetry data alone does not answer.
How is Elva different from an MCP tracing platform like Datadog or Sentry?
Elva is not a general-purpose trace viewer — it hosts the governed MCP server itself and logs every call against the identity, scope, and contract that authorized it. Datadog, Sentry, and similar platforms are complementary: a team can point one at an Elva-hosted server for org-wide trace correlation alongside everything else it monitors.
Ship notes, monthly
One email with what shipped and what we learned. Unsubscribe anytime.