Mcp Attributes

56 attributes in this category.35 stable·21 deprecated

56 attributes

Stable Attributes

mcp.auth.client.name

stringScrub: ManualVisibility: PublicOTel: False

Registered OAuth client application name associated with the authenticated MCP request. Taken from OAuth client registration metadata (client_name) made available by the authentication layer. This is distinct from the MCP implementation name in mcp.client.name; omit it when the OAuth client name is unavailable.

ExamplesExample DesktopExample CLI
Changelog
next#671Added mcp.auth.client.name attribute
Raw JSON
{
  "key": "mcp.auth.client.name",
  "brief": "Registered OAuth client application name associated with the authenticated MCP request. Taken from OAuth client registration metadata (client_name) made available by the authentication layer. This is distinct from the MCP implementation name in mcp.client.name; omit it when the OAuth client name is unavailable.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "Example Desktop",
    "Example CLI"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Added mcp.auth.client.name attribute"
    }
  ]
}

mcp.cancelled.reason

stringScrub: ManualVisibility: PublicOTel: False

Reason for the cancellation of an MCP operation.

Scrubbing ReasonCancellation reasons may contain user-specific or sensitive information
ExampleUser cancelled the request
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.cancelled.reason",
  "brief": "Reason for the cancellation of an MCP operation.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Cancellation reasons may contain user-specific or sensitive information"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "User cancelled the request",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.cancelled.request_id

stringScrub: ManualVisibility: PublicOTel: False

Request ID of the cancelled MCP operation.

Example123
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.cancelled.request_id",
  "brief": "Request ID of the cancelled MCP operation.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "123",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.client.name

stringScrub: ManualVisibility: PublicOTel: False

Name of the MCP client implementation, as declared in clientInfo. This is distinct from the registered OAuth application name in mcp.auth.client.name.

Examplesexample-mcp-client
Changelog
next#671Clarified that the attribute describes declared MCP implementation metadata
v0.3.0#171
Raw JSON
{
  "key": "mcp.client.name",
  "brief": "Name of the MCP client implementation, as declared in clientInfo. This is distinct from the registered OAuth application name in mcp.auth.client.name.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "example-mcp-client"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that the attribute describes declared MCP implementation metadata"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.client.title

stringScrub: ManualVisibility: PublicOTel: False

Display title of the MCP client implementation, as declared in clientInfo.

Scrubbing ReasonClient titles may reveal user-specific application configurations or custom setups
ExamplesExample MCP Client
Changelog
next#671Clarified that the attribute describes declared MCP implementation metadata
v0.3.0#171
Raw JSON
{
  "key": "mcp.client.title",
  "brief": "Display title of the MCP client implementation, as declared in clientInfo.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Client titles may reveal user-specific application configurations or custom setups"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "Example MCP Client"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that the attribute describes declared MCP implementation metadata"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.client.version

stringScrub: ManualVisibility: PublicOTel: False

Version of the MCP client implementation, as declared in clientInfo.

Examples1.0.0
Changelog
next#671Clarified that the attribute describes declared MCP implementation metadata
v0.3.0#171
Raw JSON
{
  "key": "mcp.client.version",
  "brief": "Version of the MCP client implementation, as declared in clientInfo.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "1.0.0"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that the attribute describes declared MCP implementation metadata"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.lifecycle.phase

stringScrub: ManualVisibility: PublicOTel: False

Lifecycle phase indicator for MCP operations.

Exampleinitialization_complete
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.lifecycle.phase",
  "brief": "Lifecycle phase indicator for MCP operations.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "initialization_complete",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.logging.data_type

stringScrub: ManualVisibility: PublicOTel: False

Data type of the logged message content.

Examplestring
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.logging.data_type",
  "brief": "Data type of the logged message content.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "string",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.logging.level

stringScrub: ManualVisibility: PublicOTel: False

Log level for MCP logging operations.

Exampleinfo
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.logging.level",
  "brief": "Log level for MCP logging operations.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "info",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.logging.logger

stringScrub: ManualVisibility: PublicOTel: False

Logger name for MCP logging operations.

Scrubbing ReasonLogger names may be user-defined and could contain sensitive information
Examplemcp_server
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.logging.logger",
  "brief": "Logger name for MCP logging operations.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Logger names may be user-defined and could contain sensitive information"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "mcp_server",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.logging.message

stringScrub: AutoVisibility: PublicOTel: False

Log message content from MCP logging operations.

Scrubbing ReasonLog messages can contain user data
ExampleTool execution completed successfully
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.logging.message",
  "brief": "Log message content from MCP logging operations.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Log messages can contain user data"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "Tool execution completed successfully",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.method.name

stringScrub: ManualVisibility: PublicOTel: True

The name of the MCP request or notification method being called.

Exampletools/call
Changelog
v0.12.0#420Set is_in_otel=true, attribute exists in OTel MCP registry
v0.3.0#171
Raw JSON
{
  "key": "mcp.method.name",
  "brief": "The name of the MCP request or notification method being called.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": true,
  "visibility": "public",
  "example": "tools/call",
  "changelog": [
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Set is_in_otel=true, attribute exists in OTel MCP registry"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.progress.current

doubleScrub: ManualVisibility: PublicOTel: False

Current progress value of an MCP operation.

Examples0.250
Changelog
next#671Changed the type to double to support fractional MCP progress values
v0.4.0#228
v0.3.0#171
Raw JSON
{
  "key": "mcp.progress.current",
  "brief": "Current progress value of an MCP operation.",
  "type": "double",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    0.2,
    50
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Changed the type to double to support fractional MCP progress values"
    },
    {
      "version": "0.4.0",
      "prs": [
        228
      ]
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.progress.message

stringScrub: ManualVisibility: PublicOTel: False

Progress message describing the current state of an MCP operation.

Scrubbing ReasonProgress messages may contain user-specific or sensitive information
ExampleProcessing 50 of 100 items
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.progress.message",
  "brief": "Progress message describing the current state of an MCP operation.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Progress messages may contain user-specific or sensitive information"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "Processing 50 of 100 items",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.progress.percentage

doubleScrub: ManualVisibility: PublicOTel: False

Calculated progress percentage of an MCP operation. Computed from current/total * 100.

Example50
Changelog
v0.4.0#228
v0.3.0#171
Raw JSON
{
  "key": "mcp.progress.percentage",
  "brief": "Calculated progress percentage of an MCP operation. Computed from current/total * 100.",
  "type": "double",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": 50,
  "changelog": [
    {
      "version": "0.4.0",
      "prs": [
        228
      ]
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.progress.token

stringScrub: ManualVisibility: PublicOTel: False

Token for tracking progress of an MCP operation.

Exampleprogress-token-123
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.progress.token",
  "brief": "Token for tracking progress of an MCP operation.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "progress-token-123",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.progress.total

doubleScrub: ManualVisibility: PublicOTel: False

Total progress target value of an MCP operation.

Examples1100
Changelog
next#671Changed the type to double to support fractional MCP progress values
v0.4.0#228
v0.3.0#171
Raw JSON
{
  "key": "mcp.progress.total",
  "brief": "Total progress target value of an MCP operation.",
  "type": "double",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    1,
    100
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Changed the type to double to support fractional MCP progress values"
    },
    {
      "version": "0.4.0",
      "prs": [
        228
      ]
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.prompt.result.<key>.content

stringScrub: AutoVisibility: PublicOTel: False

Legacy text content of an indexed message in a multi-message MCP prompt result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
ExamplesSummarize the document.
Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple messages. <key> is the zero-based position in the original messages array; absent fields do not renumber later messages.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute.
Raw JSON
{
  "key": "mcp.prompt.result.<key>.content",
  "brief": "Legacy text content of an indexed message in a multi-message MCP prompt result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "Summarize the document."
  ],
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple messages. <key> is the zero-based position in the original messages array; absent fields do not renumber later messages.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute."
    }
  ]
}

mcp.prompt.result.<key>.role

stringScrub: AutoVisibility: PublicOTel: False

Legacy role of an indexed message in a multi-message MCP prompt result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesuserassistant
Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple messages. <key> is the zero-based position in the original messages array; absent fields do not renumber later messages.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute.
Raw JSON
{
  "key": "mcp.prompt.result.<key>.role",
  "brief": "Legacy role of an indexed message in a multi-message MCP prompt result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "user",
    "assistant"
  ],
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple messages. <key> is the zero-based position in the original messages array; absent fields do not renumber later messages.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute."
    }
  ]
}

mcp.prompt.result.description

stringScrub: AutoVisibility: PublicOTel: False

Description of the prompt result.

ExampleA summary of the requested information
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.prompt.result.description",
  "brief": "Description of the prompt result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "A summary of the requested information",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.prompt.result.message_content

stringScrub: AutoVisibility: PublicOTel: False

Content of the message in the prompt result. Used for single message results only.

ExamplePlease provide a summary of the document
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.prompt.result.message_content",
  "brief": "Content of the message in the prompt result. Used for single message results only.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "Please provide a summary of the document",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.prompt.result.message_count

integerScrub: ManualVisibility: PublicOTel: False

Number of messages in the prompt result.

Example3
Changelog
v0.4.0#228
v0.3.0#171
Raw JSON
{
  "key": "mcp.prompt.result.message_count",
  "brief": "Number of messages in the prompt result.",
  "type": "integer",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": 3,
  "changelog": [
    {
      "version": "0.4.0",
      "prs": [
        228
      ]
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.prompt.result.message_role

stringScrub: ManualVisibility: PublicOTel: False

Role of the message in the prompt result. Used for single message results only.

Exampleuser
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.prompt.result.message_role",
  "brief": "Role of the message in the prompt result. Used for single message results only.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "user",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.protocol.ready

integerScrub: ManualVisibility: PublicOTel: False

Readiness indicator for the legacy MCP initialization handshake. A non-zero value indicates that notifications/initialized has completed initialization. Omit for protocol versions without this handshake.

Examples1
Changelog
next#671Clarified that readiness describes the legacy MCP initialization handshake
v0.4.0#228
v0.3.0#171
Raw JSON
{
  "key": "mcp.protocol.ready",
  "brief": "Readiness indicator for the legacy MCP initialization handshake. A non-zero value indicates that notifications/initialized has completed initialization. Omit for protocol versions without this handshake.",
  "type": "integer",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    1
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that readiness describes the legacy MCP initialization handshake"
    },
    {
      "version": "0.4.0",
      "prs": [
        228
      ]
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.protocol.version

stringScrub: ManualVisibility: PublicOTel: True

Version of the Model Context Protocol used for the operation.

Examples2024-11-05
Changelog
next#671Clarified that the protocol version applies to an operation without requiring a session
v0.12.0#420Set is_in_otel=true, attribute exists in OTel MCP registry
v0.3.0#171
Raw JSON
{
  "key": "mcp.protocol.version",
  "brief": "Version of the Model Context Protocol used for the operation.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": true,
  "visibility": "public",
  "examples": [
    "2024-11-05"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that the protocol version applies to an operation without requiring a session"
    },
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Set is_in_otel=true, attribute exists in OTel MCP registry"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.request.argument.<key>

stringScrub: AutoVisibility: PublicOTel: FalseDynamic

MCP request argument with dynamic key suffix. The <key> is replaced with the actual argument name. The value is a JSON-stringified representation of the argument value.

Scrubbing ReasonArguments contain user input
Examplemcp.request.argument.query='weather in Paris'
Dynamic SuffixYes - the key contains dynamic parts
Changelog
v0.3.0#176
Raw JSON
{
  "key": "mcp.request.argument.<key>",
  "brief": "MCP request argument with dynamic key suffix. The <key> is replaced with the actual argument name. The value is a JSON-stringified representation of the argument value.",
  "has_dynamic_suffix": true,
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Arguments contain user input"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "mcp.request.argument.query='weather in Paris'",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        176
      ]
    }
  ]
}

mcp.request.argument.name

stringScrub: AutoVisibility: PublicOTel: False

Name argument from prompts/get MCP request.

Scrubbing ReasonPrompt names can contain user input
Examplesummarize
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.request.argument.name",
  "brief": "Name argument from prompts/get MCP request.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Prompt names can contain user input"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "summarize",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.request.argument.uri

stringScrub: AutoVisibility: PublicOTel: False

URI argument from resources/read MCP request.

Scrubbing ReasonURIs can contain user file paths
Examplefile:///path/to/resource
Changelog
v0.3.0#171
Raw JSON
{
  "key": "mcp.request.argument.uri",
  "brief": "URI argument from resources/read MCP request.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "URIs can contain user file paths"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "file:///path/to/resource",
  "changelog": [
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.resource.protocol

stringScrub: ManualVisibility: PublicOTel: False

URI scheme of the MCP resource being accessed, extracted from its URI. This is distinct from the network protocol used to communicate with the MCP server.

Examplesfilepostgres
Changelog
next#671Clarified Sentry-specific semantics and removed the incorrect network attribute alias and deprecation
v0.21.0#581Added messaging.protocol as an alias
v0.12.0#420Deprecated in favor of network.protocol.name
v0.3.0#171
Raw JSON
{
  "key": "mcp.resource.protocol",
  "brief": "URI scheme of the MCP resource being accessed, extracted from its URI. This is distinct from the network protocol used to communicate with the MCP server.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "file",
    "postgres"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified Sentry-specific semantics and removed the incorrect network attribute alias and deprecation"
    },
    {
      "version": "0.21.0",
      "prs": [
        581
      ],
      "description": "Added messaging.protocol as an alias"
    },
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Deprecated in favor of network.protocol.name"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.resource.uri

stringScrub: AutoVisibility: PublicOTel: True

The resource URI being accessed in an MCP operation.

Scrubbing ReasonURIs can contain sensitive file paths
Examplefile:///path/to/file.txt
Changelog
v0.12.0#420Set is_in_otel=true, attribute exists in OTel MCP registry
v0.3.0#171
Raw JSON
{
  "key": "mcp.resource.uri",
  "brief": "The resource URI being accessed in an MCP operation.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "URIs can contain sensitive file paths"
  },
  "is_in_otel": true,
  "visibility": "public",
  "example": "file:///path/to/file.txt",
  "changelog": [
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Set is_in_otel=true, attribute exists in OTel MCP registry"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.server.name

stringScrub: ManualVisibility: PublicOTel: False

Name of the MCP server implementation, as declared in serverInfo.

Examplesexample-mcp-server
Changelog
next#671Clarified that the attribute describes declared MCP implementation metadata
v0.3.0#171
Raw JSON
{
  "key": "mcp.server.name",
  "brief": "Name of the MCP server implementation, as declared in serverInfo.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "example-mcp-server"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that the attribute describes declared MCP implementation metadata"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.server.title

stringScrub: ManualVisibility: PublicOTel: False

Display title of the MCP server implementation, as declared in serverInfo.

Scrubbing ReasonServer titles may reveal user-specific application configurations or custom setups
ExamplesExample MCP Server
Changelog
next#671Clarified that the attribute describes declared MCP implementation metadata
v0.3.0#171
Raw JSON
{
  "key": "mcp.server.title",
  "brief": "Display title of the MCP server implementation, as declared in serverInfo.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Server titles may reveal user-specific application configurations or custom setups"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "Example MCP Server"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that the attribute describes declared MCP implementation metadata"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.server.version

stringScrub: ManualVisibility: PublicOTel: False

Version of the MCP server implementation, as declared in serverInfo.

Examples0.1.0
Changelog
next#671Clarified that the attribute describes declared MCP implementation metadata
v0.3.0#171
Raw JSON
{
  "key": "mcp.server.version",
  "brief": "Version of the MCP server implementation, as declared in serverInfo.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "0.1.0"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that the attribute describes declared MCP implementation metadata"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.session.id

stringScrub: ManualVisibility: PublicOTel: True

Identifier for an MCP protocol session, when the operation belongs to a session.

Examples550e8400-e29b-41d4-a716-446655440000
Additional Context
  • Applies to protocol versions and transports that provide MCP session management, including legacy Streamable HTTP sessions. Omit for operations without a protocol session; do not synthesize a session identifier from a request, connection, or conversation.
Changelog
next#671Clarified that the identifier requires a real MCP protocol session
v0.12.0#420Set is_in_otel=true, attribute exists in OTel MCP registry
v0.3.0#171
Raw JSON
{
  "key": "mcp.session.id",
  "brief": "Identifier for an MCP protocol session, when the operation belongs to a session.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": true,
  "visibility": "public",
  "examples": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "additional_context": [
    "Applies to protocol versions and transports that provide MCP session management, including legacy Streamable HTTP sessions. Omit for operations without a protocol session; do not synthesize a session identifier from a request, connection, or conversation."
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified that the identifier requires a real MCP protocol session"
    },
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Set is_in_otel=true, attribute exists in OTel MCP registry"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.transport

stringScrub: ManualVisibility: PublicOTel: False

MCP transport implementation name, such as the transport class name. This identifies the implementation, not the network transport or application protocol.

ExamplesStdioServerTransportCustomHTTPTransport
Changelog
next#671Clarified Sentry-specific semantics and removed the incorrect network attribute alias and deprecation
v0.12.0#420Deprecated in favor of network.transport
v0.3.0#171
Raw JSON
{
  "key": "mcp.transport",
  "brief": "MCP transport implementation name, such as the transport class name. This identifies the implementation, not the network transport or application protocol.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "StdioServerTransport",
    "CustomHTTPTransport"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Clarified Sentry-specific semantics and removed the incorrect network attribute alias and deprecation"
    },
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Deprecated in favor of network.transport"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

Deprecated Attributes

These attributes are deprecated and should not be used in new code. See each attribute for migration guidance.

mcp.prompt.nameDeprecated

stringScrub: ManualVisibility: PublicOTel: False

Name of the MCP prompt template being used.

Scrubbing ReasonPrompt names may reveal user behavior patterns or sensitive operations
Examplesummarize

Use gen_ai.prompt.name instead.

OTel uses gen_ai.prompt.name for MCP prompt names

Status: backfill

Changelog
v0.12.0#420Deprecated in favor of gen_ai.prompt.name
v0.3.0#171
Raw JSON
{
  "key": "mcp.prompt.name",
  "brief": "Name of the MCP prompt template being used.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "Prompt names may reveal user behavior patterns or sensitive operations"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "summarize",
  "deprecation": {
    "replacement": "gen_ai.prompt.name",
    "reason": "OTel uses gen_ai.prompt.name for MCP prompt names",
    "_status": "backfill"
  },
  "alias": [
    "gen_ai.prompt.name"
  ],
  "changelog": [
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Deprecated in favor of gen_ai.prompt.name"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.request.idDeprecated

stringScrub: ManualVisibility: PublicOTel: False

JSON-RPC request identifier for the MCP request, used to correlate the request with its response.

Examples1

Use jsonrpc.request.id instead.

OTel models MCP as JSON-RPC, uses jsonrpc.request.id

Status: backfill

Changelog
next#671Removed the session-scoped uniqueness requirement from the request identifier
v0.12.0#420Deprecated in favor of jsonrpc.request.id
v0.3.0#171
Raw JSON
{
  "key": "mcp.request.id",
  "brief": "JSON-RPC request identifier for the MCP request, used to correlate the request with its response.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "1"
  ],
  "deprecation": {
    "replacement": "jsonrpc.request.id",
    "reason": "OTel models MCP as JSON-RPC, uses jsonrpc.request.id",
    "_status": "backfill"
  },
  "alias": [
    "jsonrpc.request.id"
  ],
  "changelog": [
    {
      "version": "next",
      "prs": [
        671
      ],
      "description": "Removed the session-scoped uniqueness requirement from the request identifier"
    },
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Deprecated in favor of jsonrpc.request.id"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.tool.nameDeprecated

stringScrub: ManualVisibility: PublicOTel: False

Name of the MCP tool being called.

Examplecalculator

Use gen_ai.tool.name instead.

OTel uses gen_ai.tool.name for MCP tool names

Status: backfill

Changelog
v0.12.0#420Deprecated in favor of gen_ai.tool.name
v0.3.0#171
Raw JSON
{
  "key": "mcp.tool.name",
  "brief": "Name of the MCP tool being called.",
  "type": "string",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "calculator",
  "deprecation": {
    "replacement": "gen_ai.tool.name",
    "reason": "OTel uses gen_ai.tool.name for MCP tool names",
    "_status": "backfill"
  },
  "alias": [
    "gen_ai.tool.name",
    "ai.function_call"
  ],
  "changelog": [
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Deprecated in favor of gen_ai.tool.name"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.tool.result.<key>.contentDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy text content of an indexed content item in a multi-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
ExamplesThe operation completed.

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.
  • Recorded only when output capture is enabled.
  • This is one item's text, not the complete tool result. It must not be aliased or directly backfilled to gen_ai.tool.call.result; reconstructing the complete result requires aggregation.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.<key>.content",
  "brief": "Legacy text content of an indexed content item in a multi-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "The operation completed."
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.",
    "Recorded only when output capture is enabled.",
    "This is one item's text, not the complete tool result. It must not be aliased or directly backfilled to gen_ai.tool.call.result; reconstructing the complete result requires aggregation."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.<key>.content_typeDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy content type of an indexed content item in a multi-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplestextimage

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.
  • Recorded even when output capture is disabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.<key>.content_type",
  "brief": "Legacy content type of an indexed content item in a multi-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "text",
    "image"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.",
    "Recorded even when output capture is disabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.<key>.data_sizeDeprecated

integerScrub: ManualVisibility: PublicOTel: False

Legacy length of the data string in UTF-16 code units of an indexed content item in a multi-item MCP tool result.

Scrubbing ReasonThe length contains no result content.
Examples41024

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.
  • Recorded only when output capture is enabled.
  • The JavaScript SDK records data.length. For base64-encoded image or audio data, this counts encoded characters, not decoded bytes.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.<key>.data_size",
  "brief": "Legacy length of the data string in UTF-16 code units of an indexed content item in a multi-item MCP tool result.",
  "type": "integer",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "The length contains no result content."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    4,
    1024
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.",
    "Recorded only when output capture is enabled.",
    "The JavaScript SDK records data.length. For base64-encoded image or audio data, this counts encoded characters, not decoded bytes."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.<key>.mime_typeDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy MIME type of an indexed content item in a multi-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesimage/pngaudio/wav

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.<key>.mime_type",
  "brief": "Legacy MIME type of an indexed content item in a multi-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "image/png",
    "audio/wav"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.<key>.nameDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy resource link name of an indexed content item in a multi-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesreport.txt

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.<key>.name",
  "brief": "Legacy resource link name of an indexed content item in a multi-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "report.txt"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.<key>.resource_mime_typeDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy embedded resource MIME type of an indexed content item in a multi-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplestext/plain

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.<key>.resource_mime_type",
  "brief": "Legacy embedded resource MIME type of an indexed content item in a multi-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "text/plain"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.<key>.resource_uriDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy embedded resource URI of an indexed content item in a multi-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesfile:///project/report.txt

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.<key>.resource_uri",
  "brief": "Legacy embedded resource URI of an indexed content item in a multi-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "file:///project/report.txt"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.<key>.uriDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy resource link URI of an indexed content item in a multi-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesfile:///project/report.txt

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.<key>.uri",
  "brief": "Legacy resource link URI of an indexed content item in a multi-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "file:///project/report.txt"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted for results with multiple content items. <key> is the zero-based position in the original content array; absent fields do not renumber later items.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.contentDeprecated

stringScrub: AutoVisibility: PublicOTel: False

The content of the tool result.

Scrubbing ReasonTool results can contain user data
Example{"output": "rainy", "toolCallId": "1"}

Use gen_ai.tool.call.result instead.

OTel uses gen_ai.tool.call.result for MCP tool results

Status: backfill

Changelog
v0.12.0#420Deprecated in favor of gen_ai.tool.call.result
v0.3.0#171
v0.2.0#164
Raw JSON
{
  "key": "mcp.tool.result.content",
  "brief": "The content of the tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Tool results can contain user data"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": "{\"output\": \"rainy\", \"toolCallId\": \"1\"}",
  "deprecation": {
    "replacement": "gen_ai.tool.call.result",
    "reason": "OTel uses gen_ai.tool.call.result for MCP tool results",
    "_status": "backfill"
  },
  "alias": [
    "gen_ai.tool.call.result",
    "gen_ai.tool.message",
    "gen_ai.tool.output",
    "ai.toolCall.result",
    "anthropic.tool_result.content"
  ],
  "changelog": [
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Deprecated in favor of gen_ai.tool.call.result"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    },
    {
      "version": "0.2.0",
      "prs": [
        164
      ]
    }
  ]
}

mcp.tool.result.content_countDeprecated

integerScrub: ManualVisibility: PublicOTel: False

Number of content items in the tool result.

Example1

No replacement available at this time.

A count can be calculcated from the value of the gen_ai.tool.call.result attribute.

Changelog
next#669Deprecate the attribute since it is redundant given gen_ai.tool.call.result.
v0.4.0#228
v0.3.0#171
Raw JSON
{
  "key": "mcp.tool.result.content_count",
  "brief": "Number of content items in the tool result.",
  "type": "integer",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": 1,
  "deprecation": {
    "reason": "A count can be calculcated from the value of the gen_ai.tool.call.result attribute.",
    "_status": null
  },
  "changelog": [
    {
      "version": "next",
      "prs": [
        669
      ],
      "description": "Deprecate the attribute since it is redundant given gen_ai.tool.call.result."
    },
    {
      "version": "0.4.0",
      "prs": [
        228
      ]
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.tool.result.content_typeDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy content type of the content item in a single-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplestextimage

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted only when the result contains exactly one content item.
  • Recorded even when output capture is disabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.content_type",
  "brief": "Legacy content type of the content item in a single-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "text",
    "image"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted only when the result contains exactly one content item.",
    "Recorded even when output capture is disabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.data_sizeDeprecated

integerScrub: ManualVisibility: PublicOTel: False

Legacy length of the data string in UTF-16 code units of the content item in a single-item MCP tool result.

Scrubbing ReasonThe length contains no result content.
Examples41024

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted only when the result contains exactly one content item.
  • Recorded only when output capture is enabled.
  • The JavaScript SDK records data.length. For base64-encoded image or audio data, this counts encoded characters, not decoded bytes.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.data_size",
  "brief": "Legacy length of the data string in UTF-16 code units of the content item in a single-item MCP tool result.",
  "type": "integer",
  "apply_scrubbing": {
    "key": "manual",
    "reason": "The length contains no result content."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    4,
    1024
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted only when the result contains exactly one content item.",
    "Recorded only when output capture is enabled.",
    "The JavaScript SDK records data.length. For base64-encoded image or audio data, this counts encoded characters, not decoded bytes."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.is_errorDeprecated

booleanScrub: ManualVisibility: PublicOTel: False

Whether a tool execution resulted in an error.

Examplefalse

Use error.type instead.

OTel uses error.type set to 'tool_error' when isError is true. Cannot be automatically backfilled due to type mismatch (boolean vs string).

Changelog
v0.12.0#420Deprecated in favor of error.type
v0.3.0#171
Raw JSON
{
  "key": "mcp.tool.result.is_error",
  "brief": "Whether a tool execution resulted in an error.",
  "type": "boolean",
  "apply_scrubbing": {
    "key": "manual"
  },
  "is_in_otel": false,
  "visibility": "public",
  "example": false,
  "deprecation": {
    "replacement": "error.type",
    "reason": "OTel uses error.type set to 'tool_error' when isError is true. Cannot be automatically backfilled due to type mismatch (boolean vs string).",
    "_status": null
  },
  "changelog": [
    {
      "version": "0.12.0",
      "prs": [
        420
      ],
      "description": "Deprecated in favor of error.type"
    },
    {
      "version": "0.3.0",
      "prs": [
        171
      ]
    }
  ]
}

mcp.tool.result.mime_typeDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy MIME type of the content item in a single-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesimage/pngaudio/wav

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted only when the result contains exactly one content item.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.mime_type",
  "brief": "Legacy MIME type of the content item in a single-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "image/png",
    "audio/wav"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted only when the result contains exactly one content item.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.nameDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy resource link name of the content item in a single-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesreport.txt

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted only when the result contains exactly one content item.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.name",
  "brief": "Legacy resource link name of the content item in a single-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "report.txt"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted only when the result contains exactly one content item.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.resource_mime_typeDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy embedded resource MIME type of the content item in a single-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplestext/plain

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted only when the result contains exactly one content item.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.resource_mime_type",
  "brief": "Legacy embedded resource MIME type of the content item in a single-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "text/plain"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted only when the result contains exactly one content item.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.resource_uriDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy embedded resource URI of the content item in a single-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesfile:///project/report.txt

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted only when the result contains exactly one content item.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.resource_uri",
  "brief": "Legacy embedded resource URI of the content item in a single-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "file:///project/report.txt"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted only when the result contains exactly one content item.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}

mcp.tool.result.uriDeprecated

stringScrub: AutoVisibility: PublicOTel: False

Legacy resource link URI of the content item in a single-item MCP tool result.

Scrubbing ReasonPreserve automatic scrubbing of server-provided result fields.
Examplesfile:///project/report.txt

No replacement available at this time.

Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.

Additional Context
  • Registers an existing Sentry JavaScript SDK attribute for compatibility.
  • Emitted only when the result contains exactly one content item.
  • Recorded only when output capture is enabled.
Changelog
nextRegister an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill.
Raw JSON
{
  "key": "mcp.tool.result.uri",
  "brief": "Legacy resource link URI of the content item in a single-item MCP tool result.",
  "type": "string",
  "apply_scrubbing": {
    "key": "auto",
    "reason": "Preserve automatic scrubbing of server-provided result fields."
  },
  "is_in_otel": false,
  "visibility": "public",
  "examples": [
    "file:///project/report.txt"
  ],
  "deprecation": {
    "reason": "Capture the complete tool result in gen_ai.tool.call.result instead. This attribute describes only part of the result and cannot be directly backfilled.",
    "_status": null
  },
  "additional_context": [
    "Registers an existing Sentry JavaScript SDK attribute for compatibility.",
    "Emitted only when the result contains exactly one content item.",
    "Recorded only when output capture is enabled."
  ],
  "changelog": [
    {
      "version": "next",
      "description": "Register an existing JavaScript SDK MCP result attribute as deprecated in favor of gen_ai.tool.call.result, without backfill."
    }
  ]
}