@1mcp/agent 0.13.1 → 0.14.0
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.
- package/README.md +28 -20
- package/build/constants.d.ts +1 -1
- package/build/constants.js +1 -1
- package/build/core/client/clientManager.d.ts +55 -39
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +180 -171
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/server/agentConfig.d.ts +13 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +16 -0
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/serverManager.d.ts +11 -4
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +47 -23
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/types/server.d.ts +17 -0
- package/build/core/types/server.d.ts.map +1 -1
- package/build/core/types/server.js +14 -1
- package/build/core/types/server.js.map +1 -1
- package/build/handlers/notificationHandlers.d.ts +2 -2
- package/build/handlers/notificationHandlers.d.ts.map +1 -1
- package/build/handlers/notificationHandlers.js +15 -10
- package/build/handlers/notificationHandlers.js.map +1 -1
- package/build/handlers/requestHandlers.d.ts +1 -1
- package/build/handlers/requestHandlers.d.ts.map +1 -1
- package/build/handlers/requestHandlers.js +68 -67
- package/build/handlers/requestHandlers.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -1
- package/build/logger/mcpLoggingEnhancer.js +18 -1
- package/build/logger/mcpLoggingEnhancer.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +3 -2
- package/build/server.js.map +1 -1
- package/build/services/configReloadService.d.ts.map +1 -1
- package/build/services/configReloadService.js +3 -2
- package/build/services/configReloadService.js.map +1 -1
- package/build/transport/http/middlewares/httpRequestLogger.d.ts +16 -0
- package/build/transport/http/middlewares/httpRequestLogger.d.ts.map +1 -0
- package/build/transport/http/middlewares/httpRequestLogger.js +41 -0
- package/build/transport/http/middlewares/httpRequestLogger.js.map +1 -0
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.js +1 -0
- package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
- package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/oauthRoutes.js +3 -3
- package/build/transport/http/routes/oauthRoutes.js.map +1 -1
- package/build/transport/http/routes/sseRoutes.d.ts +1 -2
- package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/sseRoutes.js +12 -7
- package/build/transport/http/routes/sseRoutes.js.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.d.ts +1 -2
- package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.js +12 -12
- package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
- package/build/transport/http/server.d.ts +1 -0
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +11 -5
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/transportFactory.js +2 -2
- package/build/transport/transportFactory.js.map +1 -1
- package/build/utils/operationExecution.d.ts +10 -0
- package/build/utils/operationExecution.d.ts.map +1 -0
- package/build/utils/operationExecution.js +36 -0
- package/build/utils/operationExecution.js.map +1 -0
- package/build/utils/pagination.d.ts.map +1 -1
- package/build/utils/pagination.js +22 -13
- package/build/utils/pagination.js.map +1 -1
- package/package.json +1 -1
- package/build/core/client/clientFactory.d.ts +0 -25
- package/build/core/client/clientFactory.d.ts.map +0 -1
- package/build/core/client/clientFactory.js +0 -12
- package/build/core/client/clientFactory.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientManager.js","sourceRoot":"","sources":["../../../src/core/client/clientManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientManager.js","sourceRoot":"","sources":["../../../src/core/client/clientManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
export interface AgentConfig {
|
|
8
8
|
host: string;
|
|
9
9
|
port: number;
|
|
10
|
+
externalUrl?: string;
|
|
10
11
|
auth: {
|
|
11
12
|
enabled: boolean;
|
|
12
13
|
sessionTtlMinutes: number;
|
|
@@ -131,5 +132,17 @@ export declare class AgentConfigManager {
|
|
|
131
132
|
* @returns True if enhanced security middleware is enabled, false otherwise
|
|
132
133
|
*/
|
|
133
134
|
isEnhancedSecurityEnabled(): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Gets the external URL if configured.
|
|
137
|
+
*
|
|
138
|
+
* @returns The external URL or undefined if not set
|
|
139
|
+
*/
|
|
140
|
+
getExternalUrl(): string | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* Gets the server URL, preferring external URL if set, otherwise falling back to http://host:port.
|
|
143
|
+
*
|
|
144
|
+
* @returns The server URL to use for OAuth callbacks and public URLs
|
|
145
|
+
*/
|
|
146
|
+
getUrl(): string;
|
|
134
147
|
}
|
|
135
148
|
//# sourceMappingURL=agentConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;IACH,OAAO;IAsBP;;;;;;;OAOG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;;;;;OAOG;IACI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAaxD;;;;;;;OAOG;IACI,SAAS,IAAI,WAAW;IAI/B;;;;OAIG;IACI,aAAa,IAAI,OAAO;IAI/B;;;;OAIG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAIlD;;;;OAIG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;;;OAIG;IACI,kBAAkB,IAAI,MAAM;IAInC;;;;OAIG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,wBAAwB,IAAI,OAAO;IAI1C;;;;OAIG;IACI,yBAAyB,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;IACH,OAAO;IAsBP;;;;;;;OAOG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;;;;;OAOG;IACI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAaxD;;;;;;;OAOG;IACI,SAAS,IAAI,WAAW;IAI/B;;;;OAIG;IACI,aAAa,IAAI,OAAO;IAI/B;;;;OAIG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAIlD;;;;OAIG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;;;OAIG;IACI,kBAAkB,IAAI,MAAM;IAInC;;;;OAIG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,wBAAwB,IAAI,OAAO;IAI1C;;;;OAIG;IACI,yBAAyB,IAAI,OAAO;IAI3C;;;;OAIG;IACI,cAAc,IAAI,MAAM,GAAG,SAAS;IAI3C;;;;OAIG;IACI,MAAM,IAAI,MAAM;CAGxB"}
|
|
@@ -162,5 +162,21 @@ export class AgentConfigManager {
|
|
|
162
162
|
isEnhancedSecurityEnabled() {
|
|
163
163
|
return this.config.features.enhancedSecurity;
|
|
164
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Gets the external URL if configured.
|
|
167
|
+
*
|
|
168
|
+
* @returns The external URL or undefined if not set
|
|
169
|
+
*/
|
|
170
|
+
getExternalUrl() {
|
|
171
|
+
return this.config.externalUrl;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Gets the server URL, preferring external URL if set, otherwise falling back to http://host:port.
|
|
175
|
+
*
|
|
176
|
+
* @returns The server URL to use for OAuth callbacks and public URLs
|
|
177
|
+
*/
|
|
178
|
+
getUrl() {
|
|
179
|
+
return this.config.externalUrl || `http://${this.config.host}:${this.config.port}`;
|
|
180
|
+
}
|
|
165
181
|
}
|
|
166
182
|
//# sourceMappingURL=agentConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
2
|
-
import { OutboundConnections, InboundConnection, InboundConnectionConfig } from '../types/index.js';
|
|
2
|
+
import { OutboundConnections, InboundConnection, InboundConnectionConfig, OperationOptions } from '../types/index.js';
|
|
3
3
|
import type { OutboundConnection } from '../types/client.js';
|
|
4
4
|
export declare class ServerManager {
|
|
5
5
|
private static instance;
|
|
6
|
-
private
|
|
6
|
+
private inboundConns;
|
|
7
7
|
private serverConfig;
|
|
8
8
|
private serverCapabilities;
|
|
9
|
-
private
|
|
9
|
+
private outboundConns;
|
|
10
10
|
private transports;
|
|
11
11
|
private connectionSemaphore;
|
|
12
12
|
private disconnectingIds;
|
|
@@ -16,7 +16,7 @@ export declare class ServerManager {
|
|
|
16
16
|
version: string;
|
|
17
17
|
}, capabilities: {
|
|
18
18
|
capabilities: Record<string, unknown>;
|
|
19
|
-
},
|
|
19
|
+
}, outboundConns: OutboundConnections, transports: Record<string, Transport>): ServerManager;
|
|
20
20
|
static get current(): ServerManager;
|
|
21
21
|
static resetInstance(): void;
|
|
22
22
|
connectTransport(transport: Transport, sessionId: string, opts: InboundConnectionConfig): Promise<void>;
|
|
@@ -35,5 +35,12 @@ export declare class ServerManager {
|
|
|
35
35
|
getActiveTransportsCount(): number;
|
|
36
36
|
getServer(sessionId: string): InboundConnection | undefined;
|
|
37
37
|
updateClientsAndTransports(newClients: OutboundConnections, newTransports: Record<string, Transport>): void;
|
|
38
|
+
/**
|
|
39
|
+
* Executes a server operation with error handling and retry logic
|
|
40
|
+
* @param inboundConn The inbound connection to execute the operation on
|
|
41
|
+
* @param operation The operation to execute
|
|
42
|
+
* @param options Operation options including timeout and retry settings
|
|
43
|
+
*/
|
|
44
|
+
executeServerOperation<T>(inboundConn: InboundConnection, operation: (inboundConn: InboundConnection) => Promise<T>, options?: OperationOptions): Promise<T>;
|
|
38
45
|
}
|
|
39
46
|
//# sourceMappingURL=serverManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverManager.d.ts","sourceRoot":"","sources":["../../../src/core/server/serverManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAK1E,OAAO,
|
|
1
|
+
{"version":3,"file":"serverManager.d.ts","sourceRoot":"","sources":["../../../src/core/server/serverManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAK1E,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,kBAAkB,CAA4C;IAEtE,OAAO,CAAC,aAAa,CAA8D;IACnF,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO;WAYO,mBAAmB,CAC/B,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACzC,YAAY,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EACvD,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,aAAa;IAOhB,WAAkB,OAAO,IAAI,aAAa,CAEzC;WAGa,aAAa,IAAI,IAAI;IAatB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;YA2BtG,iBAAiB;YA2BjB,SAAS;IAkChB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAiCzE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItD,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAUvC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAIhD,UAAU,IAAI,mBAAmB;IAIxC;;;OAGG;IACI,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI7D,wBAAwB,IAAI,MAAM;IAIlC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI3D,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAKlH;;;;;OAKG;IACU,sBAAsB,CAAC,CAAC,EACnC,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACzD,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC;CAQd"}
|
|
@@ -3,24 +3,26 @@ import logger from '../../logger/logger.js';
|
|
|
3
3
|
import configReloadService from '../../services/configReloadService.js';
|
|
4
4
|
import { setupCapabilities } from '../../capabilities/capabilityManager.js';
|
|
5
5
|
import { enhanceServerWithLogging } from '../../logger/mcpLoggingEnhancer.js';
|
|
6
|
+
import { ServerStatus, } from '../types/index.js';
|
|
7
|
+
import { executeOperation } from '../../utils/operationExecution.js';
|
|
6
8
|
export class ServerManager {
|
|
7
9
|
static instance;
|
|
8
|
-
|
|
10
|
+
inboundConns = new Map();
|
|
9
11
|
serverConfig;
|
|
10
12
|
serverCapabilities;
|
|
11
|
-
|
|
13
|
+
outboundConns = new Map();
|
|
12
14
|
transports = {};
|
|
13
15
|
connectionSemaphore = new Map();
|
|
14
16
|
disconnectingIds = new Set();
|
|
15
|
-
constructor(config, capabilities,
|
|
17
|
+
constructor(config, capabilities, outboundConns, transports) {
|
|
16
18
|
this.serverConfig = config;
|
|
17
19
|
this.serverCapabilities = capabilities;
|
|
18
|
-
this.
|
|
20
|
+
this.outboundConns = outboundConns;
|
|
19
21
|
this.transports = transports;
|
|
20
22
|
}
|
|
21
|
-
static getOrCreateInstance(config, capabilities,
|
|
23
|
+
static getOrCreateInstance(config, capabilities, outboundConns, transports) {
|
|
22
24
|
if (!ServerManager.instance) {
|
|
23
|
-
ServerManager.instance = new ServerManager(config, capabilities,
|
|
25
|
+
ServerManager.instance = new ServerManager(config, capabilities, outboundConns, transports);
|
|
24
26
|
}
|
|
25
27
|
return ServerManager.instance;
|
|
26
28
|
}
|
|
@@ -31,10 +33,10 @@ export class ServerManager {
|
|
|
31
33
|
static resetInstance() {
|
|
32
34
|
if (ServerManager.instance) {
|
|
33
35
|
// Clean up existing connections with forced close
|
|
34
|
-
for (const [sessionId] of ServerManager.instance.
|
|
36
|
+
for (const [sessionId] of ServerManager.instance.inboundConns) {
|
|
35
37
|
ServerManager.instance.disconnectTransport(sessionId, true);
|
|
36
38
|
}
|
|
37
|
-
ServerManager.instance.
|
|
39
|
+
ServerManager.instance.inboundConns.clear();
|
|
38
40
|
ServerManager.instance.connectionSemaphore.clear();
|
|
39
41
|
ServerManager.instance.disconnectingIds.clear();
|
|
40
42
|
}
|
|
@@ -49,7 +51,7 @@ export class ServerManager {
|
|
|
49
51
|
return;
|
|
50
52
|
}
|
|
51
53
|
// Check if transport is already connected
|
|
52
|
-
if (this.
|
|
54
|
+
if (this.inboundConns.has(sessionId)) {
|
|
53
55
|
logger.warn(`Transport already connected for session ${sessionId}`);
|
|
54
56
|
return;
|
|
55
57
|
}
|
|
@@ -74,9 +76,11 @@ export class ServerManager {
|
|
|
74
76
|
await Promise.race([this.doConnect(transport, sessionId, opts), timeoutPromise]);
|
|
75
77
|
}
|
|
76
78
|
catch (error) {
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
// Update status to Error if connection exists
|
|
80
|
+
const connection = this.inboundConns.get(sessionId);
|
|
81
|
+
if (connection) {
|
|
82
|
+
connection.status = ServerStatus.Error;
|
|
83
|
+
connection.lastError = error instanceof Error ? error : new Error(String(error));
|
|
80
84
|
}
|
|
81
85
|
logger.error(`Failed to connect transport for session ${sessionId}:`, error);
|
|
82
86
|
throw error;
|
|
@@ -88,18 +92,23 @@ export class ServerManager {
|
|
|
88
92
|
// Create server info object first
|
|
89
93
|
const serverInfo = {
|
|
90
94
|
server,
|
|
95
|
+
status: ServerStatus.Connecting,
|
|
96
|
+
connectedAt: new Date(),
|
|
91
97
|
...opts,
|
|
92
98
|
};
|
|
93
99
|
// Enhance server with logging middleware
|
|
94
100
|
enhanceServerWithLogging(server);
|
|
95
101
|
// Set up capabilities for this server instance
|
|
96
|
-
await setupCapabilities(this.
|
|
102
|
+
await setupCapabilities(this.outboundConns, serverInfo);
|
|
97
103
|
// Update the configuration reload service with server info
|
|
98
104
|
configReloadService.updateServerInfo(sessionId, serverInfo);
|
|
99
105
|
// Store the server instance
|
|
100
|
-
this.
|
|
106
|
+
this.inboundConns.set(sessionId, serverInfo);
|
|
101
107
|
// Connect the transport to the new server instance
|
|
102
108
|
await server.connect(transport);
|
|
109
|
+
// Update status to Connected after successful connection
|
|
110
|
+
serverInfo.status = ServerStatus.Connected;
|
|
111
|
+
serverInfo.lastConnected = new Date();
|
|
103
112
|
logger.info(`Connected transport for session ${sessionId}`);
|
|
104
113
|
}
|
|
105
114
|
disconnectTransport(sessionId, forceClose = false) {
|
|
@@ -107,10 +116,12 @@ export class ServerManager {
|
|
|
107
116
|
if (this.disconnectingIds.has(sessionId)) {
|
|
108
117
|
return;
|
|
109
118
|
}
|
|
110
|
-
const server = this.
|
|
119
|
+
const server = this.inboundConns.get(sessionId);
|
|
111
120
|
if (server) {
|
|
112
121
|
this.disconnectingIds.add(sessionId);
|
|
113
122
|
try {
|
|
123
|
+
// Update status to Disconnected
|
|
124
|
+
server.status = ServerStatus.Disconnected;
|
|
114
125
|
// Only close the transport if explicitly requested (e.g., during shutdown)
|
|
115
126
|
// Don't close if this is called from an onclose handler to avoid recursion
|
|
116
127
|
if (forceClose && server.server.transport) {
|
|
@@ -121,7 +132,7 @@ export class ServerManager {
|
|
|
121
132
|
logger.error(`Error closing transport for session ${sessionId}:`, error);
|
|
122
133
|
}
|
|
123
134
|
}
|
|
124
|
-
this.
|
|
135
|
+
this.inboundConns.delete(sessionId);
|
|
125
136
|
configReloadService.removeServerInfo(sessionId);
|
|
126
137
|
logger.info(`Disconnected transport for session ${sessionId}`);
|
|
127
138
|
}
|
|
@@ -131,11 +142,11 @@ export class ServerManager {
|
|
|
131
142
|
}
|
|
132
143
|
}
|
|
133
144
|
getTransport(sessionId) {
|
|
134
|
-
return this.
|
|
145
|
+
return this.inboundConns.get(sessionId)?.server.transport;
|
|
135
146
|
}
|
|
136
147
|
getTransports() {
|
|
137
148
|
const transports = new Map();
|
|
138
|
-
for (const [id, server] of this.
|
|
149
|
+
for (const [id, server] of this.inboundConns.entries()) {
|
|
139
150
|
if (server.server.transport) {
|
|
140
151
|
transports.set(id, server.server.transport);
|
|
141
152
|
}
|
|
@@ -146,24 +157,37 @@ export class ServerManager {
|
|
|
146
157
|
return this.transports;
|
|
147
158
|
}
|
|
148
159
|
getClients() {
|
|
149
|
-
return this.
|
|
160
|
+
return this.outboundConns;
|
|
150
161
|
}
|
|
151
162
|
/**
|
|
152
163
|
* Safely get a client by name. Returns undefined if not found or not an own property.
|
|
153
164
|
* Encapsulates access to prevent prototype pollution and accidental key collisions.
|
|
154
165
|
*/
|
|
155
166
|
getClient(serverName) {
|
|
156
|
-
return this.
|
|
167
|
+
return this.outboundConns.get(serverName);
|
|
157
168
|
}
|
|
158
169
|
getActiveTransportsCount() {
|
|
159
|
-
return this.
|
|
170
|
+
return this.inboundConns.size;
|
|
160
171
|
}
|
|
161
172
|
getServer(sessionId) {
|
|
162
|
-
return this.
|
|
173
|
+
return this.inboundConns.get(sessionId);
|
|
163
174
|
}
|
|
164
175
|
updateClientsAndTransports(newClients, newTransports) {
|
|
165
|
-
this.
|
|
176
|
+
this.outboundConns = newClients;
|
|
166
177
|
this.transports = newTransports;
|
|
167
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Executes a server operation with error handling and retry logic
|
|
181
|
+
* @param inboundConn The inbound connection to execute the operation on
|
|
182
|
+
* @param operation The operation to execute
|
|
183
|
+
* @param options Operation options including timeout and retry settings
|
|
184
|
+
*/
|
|
185
|
+
async executeServerOperation(inboundConn, operation, options = {}) {
|
|
186
|
+
// Check connection status before executing operation
|
|
187
|
+
if (inboundConn.status !== ServerStatus.Connected || !inboundConn.server.transport) {
|
|
188
|
+
throw new Error(`Cannot execute operation: server status is ${inboundConn.status}`);
|
|
189
|
+
}
|
|
190
|
+
return executeOperation(() => operation(inboundConn), 'server', options);
|
|
191
|
+
}
|
|
168
192
|
}
|
|
169
193
|
//# sourceMappingURL=serverManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverManager.js","sourceRoot":"","sources":["../../../src/core/server/serverManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,mBAAmB,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"serverManager.js","sourceRoot":"","sources":["../../../src/core/server/serverManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
2
|
import { ServerCapabilities } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Enum representing possible server connection states
|
|
5
|
+
*/
|
|
6
|
+
export declare enum ServerStatus {
|
|
7
|
+
/** Server is currently connecting */
|
|
8
|
+
Connecting = "connecting",
|
|
9
|
+
/** Server is successfully connected */
|
|
10
|
+
Connected = "connected",
|
|
11
|
+
/** Server is disconnected */
|
|
12
|
+
Disconnected = "disconnected",
|
|
13
|
+
/** Server encountered an error */
|
|
14
|
+
Error = "error"
|
|
15
|
+
}
|
|
3
16
|
export interface InboundConnectionConfig {
|
|
4
17
|
readonly tags?: string[];
|
|
5
18
|
readonly enablePagination?: boolean;
|
|
@@ -9,6 +22,10 @@ export interface InboundConnectionConfig {
|
|
|
9
22
|
*/
|
|
10
23
|
export interface InboundConnection extends InboundConnectionConfig {
|
|
11
24
|
readonly server: Server;
|
|
25
|
+
status: ServerStatus;
|
|
26
|
+
lastError?: Error;
|
|
27
|
+
lastConnected?: Date;
|
|
28
|
+
connectedAt?: Date;
|
|
12
29
|
}
|
|
13
30
|
export type ServerCapability = keyof ServerCapabilities;
|
|
14
31
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/core/types/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/core/types/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE;;GAEG;AACH,oBAAY,YAAY;IACtB,qCAAqC;IACrC,UAAU,eAAe;IACzB,uCAAuC;IACvC,SAAS,cAAc;IACvB,6BAA6B;IAC7B,YAAY,iBAAiB;IAC7B,kCAAkC;IAClC,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Enum representing possible server connection states
|
|
3
|
+
*/
|
|
4
|
+
export var ServerStatus;
|
|
5
|
+
(function (ServerStatus) {
|
|
6
|
+
/** Server is currently connecting */
|
|
7
|
+
ServerStatus["Connecting"] = "connecting";
|
|
8
|
+
/** Server is successfully connected */
|
|
9
|
+
ServerStatus["Connected"] = "connected";
|
|
10
|
+
/** Server is disconnected */
|
|
11
|
+
ServerStatus["Disconnected"] = "disconnected";
|
|
12
|
+
/** Server encountered an error */
|
|
13
|
+
ServerStatus["Error"] = "error";
|
|
14
|
+
})(ServerStatus || (ServerStatus = {}));
|
|
2
15
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/core/types/server.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/core/types/server.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAN,IAAY,YASX;AATD,WAAY,YAAY;IACtB,qCAAqC;IACrC,yCAAyB,CAAA;IACzB,uCAAuC;IACvC,uCAAuB,CAAA;IACvB,6BAA6B;IAC7B,6CAA6B,CAAA;IAC7B,kCAAkC;IAClC,+BAAe,CAAA;AACjB,CAAC,EATW,YAAY,KAAZ,YAAY,QASvB"}
|
|
@@ -4,11 +4,11 @@ import { OutboundConnections, InboundConnection } from '../core/types/index.js';
|
|
|
4
4
|
* @param clients Record of client instances
|
|
5
5
|
* @param serverInfo The MCP server instance
|
|
6
6
|
*/
|
|
7
|
-
export declare function setupClientToServerNotifications(
|
|
7
|
+
export declare function setupClientToServerNotifications(outboundConns: OutboundConnections, inboundConn: InboundConnection): void;
|
|
8
8
|
/**
|
|
9
9
|
* Sets up server-to-client notification handlers
|
|
10
10
|
* @param clients Record of client instances
|
|
11
11
|
* @param serverInfo The MCP server instance
|
|
12
12
|
*/
|
|
13
|
-
export declare function setupServerToClientNotifications(
|
|
13
|
+
export declare function setupServerToClientNotifications(outboundConns: OutboundConnections, inboundConn: InboundConnection): void;
|
|
14
14
|
//# sourceMappingURL=notificationHandlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notificationHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/notificationHandlers.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"notificationHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/notificationHandlers.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAA8B,MAAM,wBAAwB,CAAC;AAC5G;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,mBAAmB,EAClC,WAAW,EAAE,iBAAiB,GAC7B,IAAI,CA8CN;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,aAAa,EAAE,mBAAmB,EAClC,WAAW,EAAE,iBAAiB,GAC7B,IAAI,CAyCN"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { CancelledNotificationSchema, ProgressNotificationSchema, LoggingMessageNotificationSchema, ResourceUpdatedNotificationSchema, ResourceListChangedNotificationSchema, ToolListChangedNotificationSchema, PromptListChangedNotificationSchema, InitializedNotificationSchema, RootsListChangedNotificationSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import logger from '../logger/logger.js';
|
|
3
3
|
import { withErrorHandling } from '../utils/errorHandling.js';
|
|
4
|
-
import { ClientStatus } from '../core/types/index.js';
|
|
4
|
+
import { ClientStatus, ServerStatus } from '../core/types/index.js';
|
|
5
5
|
/**
|
|
6
6
|
* Sets up client-to-server notification handlers
|
|
7
7
|
* @param clients Record of client instances
|
|
8
8
|
* @param serverInfo The MCP server instance
|
|
9
9
|
*/
|
|
10
|
-
export function setupClientToServerNotifications(
|
|
10
|
+
export function setupClientToServerNotifications(outboundConns, inboundConn) {
|
|
11
11
|
const clientNotificationSchemas = [
|
|
12
12
|
CancelledNotificationSchema,
|
|
13
13
|
ProgressNotificationSchema,
|
|
@@ -17,10 +17,15 @@ export function setupClientToServerNotifications(clients, serverInfo) {
|
|
|
17
17
|
ToolListChangedNotificationSchema,
|
|
18
18
|
PromptListChangedNotificationSchema,
|
|
19
19
|
];
|
|
20
|
-
for (const [name,
|
|
20
|
+
for (const [name, outboundConn] of outboundConns.entries()) {
|
|
21
21
|
clientNotificationSchemas.forEach((schema) => {
|
|
22
|
-
|
|
22
|
+
outboundConn.client.setNotificationHandler(schema, withErrorHandling(async (notification) => {
|
|
23
23
|
logger.info(`Received notification in client: ${name} ${JSON.stringify(notification)}`);
|
|
24
|
+
// Check if client is connected before attempting to send
|
|
25
|
+
if (inboundConn.status !== ServerStatus.Connected || !inboundConn.server.transport) {
|
|
26
|
+
logger.warn(`Server transport not connected. Dropping notification from ${name}`);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
24
29
|
// Try to send notification, catch connection errors gracefully
|
|
25
30
|
try {
|
|
26
31
|
// Preserve original message structure and only modify params
|
|
@@ -31,7 +36,7 @@ export function setupClientToServerNotifications(clients, serverInfo) {
|
|
|
31
36
|
server: name,
|
|
32
37
|
},
|
|
33
38
|
};
|
|
34
|
-
|
|
39
|
+
inboundConn.server.notification(forwardedNotification);
|
|
35
40
|
}
|
|
36
41
|
catch (error) {
|
|
37
42
|
if (error instanceof Error && error.message.includes('Not connected')) {
|
|
@@ -50,18 +55,18 @@ export function setupClientToServerNotifications(clients, serverInfo) {
|
|
|
50
55
|
* @param clients Record of client instances
|
|
51
56
|
* @param serverInfo The MCP server instance
|
|
52
57
|
*/
|
|
53
|
-
export function setupServerToClientNotifications(
|
|
58
|
+
export function setupServerToClientNotifications(outboundConns, inboundConn) {
|
|
54
59
|
const serverNotificationSchemas = [
|
|
55
60
|
CancelledNotificationSchema,
|
|
56
61
|
ProgressNotificationSchema,
|
|
57
62
|
InitializedNotificationSchema,
|
|
58
63
|
RootsListChangedNotificationSchema,
|
|
59
64
|
];
|
|
60
|
-
for (const [name,
|
|
65
|
+
for (const [name, outboundConn] of outboundConns.entries()) {
|
|
61
66
|
serverNotificationSchemas.forEach((schema) => {
|
|
62
|
-
|
|
67
|
+
inboundConn.server.setNotificationHandler(schema, withErrorHandling(async (notification) => {
|
|
63
68
|
logger.info(`Received notification in server: ${name} ${JSON.stringify(notification)}`);
|
|
64
|
-
if (
|
|
69
|
+
if (outboundConn.status !== ClientStatus.Connected || !outboundConn.client.transport) {
|
|
65
70
|
logger.warn(`Client ${name} is not connected. Notification not sent.`);
|
|
66
71
|
return;
|
|
67
72
|
}
|
|
@@ -75,7 +80,7 @@ export function setupServerToClientNotifications(clients, serverInfo) {
|
|
|
75
80
|
client: name,
|
|
76
81
|
},
|
|
77
82
|
};
|
|
78
|
-
|
|
83
|
+
outboundConn.client.notification(forwardedNotification);
|
|
79
84
|
}
|
|
80
85
|
catch (error) {
|
|
81
86
|
if (error instanceof Error && error.message.includes('Not connected')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notificationHandlers.js","sourceRoot":"","sources":["../../src/handlers/notificationHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,gCAAgC,EAChC,iCAAiC,EACjC,qCAAqC,EACrC,iCAAiC,EACjC,mCAAmC,EACnC,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAA0C,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"notificationHandlers.js","sourceRoot":"","sources":["../../src/handlers/notificationHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@ import { OutboundConnections, InboundConnection } from '../core/types/index.js';
|
|
|
6
6
|
* @param capabilities The server capabilities
|
|
7
7
|
* @param tags Array of tags to filter clients by
|
|
8
8
|
*/
|
|
9
|
-
export declare function registerRequestHandlers(
|
|
9
|
+
export declare function registerRequestHandlers(outboundConns: OutboundConnections, inboundConn: InboundConnection): void;
|
|
10
10
|
//# sourceMappingURL=requestHandlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/requestHandlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../../src/handlers/requestHandlers.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAgB,MAAM,wBAAwB,CAAC;AAuD9F;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,GAAG,IAAI,CA6ChH"}
|