@samanhappy/mcphub 0.10.5 → 0.11.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.
Files changed (110) 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/groupController.js +24 -24
  9. package/dist/controllers/groupController.js.map +1 -1
  10. package/dist/controllers/openApiController.js +1 -1
  11. package/dist/controllers/openApiController.js.map +1 -1
  12. package/dist/controllers/serverController.js +96 -62
  13. package/dist/controllers/serverController.js.map +1 -1
  14. package/dist/controllers/userController.js +22 -21
  15. package/dist/controllers/userController.js.map +1 -1
  16. package/dist/dao/DaoFactory.js +19 -0
  17. package/dist/dao/DaoFactory.js.map +1 -1
  18. package/dist/dao/DatabaseDaoFactory.js +68 -0
  19. package/dist/dao/DatabaseDaoFactory.js.map +1 -0
  20. package/dist/dao/GroupDaoDbImpl.js +131 -0
  21. package/dist/dao/GroupDaoDbImpl.js.map +1 -0
  22. package/dist/dao/ServerDaoDbImpl.js +109 -0
  23. package/dist/dao/ServerDaoDbImpl.js.map +1 -0
  24. package/dist/dao/SystemConfigDaoDbImpl.js +56 -0
  25. package/dist/dao/SystemConfigDaoDbImpl.js.map +1 -0
  26. package/dist/dao/UserConfigDaoDbImpl.js +61 -0
  27. package/dist/dao/UserConfigDaoDbImpl.js.map +1 -0
  28. package/dist/dao/UserDaoDbImpl.js +90 -0
  29. package/dist/dao/UserDaoDbImpl.js.map +1 -0
  30. package/dist/dao/examples.js.map +1 -1
  31. package/dist/dao/index.js +7 -0
  32. package/dist/dao/index.js.map +1 -1
  33. package/dist/db/entities/Group.js +49 -0
  34. package/dist/db/entities/Group.js.map +1 -0
  35. package/dist/db/entities/Server.js +93 -0
  36. package/dist/db/entities/Server.js.map +1 -0
  37. package/dist/db/entities/SystemConfig.js +66 -0
  38. package/dist/db/entities/SystemConfig.js.map +1 -0
  39. package/dist/db/entities/User.js +45 -0
  40. package/dist/db/entities/User.js.map +1 -0
  41. package/dist/db/entities/UserConfig.js +45 -0
  42. package/dist/db/entities/UserConfig.js.map +1 -0
  43. package/dist/db/entities/index.js +7 -2
  44. package/dist/db/entities/index.js.map +1 -1
  45. package/dist/db/repositories/GroupRepository.js +81 -0
  46. package/dist/db/repositories/GroupRepository.js.map +1 -0
  47. package/dist/db/repositories/ServerRepository.js +80 -0
  48. package/dist/db/repositories/ServerRepository.js.map +1 -0
  49. package/dist/db/repositories/SystemConfigRepository.js +64 -0
  50. package/dist/db/repositories/SystemConfigRepository.js.map +1 -0
  51. package/dist/db/repositories/UserConfigRepository.js +69 -0
  52. package/dist/db/repositories/UserConfigRepository.js.map +1 -0
  53. package/dist/db/repositories/UserRepository.js +68 -0
  54. package/dist/db/repositories/UserRepository.js.map +1 -0
  55. package/dist/db/repositories/index.js +6 -1
  56. package/dist/db/repositories/index.js.map +1 -1
  57. package/dist/index.js +12 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/middlewares/auth.js +1 -1
  60. package/dist/middlewares/auth.js.map +1 -1
  61. package/dist/middlewares/userContext.js +1 -1
  62. package/dist/middlewares/userContext.js.map +1 -1
  63. package/dist/models/User.js +29 -48
  64. package/dist/models/User.js.map +1 -1
  65. package/dist/routes/index.js +2 -1
  66. package/dist/routes/index.js.map +1 -1
  67. package/dist/scripts/migrate-to-database.js +5 -0
  68. package/dist/scripts/migrate-to-database.js.map +1 -0
  69. package/dist/server.js +2 -2
  70. package/dist/server.js.map +1 -1
  71. package/dist/services/dataService.js +62 -12
  72. package/dist/services/dataService.js.map +1 -1
  73. package/dist/services/groupService.js +87 -113
  74. package/dist/services/groupService.js.map +1 -1
  75. package/dist/services/keepAliveService.js +58 -0
  76. package/dist/services/keepAliveService.js.map +1 -0
  77. package/dist/services/mcpOAuthProvider.js +22 -28
  78. package/dist/services/mcpOAuthProvider.js.map +1 -1
  79. package/dist/services/mcpService.js +73 -92
  80. package/dist/services/mcpService.js.map +1 -1
  81. package/dist/services/oauthServerService.js +18 -12
  82. package/dist/services/oauthServerService.js.map +1 -1
  83. package/dist/services/oauthService.js +11 -10
  84. package/dist/services/oauthService.js.map +1 -1
  85. package/dist/services/oauthSettingsStore.js +17 -12
  86. package/dist/services/oauthSettingsStore.js.map +1 -1
  87. package/dist/services/openApiGeneratorService.js +6 -7
  88. package/dist/services/openApiGeneratorService.js.map +1 -1
  89. package/dist/services/registry.js +23 -15
  90. package/dist/services/registry.js.map +1 -1
  91. package/dist/services/services.js +2 -6
  92. package/dist/services/services.js.map +1 -1
  93. package/dist/services/sseService.js +20 -62
  94. package/dist/services/sseService.js.map +1 -1
  95. package/dist/services/userService.js +38 -45
  96. package/dist/services/userService.js.map +1 -1
  97. package/dist/utils/migration.js +184 -0
  98. package/dist/utils/migration.js.map +1 -0
  99. package/dist/utils/oauthBearer.js +3 -3
  100. package/dist/utils/oauthBearer.js.map +1 -1
  101. package/frontend/dist/assets/index-CHCrTZNY.css +1 -0
  102. package/frontend/dist/assets/index-Dno2pywv.js +251 -0
  103. package/frontend/dist/assets/index-Dno2pywv.js.map +1 -0
  104. package/frontend/dist/index.html +2 -2
  105. package/package.json +1 -1
  106. package/dist/services/dataServicex.js +0 -73
  107. package/dist/services/dataServicex.js.map +0 -1
  108. package/frontend/dist/assets/index-C_58ZhSt.css +0 -1
  109. package/frontend/dist/assets/index-qg3ysGil.js +0 -251
  110. package/frontend/dist/assets/index-qg3ysGil.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,68 @@
1
- export class DataServiceImpl {
2
- foo() {
3
- console.log('default implementation');
1
+ import { UserContextService } from './userContextService.js';
2
+ export class DataService {
3
+ filterData(data, user) {
4
+ // Use passed user parameter if available, otherwise fall back to context
5
+ const currentUser = user || UserContextService.getInstance().getCurrentUser();
6
+ if (!currentUser || currentUser.isAdmin) {
7
+ return data;
8
+ }
9
+ else {
10
+ return data.filter((item) => item.owner === currentUser?.username);
11
+ }
4
12
  }
5
- filterData(data, _user) {
6
- return data;
13
+ filterSettings(settings, user) {
14
+ // Use passed user parameter if available, otherwise fall back to context
15
+ const currentUser = user || UserContextService.getInstance().getCurrentUser();
16
+ if (!currentUser || currentUser.isAdmin) {
17
+ const result = { ...settings };
18
+ delete result.userConfigs;
19
+ return result;
20
+ }
21
+ else {
22
+ const result = { ...settings };
23
+ // TODO: apply userConfig to filter settings as needed
24
+ // const userConfig = settings.userConfigs?.[currentUser?.username || ''];
25
+ delete result.userConfigs;
26
+ return result;
27
+ }
7
28
  }
8
- filterSettings(settings, _user) {
9
- return settings;
29
+ mergeSettings(all, newSettings, user) {
30
+ // Use passed user parameter if available, otherwise fall back to context
31
+ const currentUser = user || UserContextService.getInstance().getCurrentUser();
32
+ if (!currentUser || currentUser.isAdmin) {
33
+ const result = { ...all };
34
+ result.mcpServers = newSettings.mcpServers;
35
+ result.users = newSettings.users;
36
+ result.systemConfig = newSettings.systemConfig;
37
+ result.groups = newSettings.groups;
38
+ result.oauthClients = newSettings.oauthClients;
39
+ result.oauthTokens = newSettings.oauthTokens;
40
+ return result;
41
+ }
42
+ else {
43
+ const result = JSON.parse(JSON.stringify(all));
44
+ if (!result.userConfigs) {
45
+ result.userConfigs = {};
46
+ }
47
+ const systemConfig = newSettings.systemConfig || {};
48
+ const userConfig = {
49
+ routing: systemConfig.routing
50
+ ? {
51
+ // TODO: only allow modifying certain fields based on userConfig permissions
52
+ }
53
+ : undefined,
54
+ };
55
+ result.userConfigs[currentUser?.username || ''] = userConfig;
56
+ return result;
57
+ }
10
58
  }
11
- mergeSettings(all, newSettings, _user) {
12
- return newSettings;
13
- }
14
- getPermissions(_user) {
15
- return ['*'];
59
+ getPermissions(user) {
60
+ if (user && user.isAdmin) {
61
+ return ['*', 'x'];
62
+ }
63
+ else {
64
+ return [''];
65
+ }
16
66
  }
17
67
  }
18
68
  //# sourceMappingURL=dataService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataService.js","sourceRoot":"","sources":["../../src/services/dataService.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,eAAe;IAC1B,GAAG;QACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,IAAW,EAAE,KAAa;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,QAAqB,EAAE,KAAa;QACjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,GAAgB,EAAE,WAAwB,EAAE,KAAa;QACrE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,KAAY;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"dataService.js","sourceRoot":"","sources":["../../src/services/dataService.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { v4 as uuidv4 } from 'uuid';
2
- import { loadSettings, saveSettings } from '../config/index.js';
3
2
  import { notifyToolChanged } from './mcpService.js';
4
3
  import { getDataService } from './services.js';
4
+ import { getGroupDao, getServerDao, getSystemConfigDao } from '../dao/index.js';
5
5
  // Helper function to normalize group servers configuration
6
6
  const normalizeGroupServers = (servers) => {
7
7
  return servers.map((server) => {
@@ -14,35 +14,38 @@ const normalizeGroupServers = (servers) => {
14
14
  });
15
15
  };
16
16
  // Get all groups
17
- export const getAllGroups = () => {
18
- const settings = loadSettings();
17
+ export const getAllGroups = async () => {
18
+ const groupDao = getGroupDao();
19
+ const groups = await groupDao.findAll();
19
20
  const dataService = getDataService();
20
- return dataService.filterData
21
- ? dataService.filterData(settings.groups || [])
22
- : settings.groups || [];
21
+ return dataService.filterData ? dataService.filterData(groups) : groups;
23
22
  };
24
23
  // Get group by ID or name
25
- export const getGroupByIdOrName = (key) => {
26
- const settings = loadSettings();
27
- const routingConfig = settings.systemConfig?.routing || {
24
+ export const getGroupByIdOrName = async (key) => {
25
+ const systemConfigDao = getSystemConfigDao();
26
+ const systemConfig = await systemConfigDao.get();
27
+ const routingConfig = systemConfig?.routing || {
28
28
  enableGlobalRoute: true,
29
29
  enableGroupNameRoute: true,
30
30
  };
31
- const groups = getAllGroups();
31
+ const groups = await getAllGroups();
32
32
  return (groups.find((group) => group.id === key || (group.name === key && routingConfig.enableGroupNameRoute)) || undefined);
33
33
  };
34
34
  // Create a new group
35
- export const createGroup = (name, description, servers = [], owner) => {
35
+ export const createGroup = async (name, description, servers = [], owner) => {
36
36
  try {
37
- const settings = loadSettings();
38
- const groups = settings.groups || [];
37
+ const groupDao = getGroupDao();
38
+ const serverDao = getServerDao();
39
39
  // Check if group with same name already exists
40
- if (groups.some((group) => group.name === name)) {
40
+ const existingGroup = await groupDao.findByName(name);
41
+ if (existingGroup) {
41
42
  return null;
42
43
  }
43
44
  // Normalize servers configuration and filter out non-existent servers
44
45
  const normalizedServers = normalizeGroupServers(servers);
45
- const validServers = normalizedServers.filter((serverConfig) => settings.mcpServers[serverConfig.name]);
46
+ const allServers = await serverDao.findAll();
47
+ const serverNames = new Set(allServers.map((s) => s.name));
48
+ const validServers = normalizedServers.filter((serverConfig) => serverNames.has(serverConfig.name));
46
49
  const newGroup = {
47
50
  id: uuidv4(),
48
51
  name,
@@ -50,15 +53,8 @@ export const createGroup = (name, description, servers = [], owner) => {
50
53
  servers: validServers,
51
54
  owner: owner || 'admin',
52
55
  };
53
- // Initialize groups array if it doesn't exist
54
- if (!settings.groups) {
55
- settings.groups = [];
56
- }
57
- settings.groups.push(newGroup);
58
- if (!saveSettings(settings)) {
59
- return null;
60
- }
61
- return newGroup;
56
+ const createdGroup = await groupDao.create(newGroup);
57
+ return createdGroup;
62
58
  }
63
59
  catch (error) {
64
60
  console.error('Failed to create group:', error);
@@ -66,34 +62,32 @@ export const createGroup = (name, description, servers = [], owner) => {
66
62
  }
67
63
  };
68
64
  // Update an existing group
69
- export const updateGroup = (id, data) => {
65
+ export const updateGroup = async (id, data) => {
70
66
  try {
71
- const settings = loadSettings();
72
- if (!settings.groups) {
73
- return null;
74
- }
75
- const groupIndex = settings.groups.findIndex((group) => group.id === id);
76
- if (groupIndex === -1) {
67
+ const groupDao = getGroupDao();
68
+ const serverDao = getServerDao();
69
+ const existingGroup = await groupDao.findById(id);
70
+ if (!existingGroup) {
77
71
  return null;
78
72
  }
79
73
  // Check for name uniqueness if name is being updated
80
- if (data.name && settings.groups.some((g) => g.name === data.name && g.id !== id)) {
81
- return null;
74
+ if (data.name && data.name !== existingGroup.name) {
75
+ const groupWithName = await groupDao.findByName(data.name);
76
+ if (groupWithName) {
77
+ return null;
78
+ }
82
79
  }
83
80
  // If servers array is provided, validate server existence and normalize format
84
81
  if (data.servers) {
85
82
  const normalizedServers = normalizeGroupServers(data.servers);
86
- data.servers = normalizedServers.filter((serverConfig) => settings.mcpServers[serverConfig.name]);
83
+ const allServers = await serverDao.findAll();
84
+ const serverNames = new Set(allServers.map((s) => s.name));
85
+ data.servers = normalizedServers.filter((serverConfig) => serverNames.has(serverConfig.name));
87
86
  }
88
- const updatedGroup = {
89
- ...settings.groups[groupIndex],
90
- ...data,
91
- };
92
- settings.groups[groupIndex] = updatedGroup;
93
- if (!saveSettings(settings)) {
94
- return null;
87
+ const updatedGroup = await groupDao.update(id, data);
88
+ if (updatedGroup) {
89
+ notifyToolChanged();
95
90
  }
96
- notifyToolChanged();
97
91
  return updatedGroup;
98
92
  }
99
93
  catch (error) {
@@ -103,25 +97,24 @@ export const updateGroup = (id, data) => {
103
97
  };
104
98
  // Update servers in a group (batch update)
105
99
  // Update group servers (maintaining backward compatibility)
106
- export const updateGroupServers = (groupId, servers) => {
100
+ export const updateGroupServers = async (groupId, servers) => {
107
101
  try {
108
- const settings = loadSettings();
109
- if (!settings.groups) {
110
- return null;
111
- }
112
- const groupIndex = settings.groups.findIndex((group) => group.id === groupId);
113
- if (groupIndex === -1) {
102
+ const groupDao = getGroupDao();
103
+ const serverDao = getServerDao();
104
+ const existingGroup = await groupDao.findById(groupId);
105
+ if (!existingGroup) {
114
106
  return null;
115
107
  }
116
108
  // Normalize and filter out non-existent servers
117
109
  const normalizedServers = normalizeGroupServers(servers);
118
- const validServers = normalizedServers.filter((serverConfig) => settings.mcpServers[serverConfig.name]);
119
- settings.groups[groupIndex].servers = validServers;
120
- if (!saveSettings(settings)) {
121
- return null;
110
+ const allServers = await serverDao.findAll();
111
+ const serverNames = new Set(allServers.map((s) => s.name));
112
+ const validServers = normalizedServers.filter((serverConfig) => serverNames.has(serverConfig.name));
113
+ const updatedGroup = await groupDao.update(groupId, { servers: validServers });
114
+ if (updatedGroup) {
115
+ notifyToolChanged();
122
116
  }
123
- notifyToolChanged();
124
- return settings.groups[groupIndex];
117
+ return updatedGroup;
125
118
  }
126
119
  catch (error) {
127
120
  console.error(`Failed to update servers for group ${groupId}:`, error);
@@ -129,18 +122,10 @@ export const updateGroupServers = (groupId, servers) => {
129
122
  }
130
123
  };
131
124
  // Delete a group
132
- export const deleteGroup = (id) => {
125
+ export const deleteGroup = async (id) => {
133
126
  try {
134
- const settings = loadSettings();
135
- if (!settings.groups) {
136
- return false;
137
- }
138
- const initialLength = settings.groups.length;
139
- settings.groups = settings.groups.filter((group) => group.id !== id);
140
- if (settings.groups.length === initialLength) {
141
- return false;
142
- }
143
- return saveSettings(settings);
127
+ const groupDao = getGroupDao();
128
+ return await groupDao.delete(id);
144
129
  }
145
130
  catch (error) {
146
131
  console.error(`Failed to delete group ${id}:`, error);
@@ -148,29 +133,28 @@ export const deleteGroup = (id) => {
148
133
  }
149
134
  };
150
135
  // Add server to group
151
- export const addServerToGroup = (groupId, serverName) => {
136
+ export const addServerToGroup = async (groupId, serverName) => {
152
137
  try {
153
- const settings = loadSettings();
154
- if (!settings.groups) {
155
- return null;
156
- }
138
+ const groupDao = getGroupDao();
139
+ const serverDao = getServerDao();
157
140
  // Verify server exists
158
- if (!settings.mcpServers[serverName]) {
141
+ const server = await serverDao.findById(serverName);
142
+ if (!server) {
159
143
  return null;
160
144
  }
161
- const groupIndex = settings.groups.findIndex((group) => group.id === groupId);
162
- if (groupIndex === -1) {
145
+ const group = await groupDao.findById(groupId);
146
+ if (!group) {
163
147
  return null;
164
148
  }
165
- const group = settings.groups[groupIndex];
166
149
  const normalizedServers = normalizeGroupServers(group.servers);
167
150
  // Add server to group if not already in it
168
- if (!normalizedServers.some((server) => server.name === serverName)) {
151
+ if (!normalizedServers.some((s) => s.name === serverName)) {
169
152
  normalizedServers.push({ name: serverName, tools: 'all' });
170
- group.servers = normalizedServers;
171
- if (!saveSettings(settings)) {
172
- return null;
153
+ const updatedGroup = await groupDao.update(groupId, { servers: normalizedServers });
154
+ if (updatedGroup) {
155
+ notifyToolChanged();
173
156
  }
157
+ return updatedGroup;
174
158
  }
175
159
  notifyToolChanged();
176
160
  return group;
@@ -181,23 +165,16 @@ export const addServerToGroup = (groupId, serverName) => {
181
165
  }
182
166
  };
183
167
  // Remove server from group
184
- export const removeServerFromGroup = (groupId, serverName) => {
168
+ export const removeServerFromGroup = async (groupId, serverName) => {
185
169
  try {
186
- const settings = loadSettings();
187
- if (!settings.groups) {
188
- return null;
189
- }
190
- const groupIndex = settings.groups.findIndex((group) => group.id === groupId);
191
- if (groupIndex === -1) {
170
+ const groupDao = getGroupDao();
171
+ const group = await groupDao.findById(groupId);
172
+ if (!group) {
192
173
  return null;
193
174
  }
194
- const group = settings.groups[groupIndex];
195
175
  const normalizedServers = normalizeGroupServers(group.servers);
196
- group.servers = normalizedServers.filter((server) => server.name !== serverName);
197
- if (!saveSettings(settings)) {
198
- return null;
199
- }
200
- return group;
176
+ const filteredServers = normalizedServers.filter((server) => server.name !== serverName);
177
+ return await groupDao.update(groupId, { servers: filteredServers });
201
178
  }
202
179
  catch (error) {
203
180
  console.error(`Failed to remove server ${serverName} from group ${groupId}:`, error);
@@ -205,57 +182,54 @@ export const removeServerFromGroup = (groupId, serverName) => {
205
182
  }
206
183
  };
207
184
  // Get all servers in a group
208
- export const getServersInGroup = (groupId) => {
209
- const group = getGroupByIdOrName(groupId);
185
+ export const getServersInGroup = async (groupId) => {
186
+ const group = await getGroupByIdOrName(groupId);
210
187
  if (!group)
211
188
  return [];
212
189
  const normalizedServers = normalizeGroupServers(group.servers);
213
190
  return normalizedServers.map((server) => server.name);
214
191
  };
215
192
  // Get server configuration from group (including tool selection)
216
- export const getServerConfigInGroup = (groupId, serverName) => {
217
- const group = getGroupByIdOrName(groupId);
193
+ export const getServerConfigInGroup = async (groupId, serverName) => {
194
+ const group = await getGroupByIdOrName(groupId);
218
195
  if (!group)
219
196
  return undefined;
220
197
  const normalizedServers = normalizeGroupServers(group.servers);
221
198
  return normalizedServers.find((server) => server.name === serverName);
222
199
  };
223
200
  // Get all server configurations in a group
224
- export const getServerConfigsInGroup = (groupId) => {
225
- const group = getGroupByIdOrName(groupId);
201
+ export const getServerConfigsInGroup = async (groupId) => {
202
+ const group = await getGroupByIdOrName(groupId);
226
203
  if (!group)
227
204
  return [];
228
205
  return normalizeGroupServers(group.servers);
229
206
  };
230
207
  // Update tools selection for a specific server in a group
231
- export const updateServerToolsInGroup = (groupId, serverName, tools) => {
208
+ export const updateServerToolsInGroup = async (groupId, serverName, tools) => {
232
209
  try {
233
- const settings = loadSettings();
234
- if (!settings.groups) {
235
- return null;
236
- }
237
- const groupIndex = settings.groups.findIndex((group) => group.id === groupId);
238
- if (groupIndex === -1) {
210
+ const groupDao = getGroupDao();
211
+ const serverDao = getServerDao();
212
+ const group = await groupDao.findById(groupId);
213
+ if (!group) {
239
214
  return null;
240
215
  }
241
216
  // Verify server exists
242
- if (!settings.mcpServers[serverName]) {
217
+ const server = await serverDao.findById(serverName);
218
+ if (!server) {
243
219
  return null;
244
220
  }
245
- const group = settings.groups[groupIndex];
246
221
  const normalizedServers = normalizeGroupServers(group.servers);
247
- const serverIndex = normalizedServers.findIndex((server) => server.name === serverName);
222
+ const serverIndex = normalizedServers.findIndex((s) => s.name === serverName);
248
223
  if (serverIndex === -1) {
249
224
  return null; // Server not in group
250
225
  }
251
226
  // Update the tools configuration for the server
252
227
  normalizedServers[serverIndex].tools = tools;
253
- group.servers = normalizedServers;
254
- if (!saveSettings(settings)) {
255
- return null;
228
+ const updatedGroup = await groupDao.update(groupId, { servers: normalizedServers });
229
+ if (updatedGroup) {
230
+ notifyToolChanged();
256
231
  }
257
- notifyToolChanged();
258
- return group;
232
+ return updatedGroup;
259
233
  }
260
234
  catch (error) {
261
235
  console.error(`Failed to update tools for server ${serverName} in group ${groupId}:`, error);
@@ -1 +1 @@
1
- {"version":3,"file":"groupService.js","sourceRoot":"","sources":["../../src/services/groupService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"groupService.js","sourceRoot":"","sources":["../../src/services/groupService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
2
+ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
3
+ /**
4
+ * Set up keep-alive ping for MCP client connections (SSE or Streamable HTTP).
5
+ * Keepalive is controlled per-server via `serverConfig.enableKeepAlive` (default off).
6
+ */
7
+ export const setupClientKeepAlive = async (serverInfo, serverConfig) => {
8
+ // Only set up keep-alive for SSE or Streamable HTTP client transports
9
+ const isSSE = serverInfo.transport instanceof SSEClientTransport;
10
+ const isStreamableHttp = serverInfo.transport instanceof StreamableHTTPClientTransport;
11
+ if (!isSSE && !isStreamableHttp) {
12
+ return;
13
+ }
14
+ const enabled = serverConfig.enableKeepAlive === true;
15
+ if (!enabled) {
16
+ // Ensure any previous timer is cleared
17
+ if (serverInfo.keepAliveIntervalId) {
18
+ clearInterval(serverInfo.keepAliveIntervalId);
19
+ serverInfo.keepAliveIntervalId = undefined;
20
+ }
21
+ return;
22
+ }
23
+ // Clear any existing interval first
24
+ if (serverInfo.keepAliveIntervalId) {
25
+ clearInterval(serverInfo.keepAliveIntervalId);
26
+ }
27
+ // Default interval: 60 seconds
28
+ const interval = serverConfig.keepAliveInterval || 60000;
29
+ serverInfo.keepAliveIntervalId = setInterval(async () => {
30
+ try {
31
+ if (serverInfo.client && serverInfo.status === 'connected') {
32
+ // Use client.ping() if available, otherwise fallback to listTools
33
+ if (typeof serverInfo.client.ping === 'function') {
34
+ await serverInfo.client.ping();
35
+ console.log(`Keep-alive ping successful for server: ${serverInfo.name}`);
36
+ }
37
+ else {
38
+ await serverInfo.client.listTools({ timeout: 5000 }).catch(() => void 0);
39
+ }
40
+ }
41
+ }
42
+ catch (error) {
43
+ console.warn(`Keep-alive ping failed for server ${serverInfo.name}:`, error);
44
+ }
45
+ }, interval);
46
+ console.log(`Keep-alive enabled for server ${serverInfo.name} at ${Math.round(interval / 1000)}s interval`);
47
+ };
48
+ /**
49
+ * Clear keep-alive timer for a server.
50
+ */
51
+ export const clearClientKeepAlive = (serverInfo) => {
52
+ if (serverInfo.keepAliveIntervalId) {
53
+ clearInterval(serverInfo.keepAliveIntervalId);
54
+ serverInfo.keepAliveIntervalId = undefined;
55
+ console.log(`Cleared keep-alive interval for server: ${serverInfo.name}`);
56
+ }
57
+ };
58
+ //# sourceMappingURL=keepAliveService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keepAliveService.js","sourceRoot":"","sources":["../../src/services/keepAliveService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAQnG;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,UAAsB,EACtB,YAA0B,EACX,EAAE;IACjB,sEAAsE;IACtE,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,YAAY,kBAAkB,CAAC;IACjE,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,YAAY,6BAA6B,CAAC;IACvF,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,eAAe,KAAK,IAAI,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,uCAAuC;QACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACnC,aAAa,CAAC,UAAU,CAAC,mBAAqC,CAAC,CAAC;YAChE,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAC7C,CAAC;QACD,OAAO;IACT,CAAC;IAED,oCAAoC;IACpC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACnC,aAAa,CAAC,UAAU,CAAC,mBAAqC,CAAC,CAAC;IAClE,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,iBAAiB,IAAI,KAAK,CAAC;IAEzD,UAAU,CAAC,mBAAmB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3D,kEAAkE;gBAClE,IAAI,OAAQ,UAAU,CAAC,MAAc,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC1D,MAAO,UAAU,CAAC,MAAc,CAAC,IAAI,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,0CAA0C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3E,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEb,OAAO,CAAC,GAAG,CACT,iCAAiC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAC/F,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAsB,EAAQ,EAAE;IACnE,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACnC,aAAa,CAAC,UAAU,CAAC,mBAAqC,CAAC,CAAC;QAChE,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,2CAA2C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC,CAAC"}