From 6d53439961808ecf5d760241a64c3e089ad88541 Mon Sep 17 00:00:00 2001 From: Arun Tyagi Date: Tue, 31 Mar 2026 11:55:09 +0530 Subject: [PATCH 1/2] feat: add PdpEvent type and sendPdpEvent method to TelemetryService Adds Product Feedback Telemetry (PFT) support to the MCP Provider API to enable PDP event reporting across all MCP provider packages. Changes: - Added PdpEvent type with template literal constraints: * eventName: enforces "object.action" format (e.g., "codeAnalyzer.run") * productFeatureId: enforces GUS Product Feature ID format (aJC prefix) * componentId: optional component identifier * eventVolume: optional volume metric - Added sendPdpEvent() method to TelemetryService interface - Exported PdpEvent type from package index The PdpEvent type aligns with @salesforce/telemetry package's type definitions, ensuring type safety and compatibility with O11y telemetry infrastructure. This API change enables provider packages to send PFT events for product analytics and usage tracking. --- packages/mcp-provider-api/src/index.ts | 1 + packages/mcp-provider-api/src/services.ts | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/packages/mcp-provider-api/src/index.ts b/packages/mcp-provider-api/src/index.ts index ec22857e..d7bab0a5 100644 --- a/packages/mcp-provider-api/src/index.ts +++ b/packages/mcp-provider-api/src/index.ts @@ -14,6 +14,7 @@ export { type Services, type TelemetryService, type TelemetryEvent, + type PdpEvent, type OrgService, type ConfigService, type StartupFlags diff --git a/packages/mcp-provider-api/src/services.ts b/packages/mcp-provider-api/src/services.ts index 7a236813..67b84cc8 100644 --- a/packages/mcp-provider-api/src/services.ts +++ b/packages/mcp-provider-api/src/services.ts @@ -9,12 +9,20 @@ export interface Services { export interface TelemetryService { sendEvent(eventName: string, event: TelemetryEvent): void; + sendPdpEvent(event: PdpEvent): void; } export type TelemetryEvent = { [key: string]: string | number | boolean | null | undefined; }; +export type PdpEvent = { + eventName: `${string}.${string}`; + productFeatureId: `aJC${string}`; + componentId?: string; + eventVolume?: number; +}; + export interface OrgService { getAllowedOrgUsernames(): Promise>; From c62e6b87e14924684ff8b4575f3a65e7bd6fde54 Mon Sep 17 00:00:00 2001 From: Arun Tyagi Date: Tue, 31 Mar 2026 11:59:50 +0530 Subject: [PATCH 2/2] feat: implement sendPdpEvent in NoopTelemetryService Updates NoopTelemetryService to implement the new sendPdpEvent() method added to the TelemetryService interface. This ensures all implementations of TelemetryService properly implement the PDP event reporting capability. Changes: - Added PdpEvent import from @salesforce/mcp-provider-api - Implemented sendPdpEvent() method in NoopTelemetryService class as no-op --- packages/mcp/src/services.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/mcp/src/services.ts b/packages/mcp/src/services.ts index ac03e13e..4d42edec 100644 --- a/packages/mcp/src/services.ts +++ b/packages/mcp/src/services.ts @@ -17,6 +17,7 @@ import { Services as IServices, TelemetryService, TelemetryEvent, + PdpEvent, OrgService, SanitizedOrgAuthorization, ConfigService, @@ -70,4 +71,8 @@ class NoopTelemetryService implements TelemetryService { public sendEvent(_eventName: string, _event: TelemetryEvent): void { // no-op } + + public sendPdpEvent(_event: PdpEvent): void { + // no-op + } }