You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@modelcontextprotocol/server and /client v2 now emit OpenTelemetry spans and metrics for every MCP request, and inject trace context into params._meta, whenever a global tracer provider is registered (typescript-sdk#3115). It isn't released yet (latest is 2.4.0 as of 2026-11-04). Where the Sentry tracer provider is registered, this overlaps with our McpServer integration.
Duplicate spans:@sentry/nextjs (index.ts#L154) and @sentry/deno (sdk.ts#L137) default enableOpenTelemetrySetup to true. That means every MCP request gets both the wrapMcpServerWithSentry span and the SDK's own server span. @sentry/node and @sentry/cloudflare default it to false, so they're only affected if users opt in.
Upstream guidance: the MCP docs tell Sentry users to remove the McpServer integration to avoid the duplicates (docs).
Trace data sent to every MCP server: the MCP Client injects through the global propagator, so SentryPropagator adds sentry-trace and baggage (DSC) to _meta on requests to any MCP server, including third-party ones. inject does not check tracePropagationTargets (propagator.ts).
Related: #17152 (continuing traces from _meta, which packages/core/src/integrations/mcp-server/ still doesn't do) and #21482 (semconv alignment).
Activity
linear-code commentedon Nov 4, 2026
JS-4059