MCP spans report JSON-RPC as a network version and infer transports from class names

Author: betegonCreated Sep 18, 2026Updated Sep 18, 2026
LabelsImprovementSpansjavascript

MCP server spans currently set network.protocol.version to JSON-RPC 2.0 for every transport, including stdio, and infer network.transport from substrings in transport class names. This can report an HTTP version that was never observed and classify custom transports incorrectly.

Follow the OpenTelemetry MCP transport conventions: record the actual HTTP protocol/version when request metadata provides it, and omit unknown network versions and transports. Preserve mcp.transport as the implementation class name. Also expose the available HTTP User-Agent as request-local user_agent.original on MCP spans for both TypeScript SDK majors.

This is a focused transport-metadata correction within the broader semantic-convention alignment tracked in #21482.

Source: getsentry/sentry-javascript