@@ -53,23 +53,29 @@ export class Server {
5353
5454 this . emitServerEvent ( "start" , Date . now ( ) - this . startTime ) ;
5555 } ;
56+
57+ this . mcpServer . server . onclose = ( ) => {
58+ const closeTime = Date . now ( ) ;
59+ this . emitServerEvent ( "stop" , Date . now ( ) - closeTime ) ;
60+ } ;
61+
62+ this . mcpServer . server . onerror = ( error : Error ) => {
63+ const closeTime = Date . now ( ) ;
64+ this . emitServerEvent ( "stop" , Date . now ( ) - closeTime , error ) ;
65+ } ;
5666 }
5767
5868 async close ( ) : Promise < void > {
59- const closeTime = Date . now ( ) ;
6069 await this . session . close ( ) ;
6170 await this . mcpServer . close ( ) ;
62-
63- this . emitServerEvent ( "stop" , Date . now ( ) - closeTime ) ;
6471 }
6572
66-
6773 /**
6874 * Emits a server event
6975 * @param command - The server command (e.g., "start", "stop", "register", "deregister")
7076 * @param additionalProperties - Additional properties specific to the event
7177 */
72- async emitServerEvent ( command : ServerCommand , commandDuration : number ) : Promise < void > {
78+ emitServerEvent ( command : ServerCommand , commandDuration : number , error ?: Error ) {
7379 const event : ServerEvent = {
7480 timestamp : new Date ( ) . toISOString ( ) ,
7581 source : "mdbmcp" ,
@@ -88,9 +94,13 @@ export class Server {
8894 }
8995 if ( command === "stop" ) {
9096 event . properties . runtime_duration_ms = Date . now ( ) - this . startTime ;
97+ if ( error ) {
98+ event . properties . result = "failure" ;
99+ event . properties . reason = error . message ;
100+ }
91101 }
92102
93- await this . telemetry . emitEvents ( [ event ] ) ;
103+ this . telemetry . emitEvents ( [ event ] ) . catch ( ( ) => { } ) ;
94104 }
95105
96106 private registerTools ( ) {
0 commit comments