Skip to content

Remote MCP observability

Status authority: Canonical Remote Relay status is the authoritative source for current maturity and outstanding gates. This document describes a protocol, test plan, observability model, or security boundary and does not independently upgrade the relay beyond Experimental.

Remote MCP sessions need enough telemetry to debug routing, safety, and reliability without logging secrets or raw project contents by default.

Event categories

EventPurpose
remote.session.registeredExtension session registered with relay.
remote.session.pairedUser/client was paired to an extension session.
remote.session.disconnectedExtension or gateway closed the session.
remote.tool.requestedGateway received a tool call.
remote.tool.dispatchedGateway routed the call to an extension session.
remote.tool.completedTool returned successfully.
remote.tool.failedTool failed with a categorized error.
remote.approval.requestedA risky action required approval.
remote.approval.resolvedApproval was approved, rejected, or timed out.
remote.auth.rejectedAuth, scope, or token validation failed.

Common fields

  • timestamp,
  • event name,
  • deployment mode,
  • user id or local operator id,
  • session id,
  • connection id,
  • tool name,
  • risk level,
  • approval requirement,
  • input hash,
  • status,
  • duration,
  • error code.

Redaction rules

Do not log by default:

  • access tokens,
  • pairing codes,
  • project source payloads,
  • full schematics or board documents,
  • vendor credentials,
  • raw BOM lines with private project identifiers.

Prefer hashes, counts, sizes, and structured status codes.

Error taxonomy

CodeMeaning
IDENTITY_MISSINGNo valid remote identity was propagated.
IDENTITY_EXPIREDRemote identity is expired.
SCOPE_MISSINGIdentity lacks the scope required by the risk level.
SESSION_UNPAIREDUser has no matching paired extension session.
SESSION_DISCONNECTEDPaired extension session is no longer connected.
SESSION_EXPIREDPaired extension session exceeded its TTL.
SESSION_AMBIGUOUSMultiple sessions match and no explicit session was given.
PROJECT_INACTIVEA risky call has no confirmed active EasyEDA project.
APPROVAL_REQUIREDAction requires an explicit approval id.
APPROVAL_NOT_APPROVEDApproval is absent, invalid, expired, or already consumed.
REMOTE_TOOL_UNSUPPORTEDExtension rejected the requested method as unsupported.
REMOTE_EXTENSION_TIMEOUTExtension did not answer before the request deadline.
REMOTE_EXTENSION_ERRORExtension or relay failed for a non-timeout reason.
RELAY_VERSION_UNSUPPORTEDRelay protocol version mismatch.

Acceptance baseline

The first implementation should make remote routing debuggable without creating a sensitive design-data log sink.

Released under the MIT License.