@samanhappy/mcphub 0.10.6 → 0.11.1
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.fr.md +36 -152
- package/README.md +34 -255
- package/README.zh.md +33 -212
- package/dist/config/DaoConfigService.js +3 -3
- package/dist/config/DaoConfigService.js.map +1 -1
- package/dist/controllers/authController.js +2 -2
- package/dist/controllers/authController.js.map +1 -1
- package/dist/controllers/configController.js +32 -5
- package/dist/controllers/configController.js.map +1 -1
- package/dist/controllers/groupController.js +24 -24
- package/dist/controllers/groupController.js.map +1 -1
- package/dist/controllers/oauthClientController.js +13 -13
- package/dist/controllers/oauthClientController.js.map +1 -1
- package/dist/controllers/oauthDynamicRegistrationController.js +9 -9
- package/dist/controllers/oauthDynamicRegistrationController.js.map +1 -1
- package/dist/controllers/oauthServerController.js +1 -1
- package/dist/controllers/oauthServerController.js.map +1 -1
- package/dist/controllers/openApiController.js +1 -1
- package/dist/controllers/openApiController.js.map +1 -1
- package/dist/controllers/serverController.js +134 -96
- package/dist/controllers/serverController.js.map +1 -1
- package/dist/controllers/userController.js +22 -21
- package/dist/controllers/userController.js.map +1 -1
- package/dist/dao/DaoFactory.js +43 -0
- package/dist/dao/DaoFactory.js.map +1 -1
- package/dist/dao/DatabaseDaoFactory.js +86 -0
- package/dist/dao/DatabaseDaoFactory.js.map +1 -0
- package/dist/dao/GroupDaoDbImpl.js +131 -0
- package/dist/dao/GroupDaoDbImpl.js.map +1 -0
- package/dist/dao/OAuthClientDao.js +100 -0
- package/dist/dao/OAuthClientDao.js.map +1 -0
- package/dist/dao/OAuthClientDaoDbImpl.js +83 -0
- package/dist/dao/OAuthClientDaoDbImpl.js.map +1 -0
- package/dist/dao/OAuthTokenDao.js +161 -0
- package/dist/dao/OAuthTokenDao.js.map +1 -0
- package/dist/dao/OAuthTokenDaoDbImpl.js +92 -0
- package/dist/dao/OAuthTokenDaoDbImpl.js.map +1 -0
- package/dist/dao/ServerDaoDbImpl.js +109 -0
- package/dist/dao/ServerDaoDbImpl.js.map +1 -0
- package/dist/dao/SystemConfigDaoDbImpl.js +56 -0
- package/dist/dao/SystemConfigDaoDbImpl.js.map +1 -0
- package/dist/dao/UserConfigDaoDbImpl.js +61 -0
- package/dist/dao/UserConfigDaoDbImpl.js.map +1 -0
- package/dist/dao/UserDaoDbImpl.js +90 -0
- package/dist/dao/UserDaoDbImpl.js.map +1 -0
- package/dist/dao/index.js +11 -0
- package/dist/dao/index.js.map +1 -1
- package/dist/db/entities/Group.js +49 -0
- package/dist/db/entities/Group.js.map +1 -0
- package/dist/db/entities/OAuthClient.js +66 -0
- package/dist/db/entities/OAuthClient.js.map +1 -0
- package/dist/db/entities/OAuthToken.js +66 -0
- package/dist/db/entities/OAuthToken.js.map +1 -0
- package/dist/db/entities/Server.js +93 -0
- package/dist/db/entities/Server.js.map +1 -0
- package/dist/db/entities/SystemConfig.js +66 -0
- package/dist/db/entities/SystemConfig.js.map +1 -0
- package/dist/db/entities/User.js +45 -0
- package/dist/db/entities/User.js.map +1 -0
- package/dist/db/entities/UserConfig.js +45 -0
- package/dist/db/entities/UserConfig.js.map +1 -0
- package/dist/db/entities/index.js +18 -2
- package/dist/db/entities/index.js.map +1 -1
- package/dist/db/repositories/GroupRepository.js +81 -0
- package/dist/db/repositories/GroupRepository.js.map +1 -0
- package/dist/db/repositories/OAuthClientRepository.js +68 -0
- package/dist/db/repositories/OAuthClientRepository.js.map +1 -0
- package/dist/db/repositories/OAuthTokenRepository.js +159 -0
- package/dist/db/repositories/OAuthTokenRepository.js.map +1 -0
- package/dist/db/repositories/ServerRepository.js +80 -0
- package/dist/db/repositories/ServerRepository.js.map +1 -0
- package/dist/db/repositories/SystemConfigRepository.js +64 -0
- package/dist/db/repositories/SystemConfigRepository.js.map +1 -0
- package/dist/db/repositories/UserConfigRepository.js +69 -0
- package/dist/db/repositories/UserConfigRepository.js.map +1 -0
- package/dist/db/repositories/UserRepository.js +68 -0
- package/dist/db/repositories/UserRepository.js.map +1 -0
- package/dist/db/repositories/index.js +8 -1
- package/dist/db/repositories/index.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/middlewares/auth.js +2 -2
- package/dist/middlewares/auth.js.map +1 -1
- package/dist/middlewares/userContext.js +1 -1
- package/dist/middlewares/userContext.js.map +1 -1
- package/dist/models/OAuth.js +90 -122
- package/dist/models/OAuth.js.map +1 -1
- package/dist/models/User.js +29 -48
- package/dist/models/User.js.map +1 -1
- package/dist/routes/index.js +2 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/scripts/migrate-to-database.js +5 -0
- package/dist/scripts/migrate-to-database.js.map +1 -0
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/services/groupService.js +87 -113
- package/dist/services/groupService.js.map +1 -1
- package/dist/services/keepAliveService.js +58 -0
- package/dist/services/keepAliveService.js.map +1 -0
- package/dist/services/mcpOAuthProvider.js +22 -28
- package/dist/services/mcpOAuthProvider.js.map +1 -1
- package/dist/services/mcpService.js +73 -92
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/oauthServerService.js +26 -20
- package/dist/services/oauthServerService.js.map +1 -1
- package/dist/services/oauthService.js +11 -10
- package/dist/services/oauthService.js.map +1 -1
- package/dist/services/oauthSettingsStore.js +17 -12
- package/dist/services/oauthSettingsStore.js.map +1 -1
- package/dist/services/openApiGeneratorService.js +6 -7
- package/dist/services/openApiGeneratorService.js.map +1 -1
- package/dist/services/sseService.js +20 -62
- package/dist/services/sseService.js.map +1 -1
- package/dist/services/userService.js +38 -45
- package/dist/services/userService.js.map +1 -1
- package/dist/utils/migration.js +235 -0
- package/dist/utils/migration.js.map +1 -0
- package/dist/utils/oauthBearer.js +4 -4
- package/dist/utils/oauthBearer.js.map +1 -1
- package/frontend/dist/assets/index-BiA4eB7l.js +251 -0
- package/frontend/dist/assets/index-BiA4eB7l.js.map +1 -0
- package/frontend/dist/index.html +1 -1
- package/mcp_settings.json +23 -1
- package/package.json +1 -1
- package/frontend/dist/assets/index-DDht0WYq.js +0 -251
- package/frontend/dist/assets/index-DDht0WYq.js.map +0 -1
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - Authorization flow handling
|
|
12
12
|
*/
|
|
13
13
|
import { randomBytes } from 'node:crypto';
|
|
14
|
-
import {
|
|
14
|
+
import { getSystemConfigDao } from '../dao/index.js';
|
|
15
15
|
import { initializeOAuthForServer, getRegisteredClient, removeRegisteredClient, fetchScopesFromServer, } from './oauthClientRegistration.js';
|
|
16
16
|
import { clearOAuthData, loadServerConfig, mutateOAuthSettings, persistClientCredentials, persistTokens, updatePendingAuthorization, } from './oauthSettingsStore.js';
|
|
17
17
|
// Import getServerByName to access ServerInfo
|
|
@@ -24,13 +24,22 @@ import { getServerByName } from './mcpService.js';
|
|
|
24
24
|
* so the authorization flow requires external handling (e.g., via web UI).
|
|
25
25
|
*/
|
|
26
26
|
export class MCPHubOAuthProvider {
|
|
27
|
-
constructor(serverName, serverConfig) {
|
|
27
|
+
constructor(serverName, serverConfig, systemInstallBaseUrl) {
|
|
28
28
|
this.serverName = serverName;
|
|
29
29
|
this.serverConfig = serverConfig;
|
|
30
|
+
this._systemInstallBaseUrl = systemInstallBaseUrl;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Factory method to create an MCPHubOAuthProvider with async config loading
|
|
34
|
+
*/
|
|
35
|
+
static async create(serverName, serverConfig) {
|
|
36
|
+
const systemConfigDao = getSystemConfigDao();
|
|
37
|
+
const systemConfig = await systemConfigDao.get();
|
|
38
|
+
const systemInstallBaseUrl = systemConfig?.install?.baseUrl;
|
|
39
|
+
return new MCPHubOAuthProvider(serverName, serverConfig, systemInstallBaseUrl);
|
|
30
40
|
}
|
|
31
41
|
getSystemInstallBaseUrl() {
|
|
32
|
-
|
|
33
|
-
return settings.systemConfig?.install?.baseUrl;
|
|
42
|
+
return this._systemInstallBaseUrl;
|
|
34
43
|
}
|
|
35
44
|
sanitizeRedirectUri(input) {
|
|
36
45
|
if (!input) {
|
|
@@ -163,16 +172,9 @@ export class MCPHubOAuthProvider {
|
|
|
163
172
|
clientInformation() {
|
|
164
173
|
const clientInfo = getRegisteredClient(this.serverName);
|
|
165
174
|
if (!clientInfo) {
|
|
166
|
-
// Try to use static client configuration from cached serverConfig
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if (!serverConfig?.oauth?.clientId) {
|
|
170
|
-
const storedConfig = loadServerConfig(this.serverName);
|
|
171
|
-
if (storedConfig) {
|
|
172
|
-
this.serverConfig = storedConfig;
|
|
173
|
-
serverConfig = storedConfig;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
175
|
+
// Try to use static client configuration from cached serverConfig
|
|
176
|
+
// Note: we only use cache here since this is a sync method
|
|
177
|
+
const serverConfig = this.serverConfig;
|
|
176
178
|
// Try to use static client configuration from serverConfig
|
|
177
179
|
if (serverConfig?.oauth?.clientId) {
|
|
178
180
|
return {
|
|
@@ -219,16 +221,8 @@ export class MCPHubOAuthProvider {
|
|
|
219
221
|
* Get stored OAuth tokens
|
|
220
222
|
*/
|
|
221
223
|
tokens() {
|
|
222
|
-
// Use cached config
|
|
223
|
-
|
|
224
|
-
// If cached config doesn't have tokens, try reloading
|
|
225
|
-
if (!serverConfig?.oauth?.accessToken) {
|
|
226
|
-
const storedConfig = loadServerConfig(this.serverName);
|
|
227
|
-
if (storedConfig) {
|
|
228
|
-
this.serverConfig = storedConfig;
|
|
229
|
-
serverConfig = storedConfig;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
224
|
+
// Use cached config only (tokens are updated via saveTokens which updates cache)
|
|
225
|
+
const serverConfig = this.serverConfig;
|
|
232
226
|
if (!serverConfig?.oauth?.accessToken) {
|
|
233
227
|
return undefined;
|
|
234
228
|
}
|
|
@@ -348,7 +342,7 @@ export class MCPHubOAuthProvider {
|
|
|
348
342
|
if (this._codeVerifier) {
|
|
349
343
|
return this._codeVerifier;
|
|
350
344
|
}
|
|
351
|
-
const storedConfig = loadServerConfig(this.serverName);
|
|
345
|
+
const storedConfig = await loadServerConfig(this.serverName);
|
|
352
346
|
const storedVerifier = storedConfig?.oauth?.pendingAuthorization?.codeVerifier;
|
|
353
347
|
if (storedVerifier) {
|
|
354
348
|
this.serverConfig = storedConfig || this.serverConfig;
|
|
@@ -362,7 +356,7 @@ export class MCPHubOAuthProvider {
|
|
|
362
356
|
* This keeps stored configuration in sync and forces a fresh authorization flow.
|
|
363
357
|
*/
|
|
364
358
|
async invalidateCredentials(scope) {
|
|
365
|
-
const storedConfig = loadServerConfig(this.serverName);
|
|
359
|
+
const storedConfig = await loadServerConfig(this.serverName);
|
|
366
360
|
if (!storedConfig?.oauth) {
|
|
367
361
|
if (scope === 'verifier' || scope === 'all') {
|
|
368
362
|
this._codeVerifier = undefined;
|
|
@@ -464,8 +458,8 @@ export const createOAuthProvider = async (serverName, serverConfig) => {
|
|
|
464
458
|
console.warn(`Failed to initialize OAuth for server ${serverName}:`, error);
|
|
465
459
|
// Continue anyway - the SDK might be able to handle it
|
|
466
460
|
}
|
|
467
|
-
// Create and return the provider
|
|
468
|
-
const provider =
|
|
461
|
+
// Create and return the provider using the factory method
|
|
462
|
+
const provider = await MCPHubOAuthProvider.create(serverName, serverConfig);
|
|
469
463
|
console.log(`Created OAuth provider for server: ${serverName}`);
|
|
470
464
|
return provider;
|
|
471
465
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpOAuthProvider.js","sourceRoot":"","sources":["../../src/services/mcpOAuthProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcpOAuthProvider.js","sourceRoot":"","sources":["../../src/services/mcpOAuthProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
|
5
5
|
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
6
6
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
7
7
|
import { StreamableHTTPClientTransport, } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
8
|
-
import {
|
|
8
|
+
import { expandEnvVars, replaceEnvVars, getNameSeparator } from '../config/index.js';
|
|
9
9
|
import config from '../config/index.js';
|
|
10
10
|
import { getGroup } from './sseService.js';
|
|
11
11
|
import { getServersInGroup, getServerConfigInGroup } from './groupService.js';
|
|
@@ -13,37 +13,11 @@ import { saveToolsAsVectorEmbeddings, searchToolsByVector } from './vectorSearch
|
|
|
13
13
|
import { OpenAPIClient } from '../clients/openapi.js';
|
|
14
14
|
import { RequestContextService } from './requestContextService.js';
|
|
15
15
|
import { getDataService } from './services.js';
|
|
16
|
-
import { getServerDao } from '../dao/index.js';
|
|
16
|
+
import { getServerDao, getSystemConfigDao } from '../dao/index.js';
|
|
17
17
|
import { initializeAllOAuthClients } from './oauthService.js';
|
|
18
18
|
import { createOAuthProvider } from './mcpOAuthProvider.js';
|
|
19
19
|
const servers = {};
|
|
20
|
-
|
|
21
|
-
// Helper function to set up keep-alive ping for SSE connections
|
|
22
|
-
const setupKeepAlive = (serverInfo, serverConfig) => {
|
|
23
|
-
// Only set up keep-alive for SSE connections
|
|
24
|
-
if (!(serverInfo.transport instanceof SSEClientTransport)) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
// Clear any existing interval first
|
|
28
|
-
if (serverInfo.keepAliveIntervalId) {
|
|
29
|
-
clearInterval(serverInfo.keepAliveIntervalId);
|
|
30
|
-
}
|
|
31
|
-
// Use configured interval or default to 60 seconds for SSE
|
|
32
|
-
const interval = serverConfig.keepAliveInterval || 60000;
|
|
33
|
-
serverInfo.keepAliveIntervalId = setInterval(async () => {
|
|
34
|
-
try {
|
|
35
|
-
if (serverInfo.client && serverInfo.status === 'connected') {
|
|
36
|
-
await serverInfo.client.ping();
|
|
37
|
-
console.log(`Keep-alive ping successful for server: ${serverInfo.name}`);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
console.warn(`Keep-alive ping failed for server ${serverInfo.name}:`, error);
|
|
42
|
-
// TODO Consider handling reconnection logic here if needed
|
|
43
|
-
}
|
|
44
|
-
}, interval);
|
|
45
|
-
console.log(`Keep-alive ping set up for server ${serverInfo.name} with interval ${interval / 1000} seconds`);
|
|
46
|
-
};
|
|
20
|
+
import { setupClientKeepAlive } from './keepAliveService.js';
|
|
47
21
|
export const initUpstreamServers = async () => {
|
|
48
22
|
// Initialize OAuth clients for servers with dynamic registration
|
|
49
23
|
await initializeAllOAuthClients();
|
|
@@ -178,19 +152,20 @@ export const createTransportFromConfig = async (name, conf) => {
|
|
|
178
152
|
...replaceEnvVars(conf.env || {}),
|
|
179
153
|
};
|
|
180
154
|
env['PATH'] = expandEnvVars(process.env.PATH) || '';
|
|
181
|
-
const
|
|
155
|
+
const systemConfigDao = getSystemConfigDao();
|
|
156
|
+
const systemConfig = await systemConfigDao.get();
|
|
182
157
|
// Add UV_DEFAULT_INDEX and npm_config_registry if needed
|
|
183
|
-
if (
|
|
158
|
+
if (systemConfig?.install?.pythonIndexUrl &&
|
|
184
159
|
(conf.command === 'uvx' || conf.command === 'uv' || conf.command === 'python')) {
|
|
185
|
-
env['UV_DEFAULT_INDEX'] =
|
|
160
|
+
env['UV_DEFAULT_INDEX'] = systemConfig.install.pythonIndexUrl;
|
|
186
161
|
}
|
|
187
|
-
if (
|
|
162
|
+
if (systemConfig?.install?.npmRegistry &&
|
|
188
163
|
(conf.command === 'npm' ||
|
|
189
164
|
conf.command === 'npx' ||
|
|
190
165
|
conf.command === 'pnpm' ||
|
|
191
166
|
conf.command === 'yarn' ||
|
|
192
167
|
conf.command === 'node')) {
|
|
193
|
-
env['npm_config_registry'] =
|
|
168
|
+
env['npm_config_registry'] = systemConfig.install.npmRegistry;
|
|
194
169
|
}
|
|
195
170
|
// Expand environment variables in command
|
|
196
171
|
transport = new StdioClientTransport({
|
|
@@ -237,7 +212,7 @@ const callToolWithReconnect = async (serverInfo, toolParams, options, maxRetries
|
|
|
237
212
|
}
|
|
238
213
|
serverInfo.client.close();
|
|
239
214
|
serverInfo.transport.close();
|
|
240
|
-
const server = await
|
|
215
|
+
const server = await getServerDao().findById(serverInfo.name);
|
|
241
216
|
if (!server) {
|
|
242
217
|
throw new Error(`Server configuration not found for: ${serverInfo.name}`);
|
|
243
218
|
}
|
|
@@ -300,7 +275,7 @@ const callToolWithReconnect = async (serverInfo, toolParams, options, maxRetries
|
|
|
300
275
|
};
|
|
301
276
|
// Initialize MCP server clients
|
|
302
277
|
export const initializeClientsFromSettings = async (isInit, serverName) => {
|
|
303
|
-
const allServers = await
|
|
278
|
+
const allServers = await getServerDao().findAll();
|
|
304
279
|
const existingServerInfos = serverInfos;
|
|
305
280
|
const nextServerInfos = [];
|
|
306
281
|
try {
|
|
@@ -488,8 +463,8 @@ export const initializeClientsFromSettings = async (isInit, serverName) => {
|
|
|
488
463
|
if (!dataError) {
|
|
489
464
|
serverInfo.status = 'connected';
|
|
490
465
|
serverInfo.error = null;
|
|
491
|
-
// Set up keep-alive ping for SSE connections
|
|
492
|
-
|
|
466
|
+
// Set up keep-alive ping for SSE connections via shared service
|
|
467
|
+
setupClientKeepAlive(serverInfo, expandedConf).catch((e) => console.warn(`Keepalive setup failed for ${name}:`, e));
|
|
493
468
|
}
|
|
494
469
|
else {
|
|
495
470
|
serverInfo.status = 'disconnected';
|
|
@@ -534,7 +509,7 @@ export const registerAllTools = async (isInit, serverName) => {
|
|
|
534
509
|
};
|
|
535
510
|
// Get all server information
|
|
536
511
|
export const getServersInfo = async () => {
|
|
537
|
-
const allServers = await
|
|
512
|
+
const allServers = await getServerDao().findAll();
|
|
538
513
|
const dataService = getDataService();
|
|
539
514
|
const filterServerInfos = dataService.filterData
|
|
540
515
|
? dataService.filterData(serverInfos)
|
|
@@ -628,7 +603,7 @@ export const reconnectServer = async (serverName) => {
|
|
|
628
603
|
};
|
|
629
604
|
// Filter tools by server configuration
|
|
630
605
|
const filterToolsByConfig = async (serverName, tools) => {
|
|
631
|
-
const serverConfig = await
|
|
606
|
+
const serverConfig = await getServerDao().findById(serverName);
|
|
632
607
|
if (!serverConfig || !serverConfig.tools) {
|
|
633
608
|
// If no tool configuration exists, all tools are enabled by default
|
|
634
609
|
return tools;
|
|
@@ -646,7 +621,7 @@ const getServerByTool = (toolName) => {
|
|
|
646
621
|
// Add new server
|
|
647
622
|
export const addServer = async (name, config) => {
|
|
648
623
|
const server = { name, ...config };
|
|
649
|
-
const result = await
|
|
624
|
+
const result = await getServerDao().create(server);
|
|
650
625
|
if (result) {
|
|
651
626
|
return { success: true, message: 'Server added successfully' };
|
|
652
627
|
}
|
|
@@ -656,7 +631,7 @@ export const addServer = async (name, config) => {
|
|
|
656
631
|
};
|
|
657
632
|
// Remove server
|
|
658
633
|
export const removeServer = async (name) => {
|
|
659
|
-
const result = await
|
|
634
|
+
const result = await getServerDao().delete(name);
|
|
660
635
|
if (!result) {
|
|
661
636
|
return { success: false, message: 'Failed to remove server' };
|
|
662
637
|
}
|
|
@@ -666,23 +641,22 @@ export const removeServer = async (name) => {
|
|
|
666
641
|
// Add or update server (supports overriding existing servers for DXT)
|
|
667
642
|
export const addOrUpdateServer = async (name, config, allowOverride = false) => {
|
|
668
643
|
try {
|
|
669
|
-
const exists = await
|
|
644
|
+
const exists = await getServerDao().exists(name);
|
|
670
645
|
if (exists && !allowOverride) {
|
|
671
646
|
return { success: false, message: 'Server name already exists' };
|
|
672
647
|
}
|
|
673
|
-
// If overriding
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
// Close existing server connections
|
|
648
|
+
// If overriding an existing server, close connections and clear keep-alive timers
|
|
649
|
+
if (exists) {
|
|
650
|
+
// Close existing server connections (clears keep-alive intervals as well)
|
|
677
651
|
closeServer(name);
|
|
678
652
|
// Remove from server infos
|
|
679
653
|
serverInfos = serverInfos.filter((serverInfo) => serverInfo.name !== name);
|
|
680
654
|
}
|
|
681
655
|
if (exists) {
|
|
682
|
-
await
|
|
656
|
+
await getServerDao().update(name, config);
|
|
683
657
|
}
|
|
684
658
|
else {
|
|
685
|
-
await
|
|
659
|
+
await getServerDao().create({ name, ...config });
|
|
686
660
|
}
|
|
687
661
|
const action = exists ? 'updated' : 'added';
|
|
688
662
|
return { success: true, message: `Server ${action} successfully` };
|
|
@@ -711,7 +685,7 @@ function closeServer(name) {
|
|
|
711
685
|
// Toggle server enabled status
|
|
712
686
|
export const toggleServerStatus = async (name, enabled) => {
|
|
713
687
|
try {
|
|
714
|
-
await
|
|
688
|
+
await getServerDao().setEnabled(name, enabled);
|
|
715
689
|
// If disabling, disconnect the server and remove from active servers
|
|
716
690
|
if (!enabled) {
|
|
717
691
|
closeServer(name);
|
|
@@ -745,7 +719,7 @@ export const handleListToolsRequest = async (_, extra) => {
|
|
|
745
719
|
let availableServers = serverInfos.filter((server) => server.status === 'connected' && server.enabled !== false);
|
|
746
720
|
// If a target group is specified, filter servers to only those in the group
|
|
747
721
|
if (targetGroup) {
|
|
748
|
-
const serversInGroup = getServersInGroup(targetGroup);
|
|
722
|
+
const serversInGroup = await getServersInGroup(targetGroup);
|
|
749
723
|
if (serversInGroup && serversInGroup.length > 0) {
|
|
750
724
|
availableServers = availableServers.filter((server) => serversInGroup.includes(server.name));
|
|
751
725
|
}
|
|
@@ -807,26 +781,33 @@ Available servers: ${serversList}`,
|
|
|
807
781
|
],
|
|
808
782
|
};
|
|
809
783
|
}
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
784
|
+
// Need to filter servers based on group asynchronously
|
|
785
|
+
const filteredServerInfos = [];
|
|
786
|
+
for (const serverInfo of getDataService().filterData(serverInfos)) {
|
|
813
787
|
if (serverInfo.enabled === false)
|
|
814
|
-
|
|
815
|
-
if (!group)
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
788
|
+
continue;
|
|
789
|
+
if (!group) {
|
|
790
|
+
filteredServerInfos.push(serverInfo);
|
|
791
|
+
continue;
|
|
792
|
+
}
|
|
793
|
+
const serversInGroup = await getServersInGroup(group);
|
|
794
|
+
if (!serversInGroup || serversInGroup.length === 0) {
|
|
795
|
+
if (serverInfo.name === group)
|
|
796
|
+
filteredServerInfos.push(serverInfo);
|
|
797
|
+
continue;
|
|
798
|
+
}
|
|
799
|
+
if (serversInGroup.includes(serverInfo.name)) {
|
|
800
|
+
filteredServerInfos.push(serverInfo);
|
|
801
|
+
}
|
|
802
|
+
}
|
|
822
803
|
const allTools = [];
|
|
823
|
-
for (const serverInfo of
|
|
804
|
+
for (const serverInfo of filteredServerInfos) {
|
|
824
805
|
if (serverInfo.tools && serverInfo.tools.length > 0) {
|
|
825
806
|
// Filter tools based on server configuration
|
|
826
807
|
let enabledTools = await filterToolsByConfig(serverInfo.name, serverInfo.tools);
|
|
827
808
|
// If this is a group request, apply group-level tool filtering
|
|
828
809
|
if (group) {
|
|
829
|
-
const serverConfig = getServerConfigInGroup(group, serverInfo.name);
|
|
810
|
+
const serverConfig = await getServerConfigInGroup(group, serverInfo.name);
|
|
830
811
|
if (serverConfig && serverConfig.tools !== 'all' && Array.isArray(serverConfig.tools)) {
|
|
831
812
|
// Filter tools based on group configuration
|
|
832
813
|
const allowedToolNames = serverConfig.tools.map((toolName) => `${serverInfo.name}${getNameSeparator()}${toolName}`);
|
|
@@ -834,7 +815,7 @@ Available servers: ${serversList}`,
|
|
|
834
815
|
}
|
|
835
816
|
}
|
|
836
817
|
// Apply custom descriptions from server configuration
|
|
837
|
-
const serverConfig = await
|
|
818
|
+
const serverConfig = await getServerDao().findById(serverInfo.name);
|
|
838
819
|
const toolsWithCustomDescriptions = enabledTools.map((tool) => {
|
|
839
820
|
const toolConfig = serverConfig?.tools?.[tool.name];
|
|
840
821
|
return {
|
|
@@ -877,10 +858,10 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
877
858
|
// If group is in format $smart/{group}, filter servers to that group
|
|
878
859
|
if (group?.startsWith('$smart/')) {
|
|
879
860
|
const targetGroup = group.substring(7);
|
|
880
|
-
const serversInGroup = getServersInGroup(targetGroup);
|
|
861
|
+
const serversInGroup = await getServersInGroup(targetGroup);
|
|
881
862
|
if (serversInGroup !== undefined && serversInGroup !== null) {
|
|
882
863
|
servers = serversInGroup;
|
|
883
|
-
if (servers.length > 0) {
|
|
864
|
+
if (servers && servers.length > 0) {
|
|
884
865
|
console.log(`Filtering search to servers in group "${targetGroup}": ${servers.join(', ')}`);
|
|
885
866
|
}
|
|
886
867
|
else {
|
|
@@ -905,7 +886,7 @@ export const handleCallToolRequest = async (request, extra) => {
|
|
|
905
886
|
const enabledTools = await filterToolsByConfig(server.name, [actualTool]);
|
|
906
887
|
if (enabledTools.length > 0) {
|
|
907
888
|
// Apply custom description from configuration
|
|
908
|
-
const serverConfig = await
|
|
889
|
+
const serverConfig = await getServerDao().findById(server.name);
|
|
909
890
|
const toolConfig = serverConfig?.tools?.[actualTool.name];
|
|
910
891
|
// Return the actual tool info from serverInfos with custom description
|
|
911
892
|
return {
|
|
@@ -1180,23 +1161,30 @@ export const handleListPromptsRequest = async (_, extra) => {
|
|
|
1180
1161
|
const sessionId = extra.sessionId || '';
|
|
1181
1162
|
const group = getGroup(sessionId);
|
|
1182
1163
|
console.log(`Handling ListPromptsRequest for group: ${group}`);
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1164
|
+
// Need to filter servers based on group asynchronously
|
|
1165
|
+
const filteredServerInfos = [];
|
|
1166
|
+
for (const serverInfo of getDataService().filterData(serverInfos)) {
|
|
1186
1167
|
if (serverInfo.enabled === false)
|
|
1187
|
-
|
|
1188
|
-
if (!group)
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1168
|
+
continue;
|
|
1169
|
+
if (!group) {
|
|
1170
|
+
filteredServerInfos.push(serverInfo);
|
|
1171
|
+
continue;
|
|
1172
|
+
}
|
|
1173
|
+
const serversInGroup = await getServersInGroup(group);
|
|
1174
|
+
if (!serversInGroup || serversInGroup.length === 0) {
|
|
1175
|
+
if (serverInfo.name === group)
|
|
1176
|
+
filteredServerInfos.push(serverInfo);
|
|
1177
|
+
continue;
|
|
1178
|
+
}
|
|
1179
|
+
if (serversInGroup.includes(serverInfo.name)) {
|
|
1180
|
+
filteredServerInfos.push(serverInfo);
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1195
1183
|
const allPrompts = [];
|
|
1196
|
-
for (const serverInfo of
|
|
1184
|
+
for (const serverInfo of filteredServerInfos) {
|
|
1197
1185
|
if (serverInfo.prompts && serverInfo.prompts.length > 0) {
|
|
1198
1186
|
// Filter prompts based on server configuration
|
|
1199
|
-
const serverConfig = await
|
|
1187
|
+
const serverConfig = await getServerDao().findById(serverInfo.name);
|
|
1200
1188
|
let enabledPrompts = serverInfo.prompts;
|
|
1201
1189
|
if (serverConfig && serverConfig.prompts) {
|
|
1202
1190
|
enabledPrompts = serverInfo.prompts.filter((prompt) => {
|
|
@@ -1207,7 +1195,7 @@ export const handleListPromptsRequest = async (_, extra) => {
|
|
|
1207
1195
|
}
|
|
1208
1196
|
// If this is a group request, apply group-level prompt filtering
|
|
1209
1197
|
if (group) {
|
|
1210
|
-
const serverConfigInGroup = getServerConfigInGroup(group, serverInfo.name);
|
|
1198
|
+
const serverConfigInGroup = await getServerConfigInGroup(group, serverInfo.name);
|
|
1211
1199
|
if (serverConfigInGroup &&
|
|
1212
1200
|
serverConfigInGroup.tools !== 'all' &&
|
|
1213
1201
|
Array.isArray(serverConfigInGroup.tools)) {
|
|
@@ -1235,16 +1223,9 @@ export const createMcpServer = (name, version, group) => {
|
|
|
1235
1223
|
// Determine server name based on routing type
|
|
1236
1224
|
let serverName = name;
|
|
1237
1225
|
if (group) {
|
|
1238
|
-
//
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
// Single server routing
|
|
1242
|
-
serverName = `${name}_${group}`;
|
|
1243
|
-
}
|
|
1244
|
-
else {
|
|
1245
|
-
// Group routing
|
|
1246
|
-
serverName = `${name}_${group}_group`;
|
|
1247
|
-
}
|
|
1226
|
+
// For createMcpServer we use sync approach since it's called synchronously
|
|
1227
|
+
// The actual group validation happens at request time
|
|
1228
|
+
serverName = `${name}_${group}_group`;
|
|
1248
1229
|
}
|
|
1249
1230
|
// If no group, use default name (global routing)
|
|
1250
1231
|
const server = new Server({ name: serverName, version }, { capabilities: { tools: {}, prompts: {}, resources: {} } });
|