@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.
Files changed (126) hide show
  1. package/README.fr.md +36 -152
  2. package/README.md +34 -255
  3. package/README.zh.md +33 -212
  4. package/dist/config/DaoConfigService.js +3 -3
  5. package/dist/config/DaoConfigService.js.map +1 -1
  6. package/dist/controllers/authController.js +2 -2
  7. package/dist/controllers/authController.js.map +1 -1
  8. package/dist/controllers/configController.js +32 -5
  9. package/dist/controllers/configController.js.map +1 -1
  10. package/dist/controllers/groupController.js +24 -24
  11. package/dist/controllers/groupController.js.map +1 -1
  12. package/dist/controllers/oauthClientController.js +13 -13
  13. package/dist/controllers/oauthClientController.js.map +1 -1
  14. package/dist/controllers/oauthDynamicRegistrationController.js +9 -9
  15. package/dist/controllers/oauthDynamicRegistrationController.js.map +1 -1
  16. package/dist/controllers/oauthServerController.js +1 -1
  17. package/dist/controllers/oauthServerController.js.map +1 -1
  18. package/dist/controllers/openApiController.js +1 -1
  19. package/dist/controllers/openApiController.js.map +1 -1
  20. package/dist/controllers/serverController.js +134 -96
  21. package/dist/controllers/serverController.js.map +1 -1
  22. package/dist/controllers/userController.js +22 -21
  23. package/dist/controllers/userController.js.map +1 -1
  24. package/dist/dao/DaoFactory.js +43 -0
  25. package/dist/dao/DaoFactory.js.map +1 -1
  26. package/dist/dao/DatabaseDaoFactory.js +86 -0
  27. package/dist/dao/DatabaseDaoFactory.js.map +1 -0
  28. package/dist/dao/GroupDaoDbImpl.js +131 -0
  29. package/dist/dao/GroupDaoDbImpl.js.map +1 -0
  30. package/dist/dao/OAuthClientDao.js +100 -0
  31. package/dist/dao/OAuthClientDao.js.map +1 -0
  32. package/dist/dao/OAuthClientDaoDbImpl.js +83 -0
  33. package/dist/dao/OAuthClientDaoDbImpl.js.map +1 -0
  34. package/dist/dao/OAuthTokenDao.js +161 -0
  35. package/dist/dao/OAuthTokenDao.js.map +1 -0
  36. package/dist/dao/OAuthTokenDaoDbImpl.js +92 -0
  37. package/dist/dao/OAuthTokenDaoDbImpl.js.map +1 -0
  38. package/dist/dao/ServerDaoDbImpl.js +109 -0
  39. package/dist/dao/ServerDaoDbImpl.js.map +1 -0
  40. package/dist/dao/SystemConfigDaoDbImpl.js +56 -0
  41. package/dist/dao/SystemConfigDaoDbImpl.js.map +1 -0
  42. package/dist/dao/UserConfigDaoDbImpl.js +61 -0
  43. package/dist/dao/UserConfigDaoDbImpl.js.map +1 -0
  44. package/dist/dao/UserDaoDbImpl.js +90 -0
  45. package/dist/dao/UserDaoDbImpl.js.map +1 -0
  46. package/dist/dao/index.js +11 -0
  47. package/dist/dao/index.js.map +1 -1
  48. package/dist/db/entities/Group.js +49 -0
  49. package/dist/db/entities/Group.js.map +1 -0
  50. package/dist/db/entities/OAuthClient.js +66 -0
  51. package/dist/db/entities/OAuthClient.js.map +1 -0
  52. package/dist/db/entities/OAuthToken.js +66 -0
  53. package/dist/db/entities/OAuthToken.js.map +1 -0
  54. package/dist/db/entities/Server.js +93 -0
  55. package/dist/db/entities/Server.js.map +1 -0
  56. package/dist/db/entities/SystemConfig.js +66 -0
  57. package/dist/db/entities/SystemConfig.js.map +1 -0
  58. package/dist/db/entities/User.js +45 -0
  59. package/dist/db/entities/User.js.map +1 -0
  60. package/dist/db/entities/UserConfig.js +45 -0
  61. package/dist/db/entities/UserConfig.js.map +1 -0
  62. package/dist/db/entities/index.js +18 -2
  63. package/dist/db/entities/index.js.map +1 -1
  64. package/dist/db/repositories/GroupRepository.js +81 -0
  65. package/dist/db/repositories/GroupRepository.js.map +1 -0
  66. package/dist/db/repositories/OAuthClientRepository.js +68 -0
  67. package/dist/db/repositories/OAuthClientRepository.js.map +1 -0
  68. package/dist/db/repositories/OAuthTokenRepository.js +159 -0
  69. package/dist/db/repositories/OAuthTokenRepository.js.map +1 -0
  70. package/dist/db/repositories/ServerRepository.js +80 -0
  71. package/dist/db/repositories/ServerRepository.js.map +1 -0
  72. package/dist/db/repositories/SystemConfigRepository.js +64 -0
  73. package/dist/db/repositories/SystemConfigRepository.js.map +1 -0
  74. package/dist/db/repositories/UserConfigRepository.js +69 -0
  75. package/dist/db/repositories/UserConfigRepository.js.map +1 -0
  76. package/dist/db/repositories/UserRepository.js +68 -0
  77. package/dist/db/repositories/UserRepository.js.map +1 -0
  78. package/dist/db/repositories/index.js +8 -1
  79. package/dist/db/repositories/index.js.map +1 -1
  80. package/dist/index.js +12 -0
  81. package/dist/index.js.map +1 -1
  82. package/dist/middlewares/auth.js +2 -2
  83. package/dist/middlewares/auth.js.map +1 -1
  84. package/dist/middlewares/userContext.js +1 -1
  85. package/dist/middlewares/userContext.js.map +1 -1
  86. package/dist/models/OAuth.js +90 -122
  87. package/dist/models/OAuth.js.map +1 -1
  88. package/dist/models/User.js +29 -48
  89. package/dist/models/User.js.map +1 -1
  90. package/dist/routes/index.js +2 -1
  91. package/dist/routes/index.js.map +1 -1
  92. package/dist/scripts/migrate-to-database.js +5 -0
  93. package/dist/scripts/migrate-to-database.js.map +1 -0
  94. package/dist/server.js +2 -2
  95. package/dist/server.js.map +1 -1
  96. package/dist/services/groupService.js +87 -113
  97. package/dist/services/groupService.js.map +1 -1
  98. package/dist/services/keepAliveService.js +58 -0
  99. package/dist/services/keepAliveService.js.map +1 -0
  100. package/dist/services/mcpOAuthProvider.js +22 -28
  101. package/dist/services/mcpOAuthProvider.js.map +1 -1
  102. package/dist/services/mcpService.js +73 -92
  103. package/dist/services/mcpService.js.map +1 -1
  104. package/dist/services/oauthServerService.js +26 -20
  105. package/dist/services/oauthServerService.js.map +1 -1
  106. package/dist/services/oauthService.js +11 -10
  107. package/dist/services/oauthService.js.map +1 -1
  108. package/dist/services/oauthSettingsStore.js +17 -12
  109. package/dist/services/oauthSettingsStore.js.map +1 -1
  110. package/dist/services/openApiGeneratorService.js +6 -7
  111. package/dist/services/openApiGeneratorService.js.map +1 -1
  112. package/dist/services/sseService.js +20 -62
  113. package/dist/services/sseService.js.map +1 -1
  114. package/dist/services/userService.js +38 -45
  115. package/dist/services/userService.js.map +1 -1
  116. package/dist/utils/migration.js +235 -0
  117. package/dist/utils/migration.js.map +1 -0
  118. package/dist/utils/oauthBearer.js +4 -4
  119. package/dist/utils/oauthBearer.js.map +1 -1
  120. package/frontend/dist/assets/index-BiA4eB7l.js +251 -0
  121. package/frontend/dist/assets/index-BiA4eB7l.js.map +1 -0
  122. package/frontend/dist/index.html +1 -1
  123. package/mcp_settings.json +23 -1
  124. package/package.json +1 -1
  125. package/frontend/dist/assets/index-DDht0WYq.js +0 -251
  126. package/frontend/dist/assets/index-DDht0WYq.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"openApiController.js","sourceRoot":"","sources":["../../src/controllers/openApiController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openApiController.js","sourceRoot":"","sources":["../../src/controllers/openApiController.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { getServersInfo, addServer, addOrUpdateServer, removeServer, notifyToolChanged, syncToolEmbedding, toggleServerStatus, } from '../services/mcpService.js';
2
- import { loadSettings, saveSettings } from '../config/index.js';
2
+ import { loadSettings } from '../config/index.js';
3
3
  import { syncAllServerToolsEmbeddings } from '../services/vectorSearchService.js';
4
4
  import { createSafeJSON } from '../utils/serialization.js';
5
5
  import { cloneDefaultOAuthServerConfig } from '../constants/oauthServerDefaults.js';
6
+ import { getServerDao, getGroupDao, getSystemConfigDao } from '../dao/DaoFactory.js';
6
7
  export const getAllServers = async (_, res) => {
7
8
  try {
8
9
  const serversInfo = await getServersInfo();
@@ -20,9 +21,32 @@ export const getAllServers = async (_, res) => {
20
21
  });
21
22
  }
22
23
  };
23
- export const getAllSettings = (_, res) => {
24
+ export const getAllSettings = async (_, res) => {
24
25
  try {
25
- const settings = loadSettings();
26
+ // Get base settings from file (for OAuth clients, tokens, users, etc.)
27
+ const fileSettings = loadSettings();
28
+ // Get servers from DAO (supports both file and database modes)
29
+ const serverDao = getServerDao();
30
+ const servers = await serverDao.findAll();
31
+ // Convert servers array to mcpServers map format
32
+ const mcpServers = {};
33
+ for (const server of servers) {
34
+ const { name, ...config } = server;
35
+ mcpServers[name] = config;
36
+ }
37
+ // Get groups from DAO
38
+ const groupDao = getGroupDao();
39
+ const groups = await groupDao.findAll();
40
+ // Get system config from DAO
41
+ const systemConfigDao = getSystemConfigDao();
42
+ const systemConfig = await systemConfigDao.get();
43
+ // Merge all data into settings object
44
+ const settings = {
45
+ ...fileSettings,
46
+ mcpServers,
47
+ groups,
48
+ systemConfig,
49
+ };
26
50
  const response = {
27
51
  success: true,
28
52
  data: createSafeJSON(settings),
@@ -30,6 +54,7 @@ export const getAllSettings = (_, res) => {
30
54
  res.json(response);
31
55
  }
32
56
  catch (error) {
57
+ console.error('Failed to get server settings:', error);
33
58
  res.status(500).json({
34
59
  success: false,
35
60
  message: 'Failed to get server settings',
@@ -268,27 +293,34 @@ export const updateServer = async (req, res) => {
268
293
  export const getServerConfig = async (req, res) => {
269
294
  try {
270
295
  const { name } = req.params;
271
- const allServers = await getServersInfo();
272
- const serverInfo = allServers.find((s) => s.name === name);
273
- if (!serverInfo) {
296
+ // Get server configuration from DAO (supports both file and database modes)
297
+ const serverDao = getServerDao();
298
+ const serverConfig = await serverDao.findById(name);
299
+ if (!serverConfig) {
274
300
  res.status(404).json({
275
301
  success: false,
276
302
  message: 'Server not found',
277
303
  });
278
304
  return;
279
305
  }
306
+ // Get runtime info (status, tools) from getServersInfo
307
+ const allServers = await getServersInfo();
308
+ const serverInfo = allServers.find((s) => s.name === name);
309
+ // Extract config without the name field
310
+ const { name: serverName, ...config } = serverConfig;
280
311
  const response = {
281
312
  success: true,
282
313
  data: {
283
- name,
284
- status: serverInfo ? serverInfo.status : 'disconnected',
285
- tools: serverInfo ? serverInfo.tools : [],
286
- config: serverInfo,
314
+ name: serverName,
315
+ status: serverInfo?.status || 'disconnected',
316
+ tools: serverInfo?.tools || [],
317
+ config,
287
318
  },
288
319
  };
289
320
  res.json(response);
290
321
  }
291
322
  catch (error) {
323
+ console.error('Failed to get server configuration:', error);
292
324
  res.status(500).json({
293
325
  success: false,
294
326
  message: 'Failed to get server configuration',
@@ -356,8 +388,9 @@ export const toggleTool = async (req, res) => {
356
388
  });
357
389
  return;
358
390
  }
359
- const settings = loadSettings();
360
- if (!settings.mcpServers[serverName]) {
391
+ const serverDao = getServerDao();
392
+ const server = await serverDao.findById(serverName);
393
+ if (!server) {
361
394
  res.status(404).json({
362
395
  success: false,
363
396
  message: 'Server not found',
@@ -365,12 +398,12 @@ export const toggleTool = async (req, res) => {
365
398
  return;
366
399
  }
367
400
  // Initialize tools config if it doesn't exist
368
- if (!settings.mcpServers[serverName].tools) {
369
- settings.mcpServers[serverName].tools = {};
370
- }
371
- // Set the tool's enabled state
372
- settings.mcpServers[serverName].tools[toolName] = { enabled };
373
- if (!saveSettings(settings)) {
401
+ const tools = server.tools || {};
402
+ // Set the tool's enabled state (preserve existing description if any)
403
+ tools[toolName] = { ...tools[toolName], enabled };
404
+ // Update via DAO (supports both file and database modes)
405
+ const result = await serverDao.updateTools(serverName, tools);
406
+ if (!result) {
374
407
  res.status(500).json({
375
408
  success: false,
376
409
  message: 'Failed to save settings',
@@ -412,8 +445,9 @@ export const updateToolDescription = async (req, res) => {
412
445
  });
413
446
  return;
414
447
  }
415
- const settings = loadSettings();
416
- if (!settings.mcpServers[serverName]) {
448
+ const serverDao = getServerDao();
449
+ const server = await serverDao.findById(serverName);
450
+ if (!server) {
417
451
  res.status(404).json({
418
452
  success: false,
419
453
  message: 'Server not found',
@@ -421,15 +455,15 @@ export const updateToolDescription = async (req, res) => {
421
455
  return;
422
456
  }
423
457
  // Initialize tools config if it doesn't exist
424
- if (!settings.mcpServers[serverName].tools) {
425
- settings.mcpServers[serverName].tools = {};
426
- }
458
+ const tools = server.tools || {};
427
459
  // Set the tool's description
428
- if (!settings.mcpServers[serverName].tools[toolName]) {
429
- settings.mcpServers[serverName].tools[toolName] = { enabled: true };
460
+ if (!tools[toolName]) {
461
+ tools[toolName] = { enabled: true };
430
462
  }
431
- settings.mcpServers[serverName].tools[toolName].description = description;
432
- if (!saveSettings(settings)) {
463
+ tools[toolName].description = description;
464
+ // Update via DAO (supports both file and database modes)
465
+ const result = await serverDao.updateTools(serverName, tools);
466
+ if (!result) {
433
467
  res.status(500).json({
434
468
  success: false,
435
469
  message: 'Failed to save settings',
@@ -451,10 +485,9 @@ export const updateToolDescription = async (req, res) => {
451
485
  });
452
486
  }
453
487
  };
454
- export const updateSystemConfig = (req, res) => {
488
+ export const updateSystemConfig = async (req, res) => {
455
489
  try {
456
- const { routing, install, smartRouting, mcpRouter, nameSeparator, enableSessionRebuild, oauthServer } = req.body;
457
- const currentUser = req.user;
490
+ const { routing, install, smartRouting, mcpRouter, nameSeparator, enableSessionRebuild, oauthServer, } = req.body;
458
491
  const hasRoutingUpdate = routing &&
459
492
  (typeof routing.enableGlobalRoute === 'boolean' ||
460
493
  typeof routing.enableGroupNameRoute === 'boolean' ||
@@ -503,9 +536,11 @@ export const updateSystemConfig = (req, res) => {
503
536
  });
504
537
  return;
505
538
  }
506
- const settings = loadSettings();
507
- if (!settings.systemConfig) {
508
- settings.systemConfig = {
539
+ // Get system config from DAO (supports both file and database modes)
540
+ const systemConfigDao = getSystemConfigDao();
541
+ let systemConfig = await systemConfigDao.get();
542
+ if (!systemConfig) {
543
+ systemConfig = {
509
544
  routing: {
510
545
  enableGlobalRoute: true,
511
546
  enableGroupNameRoute: true,
@@ -534,8 +569,8 @@ export const updateSystemConfig = (req, res) => {
534
569
  oauthServer: cloneDefaultOAuthServerConfig(),
535
570
  };
536
571
  }
537
- if (!settings.systemConfig.routing) {
538
- settings.systemConfig.routing = {
572
+ if (!systemConfig.routing) {
573
+ systemConfig.routing = {
539
574
  enableGlobalRoute: true,
540
575
  enableGroupNameRoute: true,
541
576
  enableBearerAuth: false,
@@ -543,15 +578,15 @@ export const updateSystemConfig = (req, res) => {
543
578
  skipAuth: false,
544
579
  };
545
580
  }
546
- if (!settings.systemConfig.install) {
547
- settings.systemConfig.install = {
581
+ if (!systemConfig.install) {
582
+ systemConfig.install = {
548
583
  pythonIndexUrl: '',
549
584
  npmRegistry: '',
550
585
  baseUrl: 'http://localhost:3000',
551
586
  };
552
587
  }
553
- if (!settings.systemConfig.smartRouting) {
554
- settings.systemConfig.smartRouting = {
588
+ if (!systemConfig.smartRouting) {
589
+ systemConfig.smartRouting = {
555
590
  enabled: false,
556
591
  dbUrl: '',
557
592
  openaiApiBaseUrl: '',
@@ -559,25 +594,25 @@ export const updateSystemConfig = (req, res) => {
559
594
  openaiApiEmbeddingModel: '',
560
595
  };
561
596
  }
562
- if (!settings.systemConfig.mcpRouter) {
563
- settings.systemConfig.mcpRouter = {
597
+ if (!systemConfig.mcpRouter) {
598
+ systemConfig.mcpRouter = {
564
599
  apiKey: '',
565
600
  referer: 'https://www.mcphubx.com',
566
601
  title: 'MCPHub',
567
602
  baseUrl: 'https://api.mcprouter.to/v1',
568
603
  };
569
604
  }
570
- if (!settings.systemConfig.oauthServer) {
571
- settings.systemConfig.oauthServer = cloneDefaultOAuthServerConfig();
605
+ if (!systemConfig.oauthServer) {
606
+ systemConfig.oauthServer = cloneDefaultOAuthServerConfig();
572
607
  }
573
- if (!settings.systemConfig.oauthServer.dynamicRegistration) {
608
+ if (!systemConfig.oauthServer.dynamicRegistration) {
574
609
  const defaultConfig = cloneDefaultOAuthServerConfig();
575
610
  const defaultDynamic = defaultConfig.dynamicRegistration ?? {
576
611
  enabled: false,
577
612
  allowedGrantTypes: [],
578
613
  requiresAuthentication: false,
579
614
  };
580
- settings.systemConfig.oauthServer.dynamicRegistration = {
615
+ systemConfig.oauthServer.dynamicRegistration = {
581
616
  enabled: defaultDynamic.enabled ?? false,
582
617
  allowedGrantTypes: [
583
618
  ...(Array.isArray(defaultDynamic.allowedGrantTypes)
@@ -589,42 +624,42 @@ export const updateSystemConfig = (req, res) => {
589
624
  }
590
625
  if (routing) {
591
626
  if (typeof routing.enableGlobalRoute === 'boolean') {
592
- settings.systemConfig.routing.enableGlobalRoute = routing.enableGlobalRoute;
627
+ systemConfig.routing.enableGlobalRoute = routing.enableGlobalRoute;
593
628
  }
594
629
  if (typeof routing.enableGroupNameRoute === 'boolean') {
595
- settings.systemConfig.routing.enableGroupNameRoute = routing.enableGroupNameRoute;
630
+ systemConfig.routing.enableGroupNameRoute = routing.enableGroupNameRoute;
596
631
  }
597
632
  if (typeof routing.enableBearerAuth === 'boolean') {
598
- settings.systemConfig.routing.enableBearerAuth = routing.enableBearerAuth;
633
+ systemConfig.routing.enableBearerAuth = routing.enableBearerAuth;
599
634
  }
600
635
  if (typeof routing.bearerAuthKey === 'string') {
601
- settings.systemConfig.routing.bearerAuthKey = routing.bearerAuthKey;
636
+ systemConfig.routing.bearerAuthKey = routing.bearerAuthKey;
602
637
  }
603
638
  if (typeof routing.skipAuth === 'boolean') {
604
- settings.systemConfig.routing.skipAuth = routing.skipAuth;
639
+ systemConfig.routing.skipAuth = routing.skipAuth;
605
640
  }
606
641
  }
607
642
  if (install) {
608
643
  if (typeof install.pythonIndexUrl === 'string') {
609
- settings.systemConfig.install.pythonIndexUrl = install.pythonIndexUrl;
644
+ systemConfig.install.pythonIndexUrl = install.pythonIndexUrl;
610
645
  }
611
646
  if (typeof install.npmRegistry === 'string') {
612
- settings.systemConfig.install.npmRegistry = install.npmRegistry;
647
+ systemConfig.install.npmRegistry = install.npmRegistry;
613
648
  }
614
649
  if (typeof install.baseUrl === 'string') {
615
- settings.systemConfig.install.baseUrl = install.baseUrl;
650
+ systemConfig.install.baseUrl = install.baseUrl;
616
651
  }
617
652
  }
618
653
  // Track smartRouting state and configuration changes
619
- const wasSmartRoutingEnabled = settings.systemConfig.smartRouting.enabled || false;
620
- const previousSmartRoutingConfig = { ...settings.systemConfig.smartRouting };
654
+ const wasSmartRoutingEnabled = systemConfig.smartRouting.enabled || false;
655
+ const previousSmartRoutingConfig = { ...systemConfig.smartRouting };
621
656
  let needsSync = false;
622
657
  if (smartRouting) {
623
658
  if (typeof smartRouting.enabled === 'boolean') {
624
659
  // If enabling Smart Routing, validate required fields
625
660
  if (smartRouting.enabled) {
626
- const currentDbUrl = smartRouting.dbUrl || settings.systemConfig.smartRouting.dbUrl;
627
- const currentOpenaiApiKey = smartRouting.openaiApiKey || settings.systemConfig.smartRouting.openaiApiKey;
661
+ const currentDbUrl = smartRouting.dbUrl || systemConfig.smartRouting.dbUrl;
662
+ const currentOpenaiApiKey = smartRouting.openaiApiKey || systemConfig.smartRouting.openaiApiKey;
628
663
  if (!currentDbUrl || !currentOpenaiApiKey) {
629
664
  const missingFields = [];
630
665
  if (!currentDbUrl)
@@ -638,49 +673,47 @@ export const updateSystemConfig = (req, res) => {
638
673
  return;
639
674
  }
640
675
  }
641
- settings.systemConfig.smartRouting.enabled = smartRouting.enabled;
676
+ systemConfig.smartRouting.enabled = smartRouting.enabled;
642
677
  }
643
678
  if (typeof smartRouting.dbUrl === 'string') {
644
- settings.systemConfig.smartRouting.dbUrl = smartRouting.dbUrl;
679
+ systemConfig.smartRouting.dbUrl = smartRouting.dbUrl;
645
680
  }
646
681
  if (typeof smartRouting.openaiApiBaseUrl === 'string') {
647
- settings.systemConfig.smartRouting.openaiApiBaseUrl = smartRouting.openaiApiBaseUrl;
682
+ systemConfig.smartRouting.openaiApiBaseUrl = smartRouting.openaiApiBaseUrl;
648
683
  }
649
684
  if (typeof smartRouting.openaiApiKey === 'string') {
650
- settings.systemConfig.smartRouting.openaiApiKey = smartRouting.openaiApiKey;
685
+ systemConfig.smartRouting.openaiApiKey = smartRouting.openaiApiKey;
651
686
  }
652
687
  if (typeof smartRouting.openaiApiEmbeddingModel === 'string') {
653
- settings.systemConfig.smartRouting.openaiApiEmbeddingModel =
654
- smartRouting.openaiApiEmbeddingModel;
688
+ systemConfig.smartRouting.openaiApiEmbeddingModel = smartRouting.openaiApiEmbeddingModel;
655
689
  }
656
690
  // Check if we need to sync embeddings
657
- const isNowEnabled = settings.systemConfig.smartRouting.enabled || false;
658
- const hasConfigChanged = previousSmartRoutingConfig.dbUrl !== settings.systemConfig.smartRouting.dbUrl ||
691
+ const isNowEnabled = systemConfig.smartRouting.enabled || false;
692
+ const hasConfigChanged = previousSmartRoutingConfig.dbUrl !== systemConfig.smartRouting.dbUrl ||
659
693
  previousSmartRoutingConfig.openaiApiBaseUrl !==
660
- settings.systemConfig.smartRouting.openaiApiBaseUrl ||
661
- previousSmartRoutingConfig.openaiApiKey !==
662
- settings.systemConfig.smartRouting.openaiApiKey ||
694
+ systemConfig.smartRouting.openaiApiBaseUrl ||
695
+ previousSmartRoutingConfig.openaiApiKey !== systemConfig.smartRouting.openaiApiKey ||
663
696
  previousSmartRoutingConfig.openaiApiEmbeddingModel !==
664
- settings.systemConfig.smartRouting.openaiApiEmbeddingModel;
697
+ systemConfig.smartRouting.openaiApiEmbeddingModel;
665
698
  // Sync if: first time enabling OR smart routing is enabled and any config changed
666
699
  needsSync = (!wasSmartRoutingEnabled && isNowEnabled) || (isNowEnabled && hasConfigChanged);
667
700
  }
668
701
  if (mcpRouter) {
669
702
  if (typeof mcpRouter.apiKey === 'string') {
670
- settings.systemConfig.mcpRouter.apiKey = mcpRouter.apiKey;
703
+ systemConfig.mcpRouter.apiKey = mcpRouter.apiKey;
671
704
  }
672
705
  if (typeof mcpRouter.referer === 'string') {
673
- settings.systemConfig.mcpRouter.referer = mcpRouter.referer;
706
+ systemConfig.mcpRouter.referer = mcpRouter.referer;
674
707
  }
675
708
  if (typeof mcpRouter.title === 'string') {
676
- settings.systemConfig.mcpRouter.title = mcpRouter.title;
709
+ systemConfig.mcpRouter.title = mcpRouter.title;
677
710
  }
678
711
  if (typeof mcpRouter.baseUrl === 'string') {
679
- settings.systemConfig.mcpRouter.baseUrl = mcpRouter.baseUrl;
712
+ systemConfig.mcpRouter.baseUrl = mcpRouter.baseUrl;
680
713
  }
681
714
  }
682
715
  if (oauthServer) {
683
- const target = settings.systemConfig.oauthServer;
716
+ const target = systemConfig.oauthServer;
684
717
  if (typeof oauthServer.enabled === 'boolean') {
685
718
  target.enabled = oauthServer.enabled;
686
719
  }
@@ -728,15 +761,17 @@ export const updateSystemConfig = (req, res) => {
728
761
  }
729
762
  }
730
763
  if (typeof nameSeparator === 'string') {
731
- settings.systemConfig.nameSeparator = nameSeparator;
764
+ systemConfig.nameSeparator = nameSeparator;
732
765
  }
733
766
  if (typeof enableSessionRebuild === 'boolean') {
734
- settings.systemConfig.enableSessionRebuild = enableSessionRebuild;
767
+ systemConfig.enableSessionRebuild = enableSessionRebuild;
735
768
  }
736
- if (saveSettings(settings, currentUser)) {
769
+ // Save using DAO (supports both file and database modes)
770
+ try {
771
+ await systemConfigDao.update(systemConfig);
737
772
  res.json({
738
773
  success: true,
739
- data: settings.systemConfig,
774
+ data: systemConfig,
740
775
  message: 'System configuration updated successfully',
741
776
  });
742
777
  // If smart routing configuration changed, sync all existing server tools
@@ -748,7 +783,8 @@ export const updateSystemConfig = (req, res) => {
748
783
  });
749
784
  }
750
785
  }
751
- else {
786
+ catch (saveError) {
787
+ console.error('Failed to save system configuration:', saveError);
752
788
  res.status(500).json({
753
789
  success: false,
754
790
  message: 'Failed to save system configuration',
@@ -783,8 +819,9 @@ export const togglePrompt = async (req, res) => {
783
819
  });
784
820
  return;
785
821
  }
786
- const settings = loadSettings();
787
- if (!settings.mcpServers[serverName]) {
822
+ const serverDao = getServerDao();
823
+ const server = await serverDao.findById(serverName);
824
+ if (!server) {
788
825
  res.status(404).json({
789
826
  success: false,
790
827
  message: 'Server not found',
@@ -792,12 +829,12 @@ export const togglePrompt = async (req, res) => {
792
829
  return;
793
830
  }
794
831
  // Initialize prompts config if it doesn't exist
795
- if (!settings.mcpServers[serverName].prompts) {
796
- settings.mcpServers[serverName].prompts = {};
797
- }
798
- // Set the prompt's enabled state
799
- settings.mcpServers[serverName].prompts[promptName] = { enabled };
800
- if (!saveSettings(settings)) {
832
+ const prompts = server.prompts || {};
833
+ // Set the prompt's enabled state (preserve existing description if any)
834
+ prompts[promptName] = { ...prompts[promptName], enabled };
835
+ // Update via DAO (supports both file and database modes)
836
+ const result = await serverDao.updatePrompts(serverName, prompts);
837
+ if (!result) {
801
838
  res.status(500).json({
802
839
  success: false,
803
840
  message: 'Failed to save settings',
@@ -839,8 +876,9 @@ export const updatePromptDescription = async (req, res) => {
839
876
  });
840
877
  return;
841
878
  }
842
- const settings = loadSettings();
843
- if (!settings.mcpServers[serverName]) {
879
+ const serverDao = getServerDao();
880
+ const server = await serverDao.findById(serverName);
881
+ if (!server) {
844
882
  res.status(404).json({
845
883
  success: false,
846
884
  message: 'Server not found',
@@ -848,15 +886,15 @@ export const updatePromptDescription = async (req, res) => {
848
886
  return;
849
887
  }
850
888
  // Initialize prompts config if it doesn't exist
851
- if (!settings.mcpServers[serverName].prompts) {
852
- settings.mcpServers[serverName].prompts = {};
853
- }
889
+ const prompts = server.prompts || {};
854
890
  // Set the prompt's description
855
- if (!settings.mcpServers[serverName].prompts[promptName]) {
856
- settings.mcpServers[serverName].prompts[promptName] = { enabled: true };
891
+ if (!prompts[promptName]) {
892
+ prompts[promptName] = { enabled: true };
857
893
  }
858
- settings.mcpServers[serverName].prompts[promptName].description = description;
859
- if (!saveSettings(settings)) {
894
+ prompts[promptName].description = description;
895
+ // Update via DAO (supports both file and database modes)
896
+ const result = await serverDao.updatePrompts(serverName, prompts);
897
+ if (!result) {
860
898
  res.status(500).json({
861
899
  success: false,
862
900
  message: 'Failed to save settings',
@@ -1 +1 @@
1
- {"version":3,"file":"serverController.js","sourceRoot":"","sources":["../../src/controllers/serverController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverController.js","sourceRoot":"","sources":["../../src/controllers/serverController.ts"],"names":[],"mappings":"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"}