@1mcp/agent 0.30.3 → 0.31.0-beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -2
- package/build/commands/auth/index.d.ts +3 -0
- package/build/commands/auth/index.d.ts.map +1 -0
- package/build/commands/auth/index.js +47 -0
- package/build/commands/auth/index.js.map +1 -0
- package/build/commands/auth/login.d.ts +7 -0
- package/build/commands/auth/login.d.ts.map +1 -0
- package/build/commands/auth/login.js +83 -0
- package/build/commands/auth/login.js.map +1 -0
- package/build/commands/auth/logout.d.ts +7 -0
- package/build/commands/auth/logout.d.ts.map +1 -0
- package/build/commands/auth/logout.js +46 -0
- package/build/commands/auth/logout.js.map +1 -0
- package/build/commands/auth/status.d.ts +6 -0
- package/build/commands/auth/status.d.ts.map +1 -0
- package/build/commands/auth/status.js +54 -0
- package/build/commands/auth/status.js.map +1 -0
- package/build/commands/cliSetup/cliSetup.d.ts +12 -0
- package/build/commands/cliSetup/cliSetup.d.ts.map +1 -0
- package/build/commands/cliSetup/cliSetup.js +49 -0
- package/build/commands/cliSetup/cliSetup.js.map +1 -0
- package/build/commands/cliSetup/index.d.ts +3 -0
- package/build/commands/cliSetup/index.d.ts.map +1 -0
- package/build/commands/cliSetup/index.js +52 -0
- package/build/commands/cliSetup/index.js.map +1 -0
- package/build/commands/cliSetup/setupFiles.d.ts +24 -0
- package/build/commands/cliSetup/setupFiles.d.ts.map +1 -0
- package/build/commands/cliSetup/setupFiles.js +233 -0
- package/build/commands/cliSetup/setupFiles.js.map +1 -0
- package/build/commands/inspect/index.d.ts +3 -0
- package/build/commands/inspect/index.d.ts.map +1 -0
- package/build/commands/inspect/index.js +60 -0
- package/build/commands/inspect/index.js.map +1 -0
- package/build/commands/inspect/inspect.d.ts +36 -0
- package/build/commands/inspect/inspect.d.ts.map +1 -0
- package/build/commands/inspect/inspect.js +274 -0
- package/build/commands/inspect/inspect.js.map +1 -0
- package/build/commands/inspect/inspectUtils.d.ts +76 -0
- package/build/commands/inspect/inspectUtils.d.ts.map +1 -0
- package/build/commands/inspect/inspectUtils.js +303 -0
- package/build/commands/inspect/inspectUtils.js.map +1 -0
- package/build/commands/instructions/index.d.ts +3 -0
- package/build/commands/instructions/index.d.ts.map +1 -0
- package/build/commands/instructions/index.js +34 -0
- package/build/commands/instructions/index.js.map +1 -0
- package/build/commands/instructions/instructions.d.ts +10 -0
- package/build/commands/instructions/instructions.d.ts.map +1 -0
- package/build/commands/instructions/instructions.js +86 -0
- package/build/commands/instructions/instructions.js.map +1 -0
- package/build/commands/instructions/instructionsUtils.d.ts +24 -0
- package/build/commands/instructions/instructionsUtils.d.ts.map +1 -0
- package/build/commands/instructions/instructionsUtils.js +74 -0
- package/build/commands/instructions/instructionsUtils.js.map +1 -0
- package/build/commands/mcp/add.d.ts.map +1 -1
- package/build/commands/mcp/add.js +21 -2
- package/build/commands/mcp/add.js.map +1 -1
- package/build/commands/mcp/index.d.ts.map +1 -1
- package/build/commands/mcp/index.js +5 -4
- package/build/commands/mcp/index.js.map +1 -1
- package/build/commands/mcp/list.d.ts.map +1 -1
- package/build/commands/mcp/list.js +52 -8
- package/build/commands/mcp/list.js.map +1 -1
- package/build/commands/mcp/status.d.ts.map +1 -1
- package/build/commands/mcp/status.js +59 -26
- package/build/commands/mcp/status.js.map +1 -1
- package/build/commands/proxy/proxy.d.ts.map +1 -1
- package/build/commands/proxy/proxy.js +26 -30
- package/build/commands/proxy/proxy.js.map +1 -1
- package/build/commands/run/index.d.ts +3 -0
- package/build/commands/run/index.d.ts.map +1 -0
- package/build/commands/run/index.js +62 -0
- package/build/commands/run/index.js.map +1 -0
- package/build/commands/run/run.d.ts +35 -0
- package/build/commands/run/run.d.ts.map +1 -0
- package/build/commands/run/run.js +340 -0
- package/build/commands/run/run.js.map +1 -0
- package/build/commands/run/runUtils.d.ts +49 -0
- package/build/commands/run/runUtils.d.ts.map +1 -0
- package/build/commands/run/runUtils.js +195 -0
- package/build/commands/run/runUtils.js.map +1 -0
- package/build/commands/serve/index.d.ts +0 -22
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +0 -23
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serve.d.ts +23 -23
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +67 -51
- package/build/commands/serve/serve.js.map +1 -1
- package/build/commands/shared/apiClient.d.ts +27 -0
- package/build/commands/shared/apiClient.d.ts.map +1 -0
- package/build/commands/shared/apiClient.js +96 -0
- package/build/commands/shared/apiClient.js.map +1 -0
- package/build/commands/shared/authProfileStore.d.ts +16 -0
- package/build/commands/shared/authProfileStore.d.ts.map +1 -0
- package/build/commands/shared/authProfileStore.js +109 -0
- package/build/commands/shared/authProfileStore.js.map +1 -0
- package/build/commands/shared/baseConfigUtils.d.ts +15 -1
- package/build/commands/shared/baseConfigUtils.d.ts.map +1 -1
- package/build/commands/shared/baseConfigUtils.js +171 -40
- package/build/commands/shared/baseConfigUtils.js.map +1 -1
- package/build/commands/shared/cliContext.d.ts +13 -0
- package/build/commands/shared/cliContext.d.ts.map +1 -0
- package/build/commands/shared/cliContext.js +71 -0
- package/build/commands/shared/cliContext.js.map +1 -0
- package/build/commands/shared/commandRunner.d.ts +3 -0
- package/build/commands/shared/commandRunner.d.ts.map +1 -0
- package/build/commands/shared/commandRunner.js +13 -0
- package/build/commands/shared/commandRunner.js.map +1 -0
- package/build/commands/shared/serveClient.d.ts +68 -0
- package/build/commands/shared/serveClient.d.ts.map +1 -0
- package/build/commands/shared/serveClient.js +204 -0
- package/build/commands/shared/serveClient.js.map +1 -0
- package/build/commands/shared/serveTargetResolver.d.ts +21 -0
- package/build/commands/shared/serveTargetResolver.d.ts.map +1 -0
- package/build/commands/shared/serveTargetResolver.js +33 -0
- package/build/commands/shared/serveTargetResolver.js.map +1 -0
- package/build/config/configLoader.d.ts +28 -2
- package/build/config/configLoader.d.ts.map +1 -1
- package/build/config/configLoader.js +155 -28
- package/build/config/configLoader.js.map +1 -1
- package/build/config/configManager.d.ts +12 -1
- package/build/config/configManager.d.ts.map +1 -1
- package/build/config/configManager.js +74 -6
- package/build/config/configManager.js.map +1 -1
- package/build/config/mcpConfigManager.d.ts +18 -5
- package/build/config/mcpConfigManager.d.ts.map +1 -1
- package/build/config/mcpConfigManager.js +51 -44
- package/build/config/mcpConfigManager.js.map +1 -1
- package/build/config/mcpConfigMerge.d.ts +15 -0
- package/build/config/mcpConfigMerge.d.ts.map +1 -0
- package/build/config/mcpConfigMerge.js +87 -0
- package/build/config/mcpConfigMerge.js.map +1 -0
- package/build/config/projectConfigLoader.d.ts +9 -0
- package/build/config/projectConfigLoader.d.ts.map +1 -1
- package/build/config/projectConfigLoader.js +72 -20
- package/build/config/projectConfigLoader.js.map +1 -1
- package/build/config/templateProcessor.d.ts.map +1 -1
- package/build/config/templateProcessor.js +2 -2
- package/build/config/templateProcessor.js.map +1 -1
- package/build/constants/api.d.ts +6 -0
- package/build/constants/api.d.ts.map +1 -1
- package/build/constants/api.js +7 -0
- package/build/constants/api.js.map +1 -1
- package/build/constants/mcp.d.ts +2 -1
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +2 -1
- package/build/constants/mcp.js.map +1 -1
- package/build/constants/paths.d.ts +5 -0
- package/build/constants/paths.d.ts.map +1 -1
- package/build/constants/paths.js +9 -1
- package/build/constants/paths.js.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +7 -2
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.js +12 -12
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/metaToolProvider.d.ts +1 -1
- package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
- package/build/core/capabilities/metaToolProvider.js +22 -21
- package/build/core/capabilities/metaToolProvider.js.map +1 -1
- package/build/core/server/connectionResolver.d.ts +4 -0
- package/build/core/server/connectionResolver.d.ts.map +1 -1
- package/build/core/server/connectionResolver.js +18 -11
- package/build/core/server/connectionResolver.js.map +1 -1
- package/build/core/server/serverManager.d.ts +4 -0
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +6 -0
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.d.ts +7 -2
- package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +1 -0
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
- package/build/core/tools/internal/schemas/discovery.d.ts +3 -3
- package/build/core/tools/internal/schemas/index.d.ts +4 -4
- package/build/core/tools/internal/schemas/management.d.ts +1 -1
- package/build/core/types/transport.d.ts +146 -0
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +75 -0
- package/build/core/types/transport.js.map +1 -1
- package/build/globalOptions.d.ts +6 -0
- package/build/globalOptions.d.ts.map +1 -1
- package/build/globalOptions.js +5 -0
- package/build/globalOptions.js.map +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +24 -4
- package/build/index.js.map +1 -1
- package/build/transport/http/routes/apiRoutes.d.ts +10 -0
- package/build/transport/http/routes/apiRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/apiRoutes.js +18 -0
- package/build/transport/http/routes/apiRoutes.js.map +1 -0
- package/build/transport/http/routes/cliTokenRoute.d.ts +4 -0
- package/build/transport/http/routes/cliTokenRoute.d.ts.map +1 -0
- package/build/transport/http/routes/cliTokenRoute.js +35 -0
- package/build/transport/http/routes/cliTokenRoute.js.map +1 -0
- package/build/transport/http/routes/inspectHelpers.d.ts +68 -0
- package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -0
- package/build/transport/http/routes/inspectHelpers.js +141 -0
- package/build/transport/http/routes/inspectHelpers.js.map +1 -0
- package/build/transport/http/routes/inspectRoutes.d.ts +8 -0
- package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/inspectRoutes.js +348 -0
- package/build/transport/http/routes/inspectRoutes.js.map +1 -0
- package/build/transport/http/routes/toolRoutes.d.ts +5 -0
- package/build/transport/http/routes/toolRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/toolRoutes.js +204 -0
- package/build/transport/http/routes/toolRoutes.js.map +1 -0
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +16 -1
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/http/utils/contextExtractor.d.ts +5 -1
- package/build/transport/http/utils/contextExtractor.d.ts.map +1 -1
- package/build/transport/http/utils/contextExtractor.js +75 -12
- package/build/transport/http/utils/contextExtractor.js.map +1 -1
- package/build/transport/stdioProxyTransport.d.ts +2 -2
- package/build/transport/stdioProxyTransport.d.ts.map +1 -1
- package/build/transport/stdioProxyTransport.js +11 -75
- package/build/transport/stdioProxyTransport.js.map +1 -1
- package/build/types/context.d.ts +1 -0
- package/build/types/context.d.ts.map +1 -1
- package/build/types/context.js.map +1 -1
- package/build/utils/cli/normalizedArgv.d.ts +3 -0
- package/build/utils/cli/normalizedArgv.d.ts.map +1 -0
- package/build/utils/cli/normalizedArgv.js +9 -0
- package/build/utils/cli/normalizedArgv.js.map +1 -0
- package/build/utils/context/contextHash.d.ts +11 -0
- package/build/utils/context/contextHash.d.ts.map +1 -0
- package/build/utils/context/contextHash.js +37 -0
- package/build/utils/context/contextHash.js.map +1 -0
- package/build/utils/typeGuards.d.ts +2 -0
- package/build/utils/typeGuards.d.ts.map +1 -0
- package/build/utils/typeGuards.js +4 -0
- package/build/utils/typeGuards.js.map +1 -0
- package/build/utils/urlUtils.d.ts +2 -0
- package/build/utils/urlUtils.d.ts.map +1 -0
- package/build/utils/urlUtils.js +4 -0
- package/build/utils/urlUtils.js.map +1 -0
- package/build/utils/validation/urlDetection.d.ts +1 -0
- package/build/utils/validation/urlDetection.d.ts.map +1 -1
- package/build/utils/validation/urlDetection.js +10 -4
- package/build/utils/validation/urlDetection.js.map +1 -1
- package/package.json +6 -4
|
@@ -3,17 +3,32 @@ import path from 'path';
|
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import ConfigContext from '../../config/configContext.js';
|
|
5
5
|
import { ConfigManager } from '../../config/configManager.js';
|
|
6
|
-
import { getDefaultInstructionsTemplatePath } from '../../constants.js';
|
|
7
|
-
import { getConfigDir } from '../../constants.js';
|
|
6
|
+
import { getConfigDir, getDefaultInstructionsTemplatePath, HOST, PORT } from '../../constants.js';
|
|
8
7
|
import { FlagManager } from '../../core/flags/flagManager.js';
|
|
9
8
|
import { formatValidationError, validateTemplateContent } from '../../core/instructions/templateValidator.js';
|
|
10
9
|
import { AgentConfigManager } from '../../core/server/agentConfig.js';
|
|
11
10
|
import { cleanupPidFileOnExit, registerPidFileCleanup, writePidFile } from '../../core/server/pidFileManager.js';
|
|
12
11
|
import { TagQueryParser } from '../../domains/preset/parsers/tagQueryParser.js';
|
|
12
|
+
import { configureGlobalLogger } from '../../logger/configureGlobalLogger.js';
|
|
13
13
|
import logger, { debugIf } from '../../logger/logger.js';
|
|
14
14
|
import { setupServer } from '../../server.js';
|
|
15
15
|
import { ExpressServer } from '../../transport/http/server.js';
|
|
16
16
|
import { displayLogo } from '../../utils/ui/logo.js';
|
|
17
|
+
function parseCommaSeparatedList(value) {
|
|
18
|
+
return value ? value.split(',').map((entry) => entry.trim()) : [];
|
|
19
|
+
}
|
|
20
|
+
function parseInternalToolsList(value) {
|
|
21
|
+
if (!value) {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
return FlagManager.getInstance().parseToolsList(value);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
logger.error(`Failed to parse internal-tools list: ${error instanceof Error ? error.message : String(error)}`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
17
32
|
/**
|
|
18
33
|
* Load custom instructions template from file with validation
|
|
19
34
|
* @param templatePath Path to template file (CLI option or default)
|
|
@@ -181,29 +196,40 @@ export async function serveCommand(parsedArgv) {
|
|
|
181
196
|
// Initialize MCP config manager using resolved config path
|
|
182
197
|
const configFilePath = configContext.getResolvedConfigPath();
|
|
183
198
|
const mcpConfigManager = ConfigManager.getInstance(configFilePath);
|
|
199
|
+
// Load app-level config from config.toml (CLI args take precedence)
|
|
200
|
+
const appConfig = mcpConfigManager.getAppConfig();
|
|
184
201
|
// Get server count for logo display
|
|
185
202
|
const transportConfig = mcpConfigManager.getTransportConfig();
|
|
186
203
|
const serverCount = Object.keys(transportConfig).length;
|
|
187
204
|
// Handle backward compatibility for auth flag
|
|
188
|
-
const authEnabled = parsedArgv['enable-auth'] ?? parsedArgv['auth'] ?? false;
|
|
205
|
+
const authEnabled = parsedArgv['enable-auth'] ?? parsedArgv['auth'] ?? appConfig.auth?.enabled ?? false;
|
|
189
206
|
// Display logo with runtime information (skip for stdio or when logging to file)
|
|
190
|
-
|
|
207
|
+
const effectiveTransport = parsedArgv.transport ?? appConfig.transport ?? 'http';
|
|
208
|
+
const effectivePort = parsedArgv.port ?? appConfig.port ?? PORT;
|
|
209
|
+
const effectiveHost = parsedArgv.host ?? appConfig.host ?? HOST;
|
|
210
|
+
configureGlobalLogger({
|
|
211
|
+
...parsedArgv,
|
|
212
|
+
'log-level': parsedArgv['log-level'] ?? appConfig.logLevel,
|
|
213
|
+
'log-file': parsedArgv['log-file'] ?? appConfig.logFile,
|
|
214
|
+
}, effectiveTransport);
|
|
215
|
+
const effectiveLogFile = parsedArgv['log-file'] ?? appConfig.logFile;
|
|
216
|
+
if (effectiveTransport !== 'stdio' && !effectiveLogFile) {
|
|
191
217
|
displayLogo({
|
|
192
|
-
transport:
|
|
193
|
-
port:
|
|
194
|
-
host:
|
|
218
|
+
transport: effectiveTransport,
|
|
219
|
+
port: effectivePort,
|
|
220
|
+
host: effectiveHost,
|
|
195
221
|
serverCount,
|
|
196
222
|
authEnabled,
|
|
197
|
-
logLevel: parsedArgv['log-level'],
|
|
223
|
+
logLevel: parsedArgv['log-level'] ?? appConfig.logLevel,
|
|
198
224
|
configDir: getConfigDir(parsedArgv['config-dir']),
|
|
199
225
|
});
|
|
200
226
|
}
|
|
201
|
-
// Configure server settings from CLI arguments
|
|
227
|
+
// Configure server settings from CLI arguments (CLI args take precedence over appConfig)
|
|
202
228
|
const serverConfigManager = AgentConfigManager.getInstance();
|
|
203
|
-
const scopeValidationEnabled = parsedArgv['enable-scope-validation'] ??
|
|
204
|
-
const enhancedSecurityEnabled = parsedArgv['enable-enhanced-security'] ?? false;
|
|
229
|
+
const scopeValidationEnabled = parsedArgv['enable-scope-validation'] ?? appConfig.auth?.enableScopeValidation ?? true;
|
|
230
|
+
const enhancedSecurityEnabled = parsedArgv['enable-enhanced-security'] ?? appConfig.auth?.enableEnhancedSecurity ?? false;
|
|
205
231
|
// Handle trust proxy configuration (convert 'true'/'false' strings to boolean)
|
|
206
|
-
const trustProxyValue = parsedArgv['trust-proxy'];
|
|
232
|
+
const trustProxyValue = parsedArgv['trust-proxy'] ?? appConfig.auth?.trustProxy ?? 'loopback';
|
|
207
233
|
const trustProxy = trustProxyValue === 'true' ? true : trustProxyValue === 'false' ? false : trustProxyValue;
|
|
208
234
|
// Derive session storage path: explicit option > config-dir/sessions > global default
|
|
209
235
|
let sessionStoragePath = parsedArgv['session-storage-path'];
|
|
@@ -212,74 +238,64 @@ export async function serveCommand(parsedArgv) {
|
|
|
212
238
|
// store sessions within the config directory to maintain isolation
|
|
213
239
|
sessionStoragePath = path.join(parsedArgv['config-dir'], 'sessions');
|
|
214
240
|
}
|
|
241
|
+
const internalToolsList = parseInternalToolsList(parsedArgv['internal-tools']);
|
|
242
|
+
const directExpose = parseCommaSeparatedList(parsedArgv['lazy-direct-expose']);
|
|
243
|
+
const preloadPatterns = parseCommaSeparatedList(parsedArgv['lazy-preload']);
|
|
244
|
+
const preloadKeywords = parseCommaSeparatedList(parsedArgv['lazy-preload-keywords']);
|
|
245
|
+
const sessionTtlMinutes = parsedArgv['session-ttl'] ?? appConfig.auth?.sessionTtl ?? 1440;
|
|
215
246
|
serverConfigManager.updateConfig({
|
|
216
|
-
host:
|
|
217
|
-
port:
|
|
247
|
+
host: effectiveHost,
|
|
248
|
+
port: effectivePort,
|
|
218
249
|
externalUrl: parsedArgv['external-url'],
|
|
219
250
|
trustProxy,
|
|
220
251
|
auth: {
|
|
221
252
|
enabled: authEnabled,
|
|
222
|
-
sessionTtlMinutes
|
|
253
|
+
sessionTtlMinutes,
|
|
223
254
|
sessionStoragePath,
|
|
224
255
|
oauthCodeTtlMs: 60 * 1000, // 1 minute
|
|
225
|
-
oauthTokenTtlMs:
|
|
256
|
+
oauthTokenTtlMs: sessionTtlMinutes * 60 * 1000,
|
|
226
257
|
},
|
|
227
258
|
rateLimit: {
|
|
228
|
-
windowMs: parsedArgv['rate-limit-window'] * 60 * 1000,
|
|
229
|
-
max: parsedArgv['rate-limit-max'],
|
|
259
|
+
windowMs: (parsedArgv['rate-limit-window'] ?? appConfig.auth?.rateLimitWindow ?? 15) * 60 * 1000,
|
|
260
|
+
max: parsedArgv['rate-limit-max'] ?? appConfig.auth?.rateLimitMax ?? 100,
|
|
230
261
|
},
|
|
231
262
|
features: {
|
|
232
263
|
auth: authEnabled,
|
|
233
264
|
scopeValidation: scopeValidationEnabled,
|
|
234
265
|
enhancedSecurity: enhancedSecurityEnabled,
|
|
235
|
-
configReload: parsedArgv['enable-config-reload'],
|
|
266
|
+
configReload: parsedArgv['enable-config-reload'] ?? appConfig.configReload?.enabled ?? true,
|
|
236
267
|
envSubstitution: parsedArgv['enable-env-substitution'],
|
|
237
268
|
sessionPersistence: parsedArgv['enable-session-persistence'],
|
|
238
269
|
clientNotifications: parsedArgv['enable-client-notifications'],
|
|
239
270
|
jsonRpcErrorLogging: parsedArgv['enable-jsonrpc-error-logging'],
|
|
240
271
|
// Internal tool configuration from CLI flags
|
|
241
272
|
internalTools: parsedArgv['enable-internal-tools'],
|
|
242
|
-
internalToolsList
|
|
243
|
-
? (() => {
|
|
244
|
-
try {
|
|
245
|
-
const flagManager = FlagManager.getInstance();
|
|
246
|
-
return flagManager.parseToolsList(parsedArgv['internal-tools']);
|
|
247
|
-
}
|
|
248
|
-
catch (error) {
|
|
249
|
-
logger.error(`Failed to parse internal-tools list: ${error instanceof Error ? error.message : String(error)}`);
|
|
250
|
-
process.exit(1);
|
|
251
|
-
}
|
|
252
|
-
})()
|
|
253
|
-
: [],
|
|
273
|
+
internalToolsList,
|
|
254
274
|
},
|
|
255
275
|
health: {
|
|
256
276
|
detailLevel: parsedArgv['health-info-level'],
|
|
257
277
|
},
|
|
258
278
|
asyncLoading: {
|
|
259
|
-
enabled: parsedArgv['enable-async-loading'],
|
|
279
|
+
enabled: parsedArgv['enable-async-loading'] ?? appConfig.asyncLoading?.enabled ?? false,
|
|
260
280
|
notifyOnServerReady: parsedArgv['async-notify-on-ready'],
|
|
261
|
-
waitForMinimumServers: parsedArgv['async-min-servers'],
|
|
262
|
-
initialLoadTimeoutMs: parsedArgv['async-timeout'],
|
|
263
|
-
batchNotifications: parsedArgv['async-batch-notifications'],
|
|
264
|
-
batchDelayMs: parsedArgv['async-batch-delay'],
|
|
281
|
+
waitForMinimumServers: parsedArgv['async-min-servers'] ?? appConfig.asyncLoading?.minServers ?? 1,
|
|
282
|
+
initialLoadTimeoutMs: parsedArgv['async-timeout'] ?? appConfig.asyncLoading?.timeout ?? 30000,
|
|
283
|
+
batchNotifications: parsedArgv['async-batch-notifications'] ?? appConfig.asyncLoading?.batchNotifications ?? true,
|
|
284
|
+
batchDelayMs: parsedArgv['async-batch-delay'] ?? appConfig.asyncLoading?.batchDelay ?? 100,
|
|
265
285
|
},
|
|
266
286
|
lazyLoading: {
|
|
267
|
-
enabled: parsedArgv['enable-lazy-loading'],
|
|
268
|
-
inlineCatalog: parsedArgv['lazy-inline-catalog'],
|
|
287
|
+
enabled: parsedArgv['enable-lazy-loading'] ?? appConfig.lazyLoading?.enabled ?? false,
|
|
288
|
+
inlineCatalog: parsedArgv['lazy-inline-catalog'] ?? appConfig.lazyLoading?.inlineCatalog ?? false,
|
|
269
289
|
catalogFormat: (parsedArgv['lazy-catalog-format'] || 'grouped'),
|
|
270
|
-
directExpose
|
|
271
|
-
? parsedArgv['lazy-direct-expose'].split(',').map((s) => s.trim())
|
|
272
|
-
: [],
|
|
290
|
+
directExpose,
|
|
273
291
|
cache: {
|
|
274
|
-
maxEntries: parsedArgv['lazy-cache-max-entries'],
|
|
292
|
+
maxEntries: parsedArgv['lazy-cache-max-entries'] ?? appConfig.lazyLoading?.cacheMaxEntries ?? 1000,
|
|
275
293
|
strategy: 'lru',
|
|
276
294
|
ttlMs: parsedArgv['lazy-cache-ttl'],
|
|
277
295
|
},
|
|
278
296
|
preload: {
|
|
279
|
-
patterns:
|
|
280
|
-
keywords:
|
|
281
|
-
? parsedArgv['lazy-preload-keywords'].split(',').map((s) => s.trim())
|
|
282
|
-
: [],
|
|
297
|
+
patterns: preloadPatterns,
|
|
298
|
+
keywords: preloadKeywords,
|
|
283
299
|
},
|
|
284
300
|
fallback: {
|
|
285
301
|
onError: (parsedArgv['lazy-fallback-on-error'] || 'skip'),
|
|
@@ -287,7 +303,7 @@ export async function serveCommand(parsedArgv) {
|
|
|
287
303
|
},
|
|
288
304
|
},
|
|
289
305
|
configReload: {
|
|
290
|
-
debounceMs: parsedArgv['config-reload-debounce'],
|
|
306
|
+
debounceMs: parsedArgv['config-reload-debounce'] ?? appConfig.configReload?.debounce ?? 500,
|
|
291
307
|
},
|
|
292
308
|
sessionPersistence: {
|
|
293
309
|
persistRequests: parsedArgv['session-persist-requests'],
|
|
@@ -304,7 +320,7 @@ export async function serveCommand(parsedArgv) {
|
|
|
304
320
|
// Load custom instructions template if provided (applies to all transport types)
|
|
305
321
|
const customTemplate = loadInstructionsTemplate(parsedArgv['instructions-template'], parsedArgv['config-dir']);
|
|
306
322
|
let expressServer;
|
|
307
|
-
switch (
|
|
323
|
+
switch (effectiveTransport) {
|
|
308
324
|
case 'stdio': {
|
|
309
325
|
// DEPRECATION WARNING
|
|
310
326
|
logger.warn('⚠️ DEPRECATION WARNING: `serve --transport stdio` is deprecated');
|
|
@@ -434,8 +450,8 @@ export async function serveCommand(parsedArgv) {
|
|
|
434
450
|
writePidFile(configDir, {
|
|
435
451
|
pid: process.pid,
|
|
436
452
|
url: `${serverUrl}/mcp`,
|
|
437
|
-
port:
|
|
438
|
-
host:
|
|
453
|
+
port: effectivePort,
|
|
454
|
+
host: effectiveHost,
|
|
439
455
|
transport: 'http',
|
|
440
456
|
startedAt: new Date().toISOString(),
|
|
441
457
|
configDir,
|
|
@@ -445,7 +461,7 @@ export async function serveCommand(parsedArgv) {
|
|
|
445
461
|
break;
|
|
446
462
|
}
|
|
447
463
|
default:
|
|
448
|
-
logger.error(`Invalid transport: ${
|
|
464
|
+
logger.error(`Invalid transport: ${effectiveTransport}`);
|
|
449
465
|
process.exit(1);
|
|
450
466
|
}
|
|
451
467
|
// Set up graceful shutdown handling
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/serve/serve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/serve/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ContextData } from '../../types/context.js';
|
|
2
|
+
export interface ApiClientOptions {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
bearerToken?: string;
|
|
5
|
+
timeout?: number;
|
|
6
|
+
sessionId?: string;
|
|
7
|
+
context?: ContextData;
|
|
8
|
+
}
|
|
9
|
+
export interface ApiResponse<T> {
|
|
10
|
+
ok: boolean;
|
|
11
|
+
status: number;
|
|
12
|
+
data?: T;
|
|
13
|
+
error?: string;
|
|
14
|
+
sessionId?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class ApiClient {
|
|
17
|
+
private readonly baseUrl;
|
|
18
|
+
private readonly bearerToken?;
|
|
19
|
+
private readonly timeout;
|
|
20
|
+
private readonly sessionId?;
|
|
21
|
+
private readonly context?;
|
|
22
|
+
constructor(options: ApiClientOptions);
|
|
23
|
+
get<T>(path: string, query?: Record<string, string>): Promise<ApiResponse<T>>;
|
|
24
|
+
post<T>(path: string, body: unknown): Promise<ApiResponse<T>>;
|
|
25
|
+
private request;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=apiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiClient.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/apiClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;gBAE3B,OAAO,EAAE,gBAAgB;IAQ/B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAe7E,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAKrD,OAAO;CAkEtB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { MCP_SERVER_VERSION } from '../../constants.js';
|
|
2
|
+
import { CONTEXT_HEADERS, encodeContextValue } from '../../transport/http/utils/contextExtractor.js';
|
|
3
|
+
export class ApiClient {
|
|
4
|
+
baseUrl;
|
|
5
|
+
bearerToken;
|
|
6
|
+
timeout;
|
|
7
|
+
sessionId;
|
|
8
|
+
context;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.baseUrl = options.baseUrl.replace(/\/$/, '');
|
|
11
|
+
this.bearerToken = options.bearerToken;
|
|
12
|
+
this.timeout = options.timeout ?? 10_000;
|
|
13
|
+
this.sessionId = options.sessionId;
|
|
14
|
+
this.context = options.context;
|
|
15
|
+
}
|
|
16
|
+
async get(path, query) {
|
|
17
|
+
const url = new URL(`${this.baseUrl}${path}`);
|
|
18
|
+
if (query) {
|
|
19
|
+
for (const [key, value] of Object.entries(query)) {
|
|
20
|
+
if (value !== undefined && value !== '') {
|
|
21
|
+
url.searchParams.set(key, value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (this.context) {
|
|
26
|
+
url.searchParams.set('context', encodeContextValue(this.context));
|
|
27
|
+
}
|
|
28
|
+
return this.request(url.toString(), 'GET');
|
|
29
|
+
}
|
|
30
|
+
async post(path, body) {
|
|
31
|
+
const url = `${this.baseUrl}${path}`;
|
|
32
|
+
return this.request(url, 'POST', body);
|
|
33
|
+
}
|
|
34
|
+
async request(url, method, body) {
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
const timer = setTimeout(() => controller.abort(), this.timeout);
|
|
37
|
+
const headers = {
|
|
38
|
+
'User-Agent': `1MCP/${MCP_SERVER_VERSION}`,
|
|
39
|
+
Accept: 'application/json',
|
|
40
|
+
};
|
|
41
|
+
if (this.bearerToken) {
|
|
42
|
+
headers.Authorization = `Bearer ${this.bearerToken}`;
|
|
43
|
+
}
|
|
44
|
+
if (this.sessionId) {
|
|
45
|
+
headers[CONTEXT_HEADERS.SESSION_ID] = this.sessionId;
|
|
46
|
+
}
|
|
47
|
+
if (body !== undefined) {
|
|
48
|
+
headers['Content-Type'] = 'application/json';
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const response = await fetch(url, {
|
|
52
|
+
method,
|
|
53
|
+
headers,
|
|
54
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
55
|
+
signal: controller.signal,
|
|
56
|
+
});
|
|
57
|
+
clearTimeout(timer);
|
|
58
|
+
const sessionId = response.headers.get('mcp-session-id') ?? undefined;
|
|
59
|
+
let data;
|
|
60
|
+
let error;
|
|
61
|
+
const contentType = response.headers.get('content-type') ?? '';
|
|
62
|
+
if (contentType.includes('application/json')) {
|
|
63
|
+
try {
|
|
64
|
+
const json = (await response.json());
|
|
65
|
+
if (response.ok) {
|
|
66
|
+
data = json;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const errObj = json;
|
|
70
|
+
error =
|
|
71
|
+
typeof errObj.error === 'string'
|
|
72
|
+
? errObj.error
|
|
73
|
+
: typeof errObj.message === 'string'
|
|
74
|
+
? errObj.message
|
|
75
|
+
: `HTTP ${response.status}`;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
error = `HTTP ${response.status}: invalid JSON response`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (!response.ok) {
|
|
83
|
+
error = `HTTP ${response.status}`;
|
|
84
|
+
}
|
|
85
|
+
return { ok: response.ok, status: response.status, data, error, sessionId };
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
clearTimeout(timer);
|
|
89
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
90
|
+
return { ok: false, status: 0, error: `Request timed out after ${this.timeout}ms` };
|
|
91
|
+
}
|
|
92
|
+
return { ok: false, status: 0, error: err instanceof Error ? err.message : String(err) };
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=apiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/commands/shared/apiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface AuthProfile {
|
|
2
|
+
serverUrl: string;
|
|
3
|
+
token: string;
|
|
4
|
+
savedAt: number;
|
|
5
|
+
label?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Normalize a server URL for consistent keying.
|
|
9
|
+
* Strips /mcp suffix, trailing slash, query params, and lowercases the host.
|
|
10
|
+
*/
|
|
11
|
+
export declare function normalizeServerUrl(url: string): string;
|
|
12
|
+
export declare function saveAuthProfile(configDir: string | undefined, profile: AuthProfile): Promise<void>;
|
|
13
|
+
export declare function loadAuthProfile(configDir: string | undefined, serverUrl: string): Promise<AuthProfile | null>;
|
|
14
|
+
export declare function deleteAuthProfile(configDir: string | undefined, serverUrl: string): Promise<boolean>;
|
|
15
|
+
export declare function listAuthProfiles(configDir?: string): Promise<AuthProfile[]>;
|
|
16
|
+
//# sourceMappingURL=authProfileStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authProfileStore.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/authProfileStore.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBtD;AAeD,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxG;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAYnH;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS1G;AAED,wBAAsB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAqBjF"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { access, mkdir, readdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { getConfigDir } from '../../constants.js';
|
|
5
|
+
const AUTH_PROFILES_DIR = 'auth-profiles';
|
|
6
|
+
/**
|
|
7
|
+
* Normalize a server URL for consistent keying.
|
|
8
|
+
* Strips /mcp suffix, trailing slash, query params, and lowercases the host.
|
|
9
|
+
*/
|
|
10
|
+
export function normalizeServerUrl(url) {
|
|
11
|
+
try {
|
|
12
|
+
const parsed = new URL(url);
|
|
13
|
+
parsed.search = '';
|
|
14
|
+
parsed.hash = '';
|
|
15
|
+
parsed.hostname = parsed.hostname.toLowerCase();
|
|
16
|
+
let normalized = parsed.toString().replace(/\/$/, '');
|
|
17
|
+
// Strip /mcp suffix
|
|
18
|
+
if (normalized.endsWith('/mcp')) {
|
|
19
|
+
normalized = normalized.slice(0, -4);
|
|
20
|
+
}
|
|
21
|
+
return normalized;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return url
|
|
25
|
+
.toLowerCase()
|
|
26
|
+
.replace(/\/$/, '')
|
|
27
|
+
.replace(/\/mcp$/, '');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function profileKey(serverUrl) {
|
|
31
|
+
const normalized = normalizeServerUrl(serverUrl);
|
|
32
|
+
return createHash('sha256').update(normalized).digest('hex');
|
|
33
|
+
}
|
|
34
|
+
function profilesDir(configDir) {
|
|
35
|
+
return path.join(getConfigDir(configDir), AUTH_PROFILES_DIR);
|
|
36
|
+
}
|
|
37
|
+
function profilePath(configDir, serverUrl) {
|
|
38
|
+
return path.join(profilesDir(configDir), `${profileKey(serverUrl)}.json`);
|
|
39
|
+
}
|
|
40
|
+
export async function saveAuthProfile(configDir, profile) {
|
|
41
|
+
const dir = profilesDir(configDir);
|
|
42
|
+
await mkdir(dir, { recursive: true });
|
|
43
|
+
const filePath = profilePath(configDir, profile.serverUrl);
|
|
44
|
+
const tempPath = `${filePath}.tmp.${process.pid}`;
|
|
45
|
+
const data = {
|
|
46
|
+
...profile,
|
|
47
|
+
serverUrl: normalizeServerUrl(profile.serverUrl),
|
|
48
|
+
};
|
|
49
|
+
await writeFile(tempPath, JSON.stringify(data), 'utf8');
|
|
50
|
+
await rename(tempPath, filePath);
|
|
51
|
+
}
|
|
52
|
+
export async function loadAuthProfile(configDir, serverUrl) {
|
|
53
|
+
try {
|
|
54
|
+
const filePath = profilePath(configDir, serverUrl);
|
|
55
|
+
const raw = await readFile(filePath, 'utf8');
|
|
56
|
+
const parsed = JSON.parse(raw);
|
|
57
|
+
if (!isAuthProfile(parsed)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return parsed;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export async function deleteAuthProfile(configDir, serverUrl) {
|
|
67
|
+
try {
|
|
68
|
+
const filePath = profilePath(configDir, serverUrl);
|
|
69
|
+
await access(filePath);
|
|
70
|
+
await rm(filePath, { force: true });
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export async function listAuthProfiles(configDir) {
|
|
78
|
+
const dir = profilesDir(configDir);
|
|
79
|
+
try {
|
|
80
|
+
const files = await readdir(dir);
|
|
81
|
+
const results = await Promise.all(files
|
|
82
|
+
.filter((file) => file.endsWith('.json'))
|
|
83
|
+
.map(async (file) => {
|
|
84
|
+
try {
|
|
85
|
+
const raw = await readFile(path.join(dir, file), 'utf8');
|
|
86
|
+
const parsed = JSON.parse(raw);
|
|
87
|
+
return isAuthProfile(parsed) ? parsed : null;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}));
|
|
93
|
+
return results.filter((p) => p !== null);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function isAuthProfile(value) {
|
|
100
|
+
return (typeof value === 'object' &&
|
|
101
|
+
value !== null &&
|
|
102
|
+
'serverUrl' in value &&
|
|
103
|
+
typeof value.serverUrl === 'string' &&
|
|
104
|
+
'token' in value &&
|
|
105
|
+
typeof value.token === 'string' &&
|
|
106
|
+
'savedAt' in value &&
|
|
107
|
+
typeof value.savedAt === 'number');
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=authProfileStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authProfileStore.js","sourceRoot":"","sources":["../../../src/commands/shared/authProfileStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MCPServerParams } from '../../core/types/index.js';
|
|
1
|
+
import { GlobalTransportConfig, MCPServerParams } from '../../core/types/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Configuration file utilities for server management commands
|
|
4
4
|
*/
|
|
@@ -8,6 +8,7 @@ import { MCPServerParams } from '../../core/types/index.js';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function initializeConfigContext(configPath?: string, configDir?: string): void;
|
|
10
10
|
export interface ServerConfig {
|
|
11
|
+
serverDefaults?: GlobalTransportConfig;
|
|
11
12
|
mcpServers: Record<string, MCPServerParams>;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
@@ -28,6 +29,14 @@ export declare function serverExists(serverName: string): boolean;
|
|
|
28
29
|
* Get a specific server configuration
|
|
29
30
|
*/
|
|
30
31
|
export declare function getServer(serverName: string): MCPServerParams | null;
|
|
32
|
+
/**
|
|
33
|
+
* Get global MCP configuration from file.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getGlobalConfig(): GlobalTransportConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Get effective merged configuration for a specific server.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getEffectiveServerConfig(serverName: string): MCPServerParams | null;
|
|
31
40
|
/**
|
|
32
41
|
* Add or update a server in the configuration
|
|
33
42
|
*/
|
|
@@ -40,6 +49,10 @@ export declare function removeServer(serverName: string): boolean;
|
|
|
40
49
|
* Get all servers in the configuration
|
|
41
50
|
*/
|
|
42
51
|
export declare function getAllServers(): Record<string, MCPServerParams>;
|
|
52
|
+
/**
|
|
53
|
+
* Get all effective server configurations after applying global inheritance.
|
|
54
|
+
*/
|
|
55
|
+
export declare function getAllEffectiveServers(): Record<string, MCPServerParams>;
|
|
43
56
|
/**
|
|
44
57
|
* Parse environment variables from key=value format
|
|
45
58
|
*/
|
|
@@ -68,4 +81,5 @@ export declare function validateServerConfig(serverConfig: MCPServerParams): voi
|
|
|
68
81
|
* Reload MCP config manager after configuration changes
|
|
69
82
|
*/
|
|
70
83
|
export declare function reloadMcpConfig(): void;
|
|
84
|
+
export declare function getInheritedKeys(rawConfig: MCPServerParams, effectiveConfig: MCPServerParams, globalConfig: GlobalTransportConfig): string[];
|
|
71
85
|
//# sourceMappingURL=baseConfigUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseConfigUtils.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/baseConfigUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseConfigUtils.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/baseConfigUtils.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIlF;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAgBrF;AAwBD,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AA0CD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAE5D;AASD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAmBrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAWpE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,qBAAqB,CAWvD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAkBnF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,GAAG,IAAI,CAiBjF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAexD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAW/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAUxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwB5E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CASvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB9D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAcrC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,eAAe,GAAG,IAAI,CAmDxE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAYtC;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,eAAe,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,qBAAqB,GAClC,MAAM,EAAE,CAsDV"}
|