@samanhappy/mcphub 1.2.2 → 1.2.3
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/dist/controllers/bearerKeyController.js +50 -2
- package/dist/controllers/bearerKeyController.js.map +1 -1
- package/dist/services/mcpService.js +131 -5
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/personalOAuthService.js +3 -1
- package/dist/services/personalOAuthService.js.map +1 -1
- package/dist/services/sseService.js +7 -5
- package/dist/services/sseService.js.map +1 -1
- package/dist/utils/resourceTemplateMatch.js +229 -0
- package/dist/utils/resourceTemplateMatch.js.map +1 -0
- package/dist/utils/upstreamError.js +10 -1
- package/dist/utils/upstreamError.js.map +1 -1
- package/frontend/dist/assets/{ActivityPage-CB41zWix.js → ActivityPage-DhNQ7kmd.js} +2 -2
- package/frontend/dist/assets/{ActivityPage-CB41zWix.js.map → ActivityPage-DhNQ7kmd.js.map} +1 -1
- package/frontend/dist/assets/{CredentialsPage-BecFRfro.js → CredentialsPage-DysT6EhJ.js} +2 -2
- package/frontend/dist/assets/{CredentialsPage-BecFRfro.js.map → CredentialsPage-DysT6EhJ.js.map} +1 -1
- package/frontend/dist/assets/{Dashboard-CwifBwm4.js → Dashboard-CIkS2wIr.js} +2 -2
- package/frontend/dist/assets/{Dashboard-CwifBwm4.js.map → Dashboard-CIkS2wIr.js.map} +1 -1
- package/frontend/dist/assets/{EndpointCopy-BeLf_ow_.js → EndpointCopy-zuPM6wTV.js} +2 -2
- package/frontend/dist/assets/{EndpointCopy-BeLf_ow_.js.map → EndpointCopy-zuPM6wTV.js.map} +1 -1
- package/frontend/dist/assets/{GroupsPage-DLL1tFj8.js → GroupsPage-DXE8on9r.js} +2 -2
- package/frontend/dist/assets/{GroupsPage-DLL1tFj8.js.map → GroupsPage-DXE8on9r.js.map} +1 -1
- package/frontend/dist/assets/{LoginPage-DvHL1HNV.js → LoginPage-DP5A-fpr.js} +2 -2
- package/frontend/dist/assets/{LoginPage-DvHL1HNV.js.map → LoginPage-DP5A-fpr.js.map} +1 -1
- package/frontend/dist/assets/{LogsPage-Bva6Y11K.js → LogsPage-kFZF0A3x.js} +2 -2
- package/frontend/dist/assets/{LogsPage-Bva6Y11K.js.map → LogsPage-kFZF0A3x.js.map} +1 -1
- package/frontend/dist/assets/{MarketPage-DGxNuifk.js → MarketPage-DaodfOD8.js} +2 -2
- package/frontend/dist/assets/{MarketPage-DGxNuifk.js.map → MarketPage-DaodfOD8.js.map} +1 -1
- package/frontend/dist/assets/{OAuthApprovalsPage-TzVNIJ27.js → OAuthApprovalsPage-BbkfaOs3.js} +2 -2
- package/frontend/dist/assets/{OAuthApprovalsPage-TzVNIJ27.js.map → OAuthApprovalsPage-BbkfaOs3.js.map} +1 -1
- package/frontend/dist/assets/{OAuthConsentPage-yQSgIbZ8.js → OAuthConsentPage-BX5MIl4y.js} +2 -2
- package/frontend/dist/assets/{OAuthConsentPage-yQSgIbZ8.js.map → OAuthConsentPage-BX5MIl4y.js.map} +1 -1
- package/frontend/dist/assets/{PromptsPage-CIAVpo9B.js → PromptsPage-DEIMpdNn.js} +2 -2
- package/frontend/dist/assets/{PromptsPage-CIAVpo9B.js.map → PromptsPage-DEIMpdNn.js.map} +1 -1
- package/frontend/dist/assets/{ResourcesPage-C5g-98tB.js → ResourcesPage-CjkaRPQd.js} +2 -2
- package/frontend/dist/assets/{ResourcesPage-C5g-98tB.js.map → ResourcesPage-CjkaRPQd.js.map} +1 -1
- package/frontend/dist/assets/{ServersPage-CJEgBQr-.js → ServersPage-LpIlO6by.js} +4 -4
- package/frontend/dist/assets/{ServersPage-CJEgBQr-.js.map → ServersPage-LpIlO6by.js.map} +1 -1
- package/frontend/dist/assets/SettingsPage-fL5-63Ve.js +14 -0
- package/frontend/dist/assets/SettingsPage-fL5-63Ve.js.map +1 -0
- package/frontend/dist/assets/{StatusDot-B81gkUBo.js → StatusDot-DyEnhqJV.js} +2 -2
- package/frontend/dist/assets/{StatusDot-B81gkUBo.js.map → StatusDot-DyEnhqJV.js.map} +1 -1
- package/frontend/dist/assets/{ToggleGroup-DZ39486g.js → ToggleGroup-CNkUGOeP.js} +2 -2
- package/frontend/dist/assets/{ToggleGroup-DZ39486g.js.map → ToggleGroup-CNkUGOeP.js.map} +1 -1
- package/frontend/dist/assets/{UsersPage-pdkVxTsL.js → UsersPage-DeGScomQ.js} +2 -2
- package/frontend/dist/assets/{UsersPage-pdkVxTsL.js.map → UsersPage-DeGScomQ.js.map} +1 -1
- package/frontend/dist/assets/{clipboard-BYlVdxdy.js → clipboard-PC3TyCTa.js} +2 -2
- package/frontend/dist/assets/{clipboard-BYlVdxdy.js.map → clipboard-PC3TyCTa.js.map} +1 -1
- package/frontend/dist/assets/{costRevision-D-WY0B73.js → costRevision-DkLRM8DI.js} +2 -2
- package/frontend/dist/assets/{costRevision-D-WY0B73.js.map → costRevision-DkLRM8DI.js.map} +1 -1
- package/frontend/dist/assets/index-8GliUQTA.js +3 -0
- package/frontend/dist/assets/{index-DKX_BExz.js.map → index-8GliUQTA.js.map} +1 -1
- package/frontend/dist/assets/{resourceService-CKAaXBkJ.js → resourceService-BN-FT_uq.js} +2 -2
- package/frontend/dist/assets/{resourceService-CKAaXBkJ.js.map → resourceService-BN-FT_uq.js.map} +1 -1
- package/frontend/dist/assets/{useCostData-DzjFGnw4.js → useCostData-DNk0WL-a.js} +2 -2
- package/frontend/dist/assets/{useCostData-DzjFGnw4.js.map → useCostData-DNk0WL-a.js.map} +1 -1
- package/frontend/dist/assets/{variableDetection-D75LR7nZ.js → variableDetection-DQg-vRNn.js} +2 -2
- package/frontend/dist/assets/{variableDetection-D75LR7nZ.js.map → variableDetection-DQg-vRNn.js.map} +1 -1
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
- package/frontend/dist/assets/SettingsPage-Bub-g0mD.js +0 -14
- package/frontend/dist/assets/SettingsPage-Bub-g0mD.js.map +0 -1
- package/frontend/dist/assets/index-DKX_BExz.js +0 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
|
-
import { getBearerKeyDao, getUserDao } from '../dao/index.js';
|
|
2
|
+
import { getBearerKeyDao, getGroupDao, getUserDao } from '../dao/index.js';
|
|
3
3
|
import { logger } from '../utils/logger.js';
|
|
4
4
|
import { maskBearerKey, toStoredToken } from '../utils/bearerKeyToken.js';
|
|
5
5
|
const VALID_ACCESS_TYPES = [
|
|
@@ -37,6 +37,42 @@ const validateSystemScope = (accessType, res) => {
|
|
|
37
37
|
}
|
|
38
38
|
return true;
|
|
39
39
|
};
|
|
40
|
+
const resolvePersonalScope = async (accessType, allowedGroups, res) => {
|
|
41
|
+
if (accessType !== 'all' && accessType !== 'groups') {
|
|
42
|
+
res
|
|
43
|
+
.status(400)
|
|
44
|
+
.json({ success: false, message: 'Personal keys support only all or groups scope' });
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const groupIds = new Set();
|
|
48
|
+
if (accessType === 'groups') {
|
|
49
|
+
if (!Array.isArray(allowedGroups) ||
|
|
50
|
+
allowedGroups.length === 0 ||
|
|
51
|
+
!allowedGroups.every((value) => typeof value === 'string' && value.trim().length > 0)) {
|
|
52
|
+
res.status(400).json({ success: false, message: 'Select at least one allowed group' });
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const dao = getGroupDao();
|
|
56
|
+
for (const reference of allowedGroups) {
|
|
57
|
+
const group = (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(reference)
|
|
58
|
+
? await dao.findById(reference)
|
|
59
|
+
: null) || (await dao.findByName(reference));
|
|
60
|
+
if (!group) {
|
|
61
|
+
res.status(400).json({ success: false, message: 'Allowed group not found' });
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Persist IDs so renaming or recreating a group cannot redirect the grant.
|
|
65
|
+
groupIds.add(group.id);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
accessType,
|
|
70
|
+
allowedGroups: [...groupIds],
|
|
71
|
+
allowedServers: [],
|
|
72
|
+
excludedGroups: [],
|
|
73
|
+
excludedServers: [],
|
|
74
|
+
};
|
|
75
|
+
};
|
|
40
76
|
export const getBearerKeys = async (req, res) => {
|
|
41
77
|
try {
|
|
42
78
|
const user = getAuthenticatedUser(req);
|
|
@@ -85,7 +121,12 @@ export const createBearerKey = async (req, res) => {
|
|
|
85
121
|
return;
|
|
86
122
|
}
|
|
87
123
|
}
|
|
88
|
-
const resolvedAccessType = kind === 'user' ? 'all' : accessType;
|
|
124
|
+
const resolvedAccessType = kind === 'user' && accessType === undefined ? 'all' : accessType;
|
|
125
|
+
const personalScope = kind === 'user'
|
|
126
|
+
? await resolvePersonalScope(resolvedAccessType, allowedGroups, res)
|
|
127
|
+
: undefined;
|
|
128
|
+
if (kind === 'user' && !personalScope)
|
|
129
|
+
return;
|
|
89
130
|
if (kind === 'system' && !validateSystemScope(resolvedAccessType, res)) {
|
|
90
131
|
return;
|
|
91
132
|
}
|
|
@@ -105,6 +146,7 @@ export const createBearerKey = async (req, res) => {
|
|
|
105
146
|
allowedServers: kind === 'system' && Array.isArray(allowedServers) ? allowedServers : [],
|
|
106
147
|
excludedGroups: resolvedExcludedGroups,
|
|
107
148
|
excludedServers: resolvedExcludedServers,
|
|
149
|
+
...personalScope,
|
|
108
150
|
});
|
|
109
151
|
const { tokenHash: _hash, ...created } = key;
|
|
110
152
|
res.status(201).json({
|
|
@@ -142,6 +184,12 @@ export const updateBearerKey = async (req, res) => {
|
|
|
142
184
|
updates.name = name;
|
|
143
185
|
if (enabled !== undefined)
|
|
144
186
|
updates.enabled = enabled;
|
|
187
|
+
if (existing.kind === 'user' && (accessType !== undefined || allowedGroups !== undefined)) {
|
|
188
|
+
const scope = await resolvePersonalScope(accessType === undefined ? existing.accessType : accessType, allowedGroups === undefined ? existing.allowedGroups : allowedGroups, res);
|
|
189
|
+
if (!scope)
|
|
190
|
+
return;
|
|
191
|
+
Object.assign(updates, scope);
|
|
192
|
+
}
|
|
145
193
|
if (existing.kind !== 'user' && user?.isAdmin) {
|
|
146
194
|
if (accessType !== undefined) {
|
|
147
195
|
if (!validateSystemScope(accessType, res))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bearerKeyController.js","sourceRoot":"","sources":["../../src/controllers/bearerKeyController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bearerKeyController.js","sourceRoot":"","sources":["../../src/controllers/bearerKeyController.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { withReplicaLock } from './replicaLock.js';
|
|
|
5
5
|
import { projectGroupToolName, assertValidGroupToolNames } from '../utils/groupToolNames.js';
|
|
6
6
|
import { isSafePassthroughHeader } from '../utils/passthroughHeaders.js';
|
|
7
7
|
import { observeToolCall, setMetricsServer } from './metricsService.js';
|
|
8
|
-
import { hasPersonalOAuth, PersonalOAuthContext, personalOAuthContexts, personalAuthorizationRequired, } from './personalOAuthService.js';
|
|
8
|
+
import { hasPersonalOAuth, PersonalOAuthContext, personalOAuthContexts, personalAuthorizationRequired, PersonalAuthorizationRequiredError, } from './personalOAuthService.js';
|
|
9
9
|
import { preserveListFreshness, combineListFreshness, remainingListTtl, } from '../utils/listFreshness.js';
|
|
10
10
|
import { expandServerConfig, getServerEnvironment } from './serverConfigEnvironment.js';
|
|
11
11
|
import { getMcpRequestGroup } from '../utils/mcpRequestGroup.js';
|
|
@@ -17,6 +17,7 @@ import { AsyncLocalStorage } from 'node:async_hooks';
|
|
|
17
17
|
import { createHash } from 'node:crypto';
|
|
18
18
|
import { canAccessGroupRoute } from '../utils/groupAccess.js';
|
|
19
19
|
import { canServeToolRequests } from '../utils/serverAvailability.js';
|
|
20
|
+
import { uriMatchesResourceTemplate } from '../utils/resourceTemplateMatch.js';
|
|
20
21
|
import { assertToolCallArgumentsSafe, isToolCallGuardEnabled, ToolCallBlockedError, } from '../middlewares/toolCallGuard.js';
|
|
21
22
|
import { applyHiddenParams, findToolConfig, removeHiddenArguments, } from '../utils/toolConfig.js';
|
|
22
23
|
import { prepareCapabilitySnapshot, recordCapabilitySnapshot, flushCapabilitySnapshot, } from './capabilitySnapshotService.js';
|
|
@@ -31,7 +32,7 @@ import treeKill from 'tree-kill';
|
|
|
31
32
|
import { isProcessTreeKillAvailable } from '../utils/processTree.js';
|
|
32
33
|
import { StdioClientTransport } from '@modelcontextprotocol/client/stdio';
|
|
33
34
|
import { SSEClientTransport, StreamableHTTPClientTransport, } from '../clients/mcpSdkClient.js';
|
|
34
|
-
import { Server } from '@modelcontextprotocol/server';
|
|
35
|
+
import { ProtocolError, Server } from '@modelcontextprotocol/server';
|
|
35
36
|
import { createFetchWithProxy, getProxyConfigFromEnv } from './proxy.js';
|
|
36
37
|
import { assertSafeUrl, createRedirectValidatingFetch } from '../utils/ssrf.js';
|
|
37
38
|
import { createAbortIsolatingFetch } from '../utils/abortIsolatingFetch.js';
|
|
@@ -862,6 +863,29 @@ const updateServerPromptsCache = (serverInfo, prompts) => {
|
|
|
862
863
|
const updateServerResourcesCache = (serverInfo, resources) => {
|
|
863
864
|
serverInfo.resources = preserveListFreshness(resources, resources.map(normalizeResourceForCache));
|
|
864
865
|
};
|
|
866
|
+
const updateServerResourceTemplatesCache = (serverInfo, resourceTemplates) => {
|
|
867
|
+
serverInfo.resourceTemplates = Array.isArray(resourceTemplates) ? resourceTemplates : [];
|
|
868
|
+
};
|
|
869
|
+
// Best effort: many servers do not implement resources/templates/list.
|
|
870
|
+
const refreshServerResourceTemplatesCache = async (getTarget, client, options, owner = client) => {
|
|
871
|
+
try {
|
|
872
|
+
if (!client.getServerCapabilities?.()?.resources)
|
|
873
|
+
return undefined;
|
|
874
|
+
const { resourceTemplates } = await client.listResourceTemplates({}, options || {});
|
|
875
|
+
const target = getTarget();
|
|
876
|
+
if (target && target.client === owner) {
|
|
877
|
+
updateServerResourceTemplatesCache(target, resourceTemplates);
|
|
878
|
+
}
|
|
879
|
+
return resourceTemplates;
|
|
880
|
+
}
|
|
881
|
+
catch (error) {
|
|
882
|
+
logger.debug('Failed to list resource templates for server', {
|
|
883
|
+
serverName: getTarget()?.name,
|
|
884
|
+
error: summarizeErrorForLogging(error),
|
|
885
|
+
});
|
|
886
|
+
return undefined;
|
|
887
|
+
}
|
|
888
|
+
};
|
|
865
889
|
// Modern HTTP has no list-changed push stream. Refresh only the lists needed
|
|
866
890
|
// by the current request; TTL and in-flight work are scoped to the live client.
|
|
867
891
|
const refreshModernServerLists = async (info, fields) => {
|
|
@@ -983,6 +1007,10 @@ const createUpstreamMcpClient = (name, getServerInfo, serverConfig, downstream)
|
|
|
983
1007
|
}
|
|
984
1008
|
updateServerResourcesCache(serverInfo, resources);
|
|
985
1009
|
broadcastResourceListChanged();
|
|
1010
|
+
// Templates have no list-changed notification of their own.
|
|
1011
|
+
if (serverInfo.client) {
|
|
1012
|
+
void refreshServerResourceTemplatesCache(getServerInfo, serverInfo.client, serverInfo.options);
|
|
1013
|
+
}
|
|
986
1014
|
},
|
|
987
1015
|
},
|
|
988
1016
|
},
|
|
@@ -2111,6 +2139,7 @@ export const initializeClientsFromSettings = async (isInit, serverName, options)
|
|
|
2111
2139
|
});
|
|
2112
2140
|
}
|
|
2113
2141
|
if (capabilities?.resources) {
|
|
2142
|
+
void refreshServerResourceTemplatesCache(liveServerInfo, client, initRequestOptions || requestOptions);
|
|
2114
2143
|
client
|
|
2115
2144
|
.listResources({}, initRequestOptions || requestOptions)
|
|
2116
2145
|
.then((resources) => {
|
|
@@ -2910,6 +2939,7 @@ const ensureServerReady = async (serverInfo) => {
|
|
|
2910
2939
|
}
|
|
2911
2940
|
}
|
|
2912
2941
|
if (capabilities?.resources) {
|
|
2942
|
+
void refreshServerResourceTemplatesCache(() => serverInfo, client, requestOptions);
|
|
2913
2943
|
try {
|
|
2914
2944
|
const resources = await client.listResources({}, requestOptions);
|
|
2915
2945
|
resourceCount = resources.resources.length;
|
|
@@ -3004,6 +3034,7 @@ export const resetServerOAuthConnection = (name) => {
|
|
|
3004
3034
|
serverInfo.tools = [];
|
|
3005
3035
|
serverInfo.prompts = [];
|
|
3006
3036
|
serverInfo.resources = [];
|
|
3037
|
+
serverInfo.resourceTemplates = undefined;
|
|
3007
3038
|
serverInfo.oauth = undefined;
|
|
3008
3039
|
broadcastToolListChanged();
|
|
3009
3040
|
broadcastPromptListChanged();
|
|
@@ -4220,8 +4251,12 @@ const handleListResourceTemplatesRequestImpl = async (_, extra) => {
|
|
|
4220
4251
|
if (!serverInfo.client?.listResourceTemplates) {
|
|
4221
4252
|
return [];
|
|
4222
4253
|
}
|
|
4223
|
-
const
|
|
4254
|
+
const client = serverInfo.client;
|
|
4255
|
+
const templates = await client.listResourceTemplates({}, serverInfo.options || {});
|
|
4224
4256
|
snapshots.push(templates.resourceTemplates);
|
|
4257
|
+
if (serverInfo.client === client) {
|
|
4258
|
+
updateServerResourceTemplatesCache(serverInfo, templates.resourceTemplates);
|
|
4259
|
+
}
|
|
4225
4260
|
const filteredTemplates = await filterResourceTemplatesByGroup(lookupGroup, serverInfo.name, templates.resourceTemplates || [], serverConfigsByName.get(serverInfo.name));
|
|
4226
4261
|
return appsRouteContext.enabled
|
|
4227
4262
|
? filteredTemplates
|
|
@@ -4234,6 +4269,60 @@ const handleListResourceTemplatesRequestImpl = async (_, extra) => {
|
|
|
4234
4269
|
}
|
|
4235
4270
|
return { resourceTemplates };
|
|
4236
4271
|
};
|
|
4272
|
+
const TEMPLATE_LIST_RETRY_MS = 60000;
|
|
4273
|
+
const templateListFailedAt = new WeakMap();
|
|
4274
|
+
const getReadableResourceTemplates = async (serverInfo, uri, lookupGroup, groupServerConfig) => {
|
|
4275
|
+
const serverConfig = await getServerDao().findById(serverInfo.name);
|
|
4276
|
+
const groupConfig = await getGroupServerConfig(lookupGroup, serverInfo.name, groupServerConfig);
|
|
4277
|
+
if (serverConfig?.resources?.[uri]?.enabled === false ||
|
|
4278
|
+
(Array.isArray(groupConfig?.resources) && groupConfig.resources.length === 0)) {
|
|
4279
|
+
return [];
|
|
4280
|
+
}
|
|
4281
|
+
const client = serverInfo.client;
|
|
4282
|
+
// Modern upstreams have no list-changed stream, so honor the templates' own TTL.
|
|
4283
|
+
const modern = client?.getProtocolEra?.() === 'modern';
|
|
4284
|
+
if ((serverInfo.resourceTemplates === undefined || modern) &&
|
|
4285
|
+
serverInfo.status === 'connected' &&
|
|
4286
|
+
client &&
|
|
4287
|
+
(templateListFailedAt.get(client) ?? -Infinity) < Date.now() - TEMPLATE_LIST_RETRY_MS) {
|
|
4288
|
+
const refresh = async () => {
|
|
4289
|
+
const listed = await refreshServerResourceTemplatesCache(() => serverInfo, client, serverInfo.options);
|
|
4290
|
+
if (listed === undefined) {
|
|
4291
|
+
templateListFailedAt.set(client, Date.now());
|
|
4292
|
+
}
|
|
4293
|
+
};
|
|
4294
|
+
await (modern ? revalidateUpstreamList(client, 'templates', refresh) : refresh());
|
|
4295
|
+
}
|
|
4296
|
+
const templates = serverInfo.resourceTemplates;
|
|
4297
|
+
if (!templates?.length) {
|
|
4298
|
+
return [];
|
|
4299
|
+
}
|
|
4300
|
+
const enabled = templates.filter((template) => serverConfig?.resources?.[template.uriTemplate]?.enabled !== false);
|
|
4301
|
+
if (!groupConfig ||
|
|
4302
|
+
!Array.isArray(groupConfig.resources) ||
|
|
4303
|
+
groupConfig.resources.includes(uri)) {
|
|
4304
|
+
return enabled;
|
|
4305
|
+
}
|
|
4306
|
+
// Listing shows templates under any selected prefix; reading needs the template itself selected.
|
|
4307
|
+
const selected = new Set(groupConfig.resources);
|
|
4308
|
+
return enabled.filter((template) => selected.has(template.uriTemplate));
|
|
4309
|
+
};
|
|
4310
|
+
const findResourceTemplateServer = async (uri, lookupGroup, filteredServerInfos, serverConfigsByName) => {
|
|
4311
|
+
for (const serverInfo of filteredServerInfos) {
|
|
4312
|
+
// Idle on-demand servers keep cached templates; the read wakes them.
|
|
4313
|
+
const idleOnDemand = serverInfo.config?.startOnDemand === true &&
|
|
4314
|
+
serverInfo.status === 'disconnected' &&
|
|
4315
|
+
!serverInfo.client;
|
|
4316
|
+
if (serverInfo.status !== 'connected' && !idleOnDemand) {
|
|
4317
|
+
continue;
|
|
4318
|
+
}
|
|
4319
|
+
const templates = await getReadableResourceTemplates(serverInfo, uri, lookupGroup, serverConfigsByName.get(serverInfo.name));
|
|
4320
|
+
if (templates.some((template) => uriMatchesResourceTemplate(template.uriTemplate, uri))) {
|
|
4321
|
+
return serverInfo;
|
|
4322
|
+
}
|
|
4323
|
+
}
|
|
4324
|
+
return undefined;
|
|
4325
|
+
};
|
|
4237
4326
|
const handleReadResourceRequestImpl = async (request, extra) => {
|
|
4238
4327
|
try {
|
|
4239
4328
|
const { uri } = request.params;
|
|
@@ -4349,7 +4438,32 @@ const handleReadResourceRequestImpl = async (request, extra) => {
|
|
|
4349
4438
|
}
|
|
4350
4439
|
}
|
|
4351
4440
|
else {
|
|
4352
|
-
|
|
4441
|
+
const templateServer = await findResourceTemplateServer(uri, lookupGroup, filteredServerInfos, serverConfigsByName);
|
|
4442
|
+
if (!templateServer) {
|
|
4443
|
+
throw new Error(`Resource not found: ${uri}`);
|
|
4444
|
+
}
|
|
4445
|
+
const releaseOnDemandRead = beginOnDemandToolCall(templateServer);
|
|
4446
|
+
try {
|
|
4447
|
+
if (templateServer.config?.startOnDemand) {
|
|
4448
|
+
if (!templateServer.client) {
|
|
4449
|
+
await ensureServerReady(templateServer);
|
|
4450
|
+
}
|
|
4451
|
+
templateServer.lastUsedAt = Date.now();
|
|
4452
|
+
}
|
|
4453
|
+
const client = templateServer.client;
|
|
4454
|
+
if (!client) {
|
|
4455
|
+
throw new Error(`Resource not found: ${uri}`);
|
|
4456
|
+
}
|
|
4457
|
+
result = readOptions
|
|
4458
|
+
? await client.readResource({ uri }, readOptions)
|
|
4459
|
+
: await client.readResource({ uri });
|
|
4460
|
+
}
|
|
4461
|
+
finally {
|
|
4462
|
+
releaseOnDemandRead?.();
|
|
4463
|
+
}
|
|
4464
|
+
if (!result || !Array.isArray(result.contents)) {
|
|
4465
|
+
throw new Error(`Failed to read resource: ${uri}`);
|
|
4466
|
+
}
|
|
4353
4467
|
}
|
|
4354
4468
|
return appsRouteContext.enabled
|
|
4355
4469
|
? result
|
|
@@ -4497,6 +4611,8 @@ const createPrincipalRuntime = async (name, resolvedConfig, scope, toolsOnly = f
|
|
|
4497
4611
|
info.prompts = preserveListFreshness(prompts, prompts.map((prompt) => normalizePromptForCache(name, prompt)));
|
|
4498
4612
|
}
|
|
4499
4613
|
if (capabilities?.resources) {
|
|
4614
|
+
// The raw client: the protected one holds the replica credential lock while listing.
|
|
4615
|
+
void refreshServerResourceTemplatesCache(() => info, client, resolvedConfig.options, info.client);
|
|
4500
4616
|
const { resources } = await client.listResources({}, resolvedConfig.options);
|
|
4501
4617
|
info.resources = preserveListFreshness(resources, resources.map(normalizeResourceForCache));
|
|
4502
4618
|
}
|
|
@@ -4755,7 +4871,17 @@ const withPrincipalServers = (handler, operation) => async (request, extra) => {
|
|
|
4755
4871
|
: { ...request, params: { ...request.params, name: `${prefix}${requestedName}` } };
|
|
4756
4872
|
}
|
|
4757
4873
|
}
|
|
4758
|
-
|
|
4874
|
+
const result = await principalServerScope.run([...scoped.values()], () => handler(resolvedRequest, extra));
|
|
4875
|
+
if (operation === 'tools-list' && result.tools?.length === 0) {
|
|
4876
|
+
const authorizationFailures = [...failures].filter(([, error]) => error instanceof PersonalAuthorizationRequiredError);
|
|
4877
|
+
if (authorizationFailures.length) {
|
|
4878
|
+
throw new ProtocolError(-32000, authorizationFailures.map(([, error]) => error.message).join(' '), {
|
|
4879
|
+
code: 'PERSONAL_AUTHORIZATION_REQUIRED',
|
|
4880
|
+
servers: authorizationFailures.map(([name]) => name),
|
|
4881
|
+
});
|
|
4882
|
+
}
|
|
4883
|
+
}
|
|
4884
|
+
return result;
|
|
4759
4885
|
}
|
|
4760
4886
|
finally {
|
|
4761
4887
|
for (const release of releases)
|