Technical finding
Privacy-safe OTel cannot identify the MCP server
The tested privacy-safe OpenTelemetry configuration redacted both official and custom MCP
identity to custom. That makes it useful for
aggregate counters, but not trustworthy as the source of truth for MCP, skill, or plugin
identity.
Observed
Official and custom MCP identity both became custom.
Consequence
Two different servers can no longer be distinguished from that field.
Decision
OTel is not the identity source of truth.
The experiment
A privacy property removed the dimension the product needed
KeepRails needs to attribute evidence to a concrete configured asset. A counter without a defensible identity cannot answer which server was present or used.
What OTel could still tell us
What OTel could not tell us
custom as a server name would manufacture certainty.
The implementation decision
Configuration is the source of identity
The local audit available today establishes identity from local configuration inventory. It does not need telemetry to say what is installed, where it is defined, or which permissions it declares.
Inventory locally
Keep observation local
Label missing attribution
Scope
This is not an argument against OpenTelemetry
It is a narrower engineering result: under the tested privacy-safe configuration, OTel can carry aggregate counters but cannot be trusted for MCP identity. KeepRails uses the signal only for claims the signal can support.