@@ -32,7 +32,7 @@ export function wrapMcpServerWithSentry<S extends object>(mcpServerInstance: S):
32
32
const serverInstance = mcpServerInstance as MCPServerInstance ;
33
33
34
34
// Wrap connect() to intercept AFTER Protocol sets up transport handlers
35
- const originalConnect = serverInstance . connect ;
35
+ const originalConnect = serverInstance . connect . bind ( serverInstance ) ;
36
36
serverInstance . connect = new Proxy ( originalConnect , {
37
37
async apply ( target , thisArg , argArray ) {
38
38
const [ transport , ...restArgs ] = argArray as [ MCPTransport , ...unknown [ ] ] ;
@@ -42,7 +42,7 @@ export function wrapMcpServerWithSentry<S extends object>(mcpServerInstance: S):
42
42
43
43
// Intercept incoming messages via onmessage
44
44
if ( transport . onmessage ) {
45
- const protocolOnMessage = transport . onmessage ;
45
+ const protocolOnMessage = transport . onmessage . bind ( transport ) ;
46
46
47
47
transport . onmessage = new Proxy ( protocolOnMessage , {
48
48
apply ( onMessageTarget , onMessageThisArg , onMessageArgs ) {
@@ -67,7 +67,7 @@ export function wrapMcpServerWithSentry<S extends object>(mcpServerInstance: S):
67
67
68
68
// Intercept outgoing messages via send
69
69
if ( transport . send ) {
70
- const originalSend = transport . send ;
70
+ const originalSend = transport . send . bind ( transport ) ;
71
71
72
72
transport . send = new Proxy ( originalSend , {
73
73
async apply ( sendTarget , sendThisArg , sendArgs ) {
@@ -87,10 +87,10 @@ export function wrapMcpServerWithSentry<S extends object>(mcpServerInstance: S):
87
87
88
88
// Handle transport lifecycle events
89
89
if ( transport . onclose ) {
90
- const originalOnClose = transport . onclose ;
90
+ const originalOnClose = transport . onclose . bind ( transport ) ;
91
91
transport . onclose = new Proxy ( originalOnClose , {
92
92
apply ( onCloseTarget , onCloseThisArg , onCloseArgs ) {
93
- //TODO(bete): session and request correlation (methods at the bottom of this file)
93
+ // TODO(bete): session and request correlation (methods at the bottom of this file)
94
94
// if (transport.sessionId) {
95
95
// handleTransportOnClose(transport.sessionId);
96
96
// }
0 commit comments