@contextvm/sdk 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -24,14 +24,9 @@ export interface NostrMCPGatewayOptions {
|
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* The main gateway class that orchestrates communication between Nostr clients
|
|
27
|
-
* and a local MCP server.
|
|
28
|
-
* events and forwarding them to the
|
|
29
|
-
*
|
|
30
|
-
* NostrServerTransport, making this a simple message forwarder.
|
|
31
|
-
* @param options - Configuration options for the gateway
|
|
32
|
-
* @param options.mcpClientTransport - The MCP client transport (e.g., StdioServerTransport)
|
|
33
|
-
* used to connect to and communicate with the original MCP server
|
|
34
|
-
* @param options.nostrTransportOptions - Configuration options for the Nostr server transport
|
|
27
|
+
* and a local MCP server. Acts as a bridge, receiving MCP requests via Nostr
|
|
28
|
+
* events and forwarding them to the MCP server. Supports both single-client
|
|
29
|
+
* and per-client transport modes for stateful MCP connections.
|
|
35
30
|
*/
|
|
36
31
|
export declare class NostrMCPGateway {
|
|
37
32
|
private readonly mcpClientTransport;
|
|
@@ -44,12 +39,19 @@ export declare class NostrMCPGateway {
|
|
|
44
39
|
private readonly handleServerErrorBound;
|
|
45
40
|
private readonly handleServerCloseBound;
|
|
46
41
|
private isRunning;
|
|
42
|
+
/**
|
|
43
|
+
* @param options - Configuration options for the gateway
|
|
44
|
+
*/
|
|
47
45
|
constructor(options: NostrMCPGatewayOptions);
|
|
48
46
|
/**
|
|
49
47
|
* Sets up event handlers for both transports.
|
|
50
48
|
*/
|
|
51
49
|
private setupEventHandlers;
|
|
52
50
|
private getOrCreateClientTransport;
|
|
51
|
+
/**
|
|
52
|
+
* Closes and cleans up the MCP transport for a specific client.
|
|
53
|
+
* Handles both active transports and in-flight creation promises.
|
|
54
|
+
*/
|
|
53
55
|
private closeClientTransport;
|
|
54
56
|
private closeTransportForEviction;
|
|
55
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAEL,2BAA2B,EAC5B,MAAM,wCAAwC,CAAC;AAMhD,KAAK,YAAY,GAAG,MAAM,CAAC;AAM3B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,yDAAyD;IACzD,qBAAqB,EAAE,2BAA2B,CAAC;IAEnD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,CAAC,GAAG,EAAE;QAC/B,YAAY,EAAE,YAAY,CAAC;KAC5B,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAErC,mFAAmF;IACnF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAE3B;IACd,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAE1B;IACd,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyB;IAC/D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAChE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAa;IACpD,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;gBACS,OAAO,EAAE,sBAAsB;IAyC3C;;OAEG;IACH,OAAO,CAAC,kBAAkB;YA8DZ,0BAA0B;IAsDxC;;;OAGG;YACW,oBAAoB;YA6BpB,yBAAyB;IAwBvC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BnC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuClC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACI,QAAQ,IAAI,OAAO;CAG3B"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
+
import { isInitializeRequest, } from '@modelcontextprotocol/sdk/types.js';
|
|
1
2
|
import { NostrServerTransport, } from '../transport/nostr-server-transport.js';
|
|
2
3
|
import { createLogger } from '../core/utils/logger.js';
|
|
3
4
|
import { LruCache } from '../core/utils/lru-cache.js';
|
|
4
5
|
const logger = createLogger('gateway');
|
|
5
6
|
/**
|
|
6
7
|
* The main gateway class that orchestrates communication between Nostr clients
|
|
7
|
-
* and a local MCP server.
|
|
8
|
-
* events and forwarding them to the
|
|
9
|
-
*
|
|
10
|
-
* NostrServerTransport, making this a simple message forwarder.
|
|
11
|
-
* @param options - Configuration options for the gateway
|
|
12
|
-
* @param options.mcpClientTransport - The MCP client transport (e.g., StdioServerTransport)
|
|
13
|
-
* used to connect to and communicate with the original MCP server
|
|
14
|
-
* @param options.nostrTransportOptions - Configuration options for the Nostr server transport
|
|
8
|
+
* and a local MCP server. Acts as a bridge, receiving MCP requests via Nostr
|
|
9
|
+
* events and forwarding them to the MCP server. Supports both single-client
|
|
10
|
+
* and per-client transport modes for stateful MCP connections.
|
|
15
11
|
*/
|
|
16
12
|
export class NostrMCPGateway {
|
|
13
|
+
/**
|
|
14
|
+
* @param options - Configuration options for the gateway
|
|
15
|
+
*/
|
|
17
16
|
constructor(options) {
|
|
18
17
|
var _a;
|
|
19
18
|
this.isRunning = false;
|
|
@@ -62,14 +61,23 @@ export class NostrMCPGateway {
|
|
|
62
61
|
logger.debug('Received message from Nostr:', message);
|
|
63
62
|
this.mcpClientTransport.send(message).catch(this.handleServerErrorBound);
|
|
64
63
|
};
|
|
65
|
-
this.nostrServerTransport.onmessageWithContext = (message, ctx) => {
|
|
64
|
+
this.nostrServerTransport.onmessageWithContext = async (message, ctx) => {
|
|
65
|
+
// Close existing transport on re-initialization to prevent "already initialized"
|
|
66
|
+
// errors with stateful transports (e.g., Streamable HTTP).
|
|
67
|
+
if (isInitializeRequest(message)) {
|
|
68
|
+
await this.closeClientTransport(ctx.clientPubkey);
|
|
69
|
+
}
|
|
66
70
|
logger.debug('Received message from Nostr (context):', {
|
|
67
71
|
clientPubkey: ctx.clientPubkey,
|
|
68
72
|
message,
|
|
69
73
|
});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
.
|
|
74
|
+
try {
|
|
75
|
+
const transport = await this.getOrCreateClientTransport(ctx.clientPubkey);
|
|
76
|
+
await transport.send(message);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
this.handleServerErrorBound(error instanceof Error ? error : new Error(String(error)));
|
|
80
|
+
}
|
|
73
81
|
};
|
|
74
82
|
this.nostrServerTransport.onerror = this.handleNostrErrorBound;
|
|
75
83
|
this.nostrServerTransport.onclose = this.handleNostrCloseBound;
|
|
@@ -128,6 +136,10 @@ export class NostrMCPGateway {
|
|
|
128
136
|
(_c = this.clientTransportPromises) === null || _c === void 0 ? void 0 : _c.delete(clientPubkey);
|
|
129
137
|
}
|
|
130
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Closes and cleans up the MCP transport for a specific client.
|
|
141
|
+
* Handles both active transports and in-flight creation promises.
|
|
142
|
+
*/
|
|
131
143
|
async closeClientTransport(clientPubkey) {
|
|
132
144
|
var _a, _b;
|
|
133
145
|
if (!this.clientTransports) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gateway/index.ts"],"names":[],"mappings":"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"}
|