@samanhappy/mcphub 1.0.38 → 1.0.39

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 (78) hide show
  1. package/dist/db/repositories/VectorEmbeddingRepository.js +35 -3
  2. package/dist/db/repositories/VectorEmbeddingRepository.js.map +1 -1
  3. package/dist/services/mcpService.js +85 -2
  4. package/dist/services/mcpService.js.map +1 -1
  5. package/dist/services/vectorSearchService.js +12 -3
  6. package/dist/services/vectorSearchService.js.map +1 -1
  7. package/dist/utils/cacheUtils.js +345 -1
  8. package/dist/utils/cacheUtils.js.map +1 -1
  9. package/dist/utils/packageUpdate.js +242 -0
  10. package/dist/utils/packageUpdate.js.map +1 -0
  11. package/dist/utils/serverConfigPersistence.js +6 -0
  12. package/dist/utils/serverConfigPersistence.js.map +1 -1
  13. package/frontend/dist/assets/{ActivityPage-BZNq-eGE.js → ActivityPage-CDKSVr2I.js} +2 -2
  14. package/frontend/dist/assets/{ActivityPage-BZNq-eGE.js.map → ActivityPage-CDKSVr2I.js.map} +1 -1
  15. package/frontend/dist/assets/CopyClientConfigDialog-DYiucK0d.js +4 -0
  16. package/frontend/dist/assets/CopyClientConfigDialog-DYiucK0d.js.map +1 -0
  17. package/frontend/dist/assets/{CredentialsPage-7kyDJLsX.js → CredentialsPage-DMJE4uT2.js} +2 -2
  18. package/frontend/dist/assets/{CredentialsPage-7kyDJLsX.js.map → CredentialsPage-DMJE4uT2.js.map} +1 -1
  19. package/frontend/dist/assets/Dashboard-Dh_39img.js +2 -0
  20. package/frontend/dist/assets/{Dashboard-CElNx820.js.map → Dashboard-Dh_39img.js.map} +1 -1
  21. package/frontend/dist/assets/EndpointCopy-CQmwGXbD.js +2 -0
  22. package/frontend/dist/assets/EndpointCopy-CQmwGXbD.js.map +1 -0
  23. package/frontend/dist/assets/GroupsPage-BqscWSfR.js +33 -0
  24. package/frontend/dist/assets/GroupsPage-BqscWSfR.js.map +1 -0
  25. package/frontend/dist/assets/{LoginPage-D23s7oM0.js → LoginPage-DcrwvgS6.js} +2 -2
  26. package/frontend/dist/assets/{LoginPage-D23s7oM0.js.map → LoginPage-DcrwvgS6.js.map} +1 -1
  27. package/frontend/dist/assets/{LogsPage-BuQMkmV-.js → LogsPage--Blkr-Ni.js} +2 -2
  28. package/frontend/dist/assets/{LogsPage-BuQMkmV-.js.map → LogsPage--Blkr-Ni.js.map} +1 -1
  29. package/frontend/dist/assets/{MarketPage-g9vEYzIq.js → MarketPage-DWv18j4V.js} +2 -2
  30. package/frontend/dist/assets/{MarketPage-g9vEYzIq.js.map → MarketPage-DWv18j4V.js.map} +1 -1
  31. package/frontend/dist/assets/{OAuthConsentPage-BiX1lpJR.js → OAuthConsentPage-DCKZIMzE.js} +2 -2
  32. package/frontend/dist/assets/{OAuthConsentPage-BiX1lpJR.js.map → OAuthConsentPage-DCKZIMzE.js.map} +1 -1
  33. package/frontend/dist/assets/{PromptsPage-g8SRFY6s.js → PromptsPage-DoVmnVnp.js} +2 -2
  34. package/frontend/dist/assets/{PromptsPage-g8SRFY6s.js.map → PromptsPage-DoVmnVnp.js.map} +1 -1
  35. package/frontend/dist/assets/{ResourcesPage-Ddhxi9Sf.js → ResourcesPage-B8udCQQR.js} +2 -2
  36. package/frontend/dist/assets/{ResourcesPage-Ddhxi9Sf.js.map → ResourcesPage-B8udCQQR.js.map} +1 -1
  37. package/frontend/dist/assets/ServersPage-OLpH1K1I.js +39 -0
  38. package/frontend/dist/assets/ServersPage-OLpH1K1I.js.map +1 -0
  39. package/frontend/dist/assets/{SettingsPage-DZXjQZXS.js → SettingsPage-DlK0Jcta.js} +3 -3
  40. package/frontend/dist/assets/{SettingsPage-DZXjQZXS.js.map → SettingsPage-DlK0Jcta.js.map} +1 -1
  41. package/frontend/dist/assets/{StatusDot-CdzMqjTi.js → StatusDot-DgDU3plH.js} +2 -2
  42. package/frontend/dist/assets/{StatusDot-CdzMqjTi.js.map → StatusDot-DgDU3plH.js.map} +1 -1
  43. package/frontend/dist/assets/{ToggleGroup-CJd8X_31.js → ToggleGroup-11yhmcwY.js} +2 -2
  44. package/frontend/dist/assets/{ToggleGroup-CJd8X_31.js.map → ToggleGroup-11yhmcwY.js.map} +1 -1
  45. package/frontend/dist/assets/{UsersPage-CkP_x9Rt.js → UsersPage-BqPEkoIX.js} +2 -2
  46. package/frontend/dist/assets/{UsersPage-CkP_x9Rt.js.map → UsersPage-BqPEkoIX.js.map} +1 -1
  47. package/frontend/dist/assets/clipboard-BukcCPLt.js +2 -0
  48. package/frontend/dist/assets/clipboard-BukcCPLt.js.map +1 -0
  49. package/frontend/dist/assets/{icons-vendor-VW-UwEhw.js → icons-vendor-Bk5sng-h.js} +66 -61
  50. package/frontend/dist/assets/icons-vendor-Bk5sng-h.js.map +1 -0
  51. package/frontend/dist/assets/index-D4Vy78bV.css +1 -0
  52. package/frontend/dist/assets/index-DhzWX9nb.js +3 -0
  53. package/frontend/dist/assets/{index-Bu4XuAH4.js.map → index-DhzWX9nb.js.map} +1 -1
  54. package/frontend/dist/assets/{resourceService-w-cZ31FD.js → resourceService-D-PRt7tB.js} +2 -2
  55. package/frontend/dist/assets/{resourceService-w-cZ31FD.js.map → resourceService-D-PRt7tB.js.map} +1 -1
  56. package/frontend/dist/assets/{useCostData-C72NC0PQ.js → useCostData-B-uSfiuA.js} +2 -2
  57. package/frontend/dist/assets/{useCostData-C72NC0PQ.js.map → useCostData-B-uSfiuA.js.map} +1 -1
  58. package/frontend/dist/assets/useSettingsData-Bk1AwN5F.js +2 -0
  59. package/frontend/dist/assets/{useSettingsData-JTEMu74D.js.map → useSettingsData-Bk1AwN5F.js.map} +1 -1
  60. package/frontend/dist/assets/variableDetection-B7Ko56CL.js +16 -0
  61. package/frontend/dist/assets/variableDetection-B7Ko56CL.js.map +1 -0
  62. package/frontend/dist/index.html +3 -3
  63. package/package.json +2 -1
  64. package/frontend/dist/assets/Dashboard-CElNx820.js +0 -2
  65. package/frontend/dist/assets/EndpointCopy-8jW5Xtka.js +0 -2
  66. package/frontend/dist/assets/EndpointCopy-8jW5Xtka.js.map +0 -1
  67. package/frontend/dist/assets/GroupsPage-dUkvX_iB.js +0 -33
  68. package/frontend/dist/assets/GroupsPage-dUkvX_iB.js.map +0 -1
  69. package/frontend/dist/assets/ServersPage-DAmKvrPV.js +0 -39
  70. package/frontend/dist/assets/ServersPage-DAmKvrPV.js.map +0 -1
  71. package/frontend/dist/assets/icons-vendor-VW-UwEhw.js.map +0 -1
  72. package/frontend/dist/assets/index-B3OqAhGz.css +0 -1
  73. package/frontend/dist/assets/index-Bu4XuAH4.js +0 -3
  74. package/frontend/dist/assets/toolDescription-Dw3sa28K.js +0 -2
  75. package/frontend/dist/assets/toolDescription-Dw3sa28K.js.map +0 -1
  76. package/frontend/dist/assets/useSettingsData-JTEMu74D.js +0 -2
  77. package/frontend/dist/assets/variableDetection-DfhNyFy-.js +0 -16
  78. package/frontend/dist/assets/variableDetection-DfhNyFy-.js.map +0 -1
@@ -92,14 +92,37 @@ export class VectorEmbeddingRepository extends BaseRepository {
92
92
  result.model = model;
93
93
  return result;
94
94
  }
95
+ /**
96
+ * Build the `content_id` predicate that restricts a search to a set of
97
+ * servers. Embeddings are keyed by server: tools as `<serverName>:<toolName>`
98
+ * and the server-level row as `<serverName>`, so one predicate covers both
99
+ * content types. Returns undefined when no restriction applies.
100
+ */
101
+ buildServerScopeFilter(serverNames) {
102
+ const names = serverNames.filter((name) => typeof name === 'string' && name.length > 0);
103
+ if (names.length === 0) {
104
+ return undefined;
105
+ }
106
+ const parameters = { scopedServerNames: names };
107
+ const clauses = ['vector_embedding.content_id IN (:...scopedServerNames)'];
108
+ names.forEach((name, index) => {
109
+ const key = `scopedServerPrefix${index}`;
110
+ parameters[key] = `${escapeLikePattern(name)}:%`;
111
+ clauses.push(`vector_embedding.content_id LIKE :${key} ESCAPE '\\'`);
112
+ });
113
+ return { clause: `(${clauses.join(' OR ')})`, parameters };
114
+ }
95
115
  /**
96
116
  * Search for similar embeddings using cosine similarity
97
117
  * @param embedding Vector embedding to search against
98
118
  * @param limit Maximum number of results (default: 10)
99
119
  * @param threshold Similarity threshold (default: 0.7)
100
120
  * @param contentTypes Optional content types to filter by
121
+ * @param serverNames Optional server names to restrict the search to. Applied
122
+ * in SQL so that `limit` counts rows the caller can actually use.
101
123
  */
102
- async searchSimilar(embedding, limit = 10, threshold = 0.7, contentTypes) {
124
+ async searchSimilar(embedding, limit = 10, threshold = 0.7, contentTypes, serverNames) {
125
+ const serverScope = serverNames ? this.buildServerScopeFilter(serverNames) : undefined;
103
126
  try {
104
127
  // Try using vector similarity operator first
105
128
  try {
@@ -120,6 +143,10 @@ export class VectorEmbeddingRepository extends BaseRepository {
120
143
  .andWhere('vector_embedding.content_type IN (:...contentTypes)')
121
144
  .setParameter('contentTypes', contentTypes);
122
145
  }
146
+ // Restrict to the requested servers before the limit is applied
147
+ if (serverScope) {
148
+ query = query.andWhere(serverScope.clause, serverScope.parameters);
149
+ }
123
150
  // Execute query
124
151
  const results = await query.getRawMany();
125
152
  // Return results if successful
@@ -138,6 +165,10 @@ export class VectorEmbeddingRepository extends BaseRepository {
138
165
  .where('vector_embedding.content_type IN (:...contentTypes)')
139
166
  .setParameter('contentTypes', contentTypes);
140
167
  }
168
+ // Restrict to the requested servers before the limit is applied
169
+ if (serverScope) {
170
+ query = query.andWhere(serverScope.clause, serverScope.parameters);
171
+ }
141
172
  // Limit results
142
173
  query = query.take(limit);
143
174
  // Execute query
@@ -161,13 +192,14 @@ export class VectorEmbeddingRepository extends BaseRepository {
161
192
  * @param limit Maximum number of results
162
193
  * @param threshold Similarity threshold
163
194
  * @param contentTypes Optional content types to filter by
195
+ * @param serverNames Optional server names to restrict the search to
164
196
  */
165
- async searchByText(text, getEmbeddingFunc, limit = 10, threshold = 0.7, contentTypes) {
197
+ async searchByText(text, getEmbeddingFunc, limit = 10, threshold = 0.7, contentTypes, serverNames) {
166
198
  try {
167
199
  // Get embedding for the search text
168
200
  const embedding = await getEmbeddingFunc(text);
169
201
  // Search by embedding
170
- return this.searchSimilar(embedding, limit, threshold, contentTypes);
202
+ return this.searchSimilar(embedding, limit, threshold, contentTypes, serverNames);
171
203
  }
172
204
  catch (error) {
173
205
  logger.error('Error searching by text:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"VectorEmbeddingRepository.js","sourceRoot":"","sources":["../../../src/db/repositories/VectorEmbeddingRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VectorEmbeddingRepository.js","sourceRoot":"","sources":["../../../src/db/repositories/VectorEmbeddingRepository.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,8 @@ import { assertHostedToolAllowed, filterHostedTools, reserveHostedToolCall, sett
40
40
  import { formatErrorForLogging, sanitizeStringForLogging, summarizeErrorForLogging, } from '../utils/serialization.js';
41
41
  import { addStdioErrorContext, observeStdioStderr } from '../utils/stdioDiagnostics.js';
42
42
  import { MCP_APPS_CAPABILITIES, filterModelVisibleTools, hasMcpAppsCapability, isAppOnlyTool, stripMcpAppsMetadata, } from '../utils/mcpApps.js';
43
- import { supportsCacheRefresh, injectRefreshFlag, clearRunnerCache } from '../utils/cacheUtils.js';
43
+ import { supportsCacheRefresh, injectRefreshFlag, clearRunnerCache, resolveRunnerPackageVersion } from '../utils/cacheUtils.js';
44
+ import { checkPackageUpdate } from '../utils/packageUpdate.js';
44
45
  const servers = {};
45
46
  import { setupClientKeepAlive } from './keepAliveService.js';
46
47
  import { logger } from '../utils/logger.js';
@@ -754,6 +755,7 @@ export const connected = () => {
754
755
  };
755
756
  // Global cleanup function to close all connections
756
757
  export const cleanupAllServers = () => {
758
+ stopPackageUpdateSweep();
757
759
  principalRuntimes.invalidate();
758
760
  for (const serverInfo of serverInfos) {
759
761
  try {
@@ -1625,6 +1627,8 @@ export const initializeClientsFromSettings = async (isInit, serverName, options)
1625
1627
  const serverVersion = client.getServerVersion?.();
1626
1628
  info.version = serverVersion?.version;
1627
1629
  info.instructions = client.getInstructions?.();
1630
+ // Record the resolved npx/uvx package version backing this server.
1631
+ applyResolvedPackageVersion(info, expandedConf);
1628
1632
  const capabilities = client.getServerCapabilities();
1629
1633
  logger.log('Server capabilities', JSON.stringify(capabilities));
1630
1634
  let dataError = null;
@@ -1847,7 +1851,7 @@ export const getServersInfo = async (page, limit, user) => {
1847
1851
  }));
1848
1852
  const infos = presentedInfos
1849
1853
  .filter((info) => requestedServerNames.has(info.name)) // Only include requested servers
1850
- .map(({ name, version, instructions, owner, visibility, status, tools, prompts, resources, createTime, error, oauth, }) => {
1854
+ .map(({ name, version, packageVersion, latestVersion, updateAvailable, instructions, owner, visibility, status, tools, prompts, resources, createTime, error, oauth, }) => {
1851
1855
  const serverConfig = allServers.find((server) => server.name === name);
1852
1856
  const enabled = serverConfig ? serverConfig.enabled !== false : true;
1853
1857
  const resolvedType = inferServerType(serverConfig);
@@ -1891,6 +1895,12 @@ export const getServersInfo = async (page, limit, user) => {
1891
1895
  resources: resourcesWithEnabled,
1892
1896
  createTime,
1893
1897
  enabled,
1898
+ // Resolved npx/uvx package version + registry update hint (#1166).
1899
+ // Runtime state, kept at the top level like `version` so it can never
1900
+ // be round-tripped into a persisted ServerConfig.
1901
+ ...(packageVersion ? { packageVersion } : {}),
1902
+ ...(latestVersion ? { latestVersion } : {}),
1903
+ ...(updateAvailable !== undefined ? { updateAvailable } : {}),
1894
1904
  oauth: oauth || oauthConnected
1895
1905
  ? {
1896
1906
  ...(oauth
@@ -1969,6 +1979,75 @@ export const reconnectServer = async (serverName) => {
1969
1979
  await initializeClientsFromSettings(false, serverName);
1970
1980
  logger.log(`Successfully reconnected server: ${serverName}`);
1971
1981
  };
1982
+ /**
1983
+ * Resolve the installed package version for an npx/uvx stdio server and record
1984
+ * it on the live ServerInfo, so the dashboard can answer "what version is
1985
+ * actually running" (see #1166). Also checks the configured registry for a
1986
+ * newer version and marks updateAvailable. Fire-and-forget: best-effort
1987
+ * display data — a resolution failure must never break or delay a connection.
1988
+ *
1989
+ * On any failure the runtime fields are cleared so the UI never shows a stale
1990
+ * version or a stale "update available" hint from an earlier, healthier check.
1991
+ */
1992
+ const applyResolvedPackageVersion = (info, config) => {
1993
+ const command = config?.command;
1994
+ if (!command || !supportsCacheRefresh(command))
1995
+ return;
1996
+ void (async () => {
1997
+ try {
1998
+ const args = config.args ?? [];
1999
+ const version = await resolveRunnerPackageVersion(command, args);
2000
+ if (!version) {
2001
+ info.packageVersion = undefined;
2002
+ info.latestVersion = undefined;
2003
+ info.updateAvailable = undefined;
2004
+ return;
2005
+ }
2006
+ info.packageVersion = version;
2007
+ const systemConfig = await getSystemConfigDao().get();
2008
+ const update = await checkPackageUpdate(command, args, version, {
2009
+ npmRegistry: systemConfig?.install?.npmRegistry,
2010
+ pythonIndexUrl: systemConfig?.install?.pythonIndexUrl,
2011
+ });
2012
+ if (update?.latestVersion) {
2013
+ info.latestVersion = update.latestVersion;
2014
+ info.updateAvailable = update.updateAvailable;
2015
+ }
2016
+ else {
2017
+ // Registry unreachable or no metadata: hide the hint rather than keep
2018
+ // a stale "update available" from a previous successful check.
2019
+ info.latestVersion = undefined;
2020
+ info.updateAvailable = undefined;
2021
+ }
2022
+ }
2023
+ catch (error) {
2024
+ logger.warn(`Failed to resolve package update for ${info.name}`, { error });
2025
+ info.latestVersion = undefined;
2026
+ info.updateAvailable = undefined;
2027
+ }
2028
+ })();
2029
+ };
2030
+ // Periodically refresh the "update available" flag for npx/uvx servers (#1166).
2031
+ // Each check respects the TTL cache inside checkPackageUpdate, so this only
2032
+ // re-queries packages whose last registry lookup has gone stale. The timer is
2033
+ // unref'd so it never keeps the process alive by itself.
2034
+ //
2035
+ // Note: personal-runtime servers (credential-template bindings) are not part of
2036
+ // `serverInfos` and are therefore not swept here — their flags refresh when a
2037
+ // new per-user connection is created in createPrincipalRuntime instead.
2038
+ const PACKAGE_UPDATE_SWEEP_MS = 6 * 60 * 60 * 1000;
2039
+ const packageUpdateSweepTimer = setInterval(() => {
2040
+ for (const info of serverInfos) {
2041
+ if (!info.config?.command)
2042
+ continue;
2043
+ applyResolvedPackageVersion(info, info.config);
2044
+ }
2045
+ }, PACKAGE_UPDATE_SWEEP_MS);
2046
+ packageUpdateSweepTimer.unref?.();
2047
+ /** Stop the periodic package-update sweep (called on shutdown). */
2048
+ export const stopPackageUpdateSweep = () => {
2049
+ clearInterval(packageUpdateSweepTimer);
2050
+ };
1972
2051
  // Reinstall server: clear package cache and reconnect.
1973
2052
  // For npx: deletes ~/.npm/_npx before reconnect (--ignore-existing removed in npm 7+).
1974
2053
  // For uvx: schedules --refresh flag injection on next spawn via pendingReinstalls Set.
@@ -2303,6 +2382,8 @@ const ensureServerReady = async (serverInfo) => {
2303
2382
  serverInfo.version = client.getServerVersion?.()?.version;
2304
2383
  serverInfo.instructions = client.getInstructions?.();
2305
2384
  serverInfo.config = expandedConf;
2385
+ // Record the resolved npx/uvx package version backing this server.
2386
+ applyResolvedPackageVersion(serverInfo, expandedConf);
2306
2387
  serverInfo.status = 'connected';
2307
2388
  serverInfo.error = null;
2308
2389
  let toolCount = 0;
@@ -3606,6 +3687,8 @@ const createPrincipalRuntime = async (name, resolvedConfig) => {
3606
3687
  if (capabilities?.resources)
3607
3688
  info.resources = (await client.listResources({}, resolvedConfig.options)).resources.map(normalizeResourceForCache);
3608
3689
  info.version = client.getServerVersion()?.version;
3690
+ // Record the resolved npx/uvx package version backing this server.
3691
+ applyResolvedPackageVersion(info, resolvedConfig);
3609
3692
  client.onclose = () => {
3610
3693
  info.status = 'disconnected';
3611
3694
  };