UNPKG

mcp-use

Version:

Opinionated MCP Framework for TypeScript (@modelcontextprotocol/sdk compatible) - Build MCP Agents, Clients and Servers with support for ChatGPT Apps, Code Mode, OAuth, Notifications, Sampling, Observability and more.

133 lines 4.86 kB
import type { BaseTelemetryEvent, MCPAgentExecutionEventData, ServerInitializeEventData, ServerToolCallEventData, ServerResourceCallEventData, ServerPromptCallEventData, ServerContextEventData, MCPClientInitEventData, ConnectorInitEventData, MCPServerTelemetryInfo } from "./events.js"; export type RuntimeEnvironment = "browser" | "unknown"; type StorageCapability = "localStorage" | "session-only"; /** * Determines whether the current runtime is a browser. * * @returns `true` if the runtime is a browser, `false` otherwise. */ export declare function isBrowserEnvironment(): boolean; /** * Browser Telemetry class that works in browser environments only. * * Uses posthog-js for telemetry, window.crypto for secure random strings, * and localStorage for user ID persistence. * * Usage: Tel.getInstance().trackMCPClientInit(...) */ export declare class Telemetry { private static instance; private readonly PROJECT_API_KEY; private readonly HOST; private readonly UNKNOWN_USER_ID; private _currUserId; private _posthogBrowserClient; private _posthogLoading; private _runtimeEnvironment; private _storageCapability; private _source; private constructor(); private _getSourceFromLocalStorage; private _checkTelemetryDisabled; private _initPostHogBrowser; /** * Get the detected runtime environment */ get runtimeEnvironment(): RuntimeEnvironment; /** * Get the storage capability for this environment */ get storageCapability(): StorageCapability; static getInstance(): Telemetry; /** * Set the source identifier for telemetry events. * This allows tracking usage from different applications. * @param source - The source identifier (e.g., "my-app", "cli", "vs-code-extension") */ setSource(source: string): void; /** * Get the current source identifier. */ getSource(): string; /** * Check if telemetry is enabled. */ get isEnabled(): boolean; get userId(): string; /** * Get or create user ID from localStorage (Browser) */ private _getUserIdFromLocalStorage; capture(event: BaseTelemetryEvent): Promise<void>; trackAgentExecution(data: MCPAgentExecutionEventData): Promise<void>; /** * Track server run event directly from an MCPServer instance. */ trackServerRunFromServer(server: MCPServerTelemetryInfo, transport: string): Promise<void>; trackServerInitialize(data: ServerInitializeEventData): Promise<void>; trackServerToolCall(data: ServerToolCallEventData): Promise<void>; trackServerResourceCall(data: ServerResourceCallEventData): Promise<void>; trackServerPromptCall(data: ServerPromptCallEventData): Promise<void>; trackServerContext(data: ServerContextEventData): Promise<void>; trackMCPClientInit(data: MCPClientInitEventData): Promise<void>; trackConnectorInit(data: ConnectorInitEventData): Promise<void>; trackClientAddServer(serverName: string, serverConfig: Record<string, any>): Promise<void>; trackClientRemoveServer(serverName: string): Promise<void>; trackUseMcpConnection(data: { url: string; transportType: string; success: boolean; errorType?: string | null; connectionTimeMs?: number | null; hasOAuth: boolean; hasSampling: boolean; hasElicitation: boolean; }): Promise<void>; trackUseMcpToolCall(data: { toolName: string; success: boolean; errorType?: string | null; executionTimeMs?: number | null; }): Promise<void>; trackUseMcpResourceRead(data: { resourceUri: string; success: boolean; errorType?: string | null; }): Promise<void>; /** * Identify the current user (useful for linking sessions) * Browser only */ identify(userId: string, properties?: Record<string, any>): void; /** * Reset the user identity (useful for logout) * Browser only */ reset(): void; /** * Flush the telemetry queue (Node.js only - no-op in browser) */ flush(): void; /** * Shutdown the telemetry client (Node.js only - no-op in browser) */ shutdown(): void; /** * Track package download event (Node.js only - no-op in browser) */ trackPackageDownload(properties?: Record<string, any>): Promise<void>; } /** * Alias for Telemetry - shorter name for convenience * * Usage: Tel.getInstance().trackMCPClientInit(...) */ export declare const Tel: typeof Telemetry; /** * Set the global telemetry source used to tag telemetry events. * * @param source - Identifier to persist and include with subsequent telemetry events */ export declare function setTelemetrySource(source: string): void; export {}; //# sourceMappingURL=telemetry-browser.d.ts.map