mcp4openapi 0.2.4 → 0.2.6
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 +14 -1
- package/dist/scripts/validate-profile.js +3 -1
- package/dist/scripts/validate-profile.js.map +1 -1
- package/dist/src/composite-executor.d.ts.map +1 -1
- package/dist/src/composite-executor.js +1 -3
- package/dist/src/composite-executor.js.map +1 -1
- package/dist/src/errors.js +0 -2
- package/dist/src/errors.js.map +1 -1
- package/dist/src/generated-schemas.d.ts +235 -30
- package/dist/src/generated-schemas.d.ts.map +1 -1
- package/dist/src/generated-schemas.js +16 -2
- package/dist/src/generated-schemas.js.map +1 -1
- package/dist/src/http-client-factory.js +3 -2
- package/dist/src/http-client-factory.js.map +1 -1
- package/dist/src/http-transport.d.ts +9 -2
- package/dist/src/http-transport.d.ts.map +1 -1
- package/dist/src/http-transport.js +133 -36
- package/dist/src/http-transport.js.map +1 -1
- package/dist/src/interceptors.d.ts +34 -0
- package/dist/src/interceptors.d.ts.map +1 -1
- package/dist/src/interceptors.js +90 -6
- package/dist/src/interceptors.js.map +1 -1
- package/dist/src/logger.js +0 -4
- package/dist/src/logger.js.map +1 -1
- package/dist/src/mcp-server.d.ts +7 -0
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +86 -20
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/metrics.js +0 -17
- package/dist/src/metrics.js.map +1 -1
- package/dist/src/oauth-provider.d.ts +29 -0
- package/dist/src/oauth-provider.d.ts.map +1 -1
- package/dist/src/oauth-provider.js +177 -22
- package/dist/src/oauth-provider.js.map +1 -1
- package/dist/src/openapi-parser.d.ts.map +1 -1
- package/dist/src/openapi-parser.js +4 -3
- package/dist/src/openapi-parser.js.map +1 -1
- package/dist/src/profile-loader.d.ts.map +1 -1
- package/dist/src/profile-loader.js +8 -0
- package/dist/src/profile-loader.js.map +1 -1
- package/dist/src/proxy-executor.d.ts +71 -0
- package/dist/src/proxy-executor.d.ts.map +1 -0
- package/dist/src/proxy-executor.js +240 -0
- package/dist/src/proxy-executor.js.map +1 -0
- package/dist/src/testing/fixtures.d.ts +229 -2
- package/dist/src/testing/fixtures.d.ts.map +1 -1
- package/dist/src/testing/fixtures.js +175 -1
- package/dist/src/testing/fixtures.js.map +1 -1
- package/dist/src/testing/mock-gitlab-server.d.ts.map +1 -1
- package/dist/src/testing/mock-gitlab-server.js +356 -1
- package/dist/src/testing/mock-gitlab-server.js.map +1 -1
- package/dist/src/testing/mock-youtrack-server.d.ts +11 -0
- package/dist/src/testing/mock-youtrack-server.d.ts.map +1 -0
- package/dist/src/testing/mock-youtrack-server.js +138 -0
- package/dist/src/testing/mock-youtrack-server.js.map +1 -0
- package/dist/src/testing/test-http-utils.js +1 -3
- package/dist/src/testing/test-http-utils.js.map +1 -1
- package/dist/src/testing/test-types.d.ts +157 -2
- package/dist/src/testing/test-types.d.ts.map +1 -1
- package/dist/src/tool-generator.d.ts +23 -0
- package/dist/src/tool-generator.d.ts.map +1 -1
- package/dist/src/tool-generator.js +55 -5
- package/dist/src/tool-generator.js.map +1 -1
- package/dist/src/types/profile.d.ts +48 -3
- package/dist/src/types/profile.d.ts.map +1 -1
- package/package.json +1 -1
- package/profile-schema.json +90 -6
package/dist/src/mcp-server.js
CHANGED
|
@@ -11,6 +11,7 @@ import { OpenAPIParser } from './openapi-parser.js';
|
|
|
11
11
|
import { ProfileLoader } from './profile-loader.js';
|
|
12
12
|
import { ToolGenerator } from './tool-generator.js';
|
|
13
13
|
import { CompositeExecutor } from './composite-executor.js';
|
|
14
|
+
import { ProxyDownloadExecutor } from './proxy-executor.js';
|
|
14
15
|
import { ConfigurationError, OperationNotFoundError, ValidationError, AuthenticationError, AuthorizationError, RateLimitError, NetworkError, generateCorrelationId } from './errors.js';
|
|
15
16
|
import { TIMEOUTS, OAUTH_RATE_LIMIT } from './constants.js';
|
|
16
17
|
import { HttpClientFactory } from './http-client-factory.js';
|
|
@@ -20,15 +21,6 @@ import { isInitializeRequest, isToolCallRequest } from './jsonrpc-validator.js';
|
|
|
20
21
|
import { generateNameWarnings } from './naming-warnings.js';
|
|
21
22
|
import { NamingStrategy } from './naming.js';
|
|
22
23
|
export class MCPServer {
|
|
23
|
-
server;
|
|
24
|
-
parser;
|
|
25
|
-
profile;
|
|
26
|
-
toolGenerator;
|
|
27
|
-
httpClientFactory = new HttpClientFactory();
|
|
28
|
-
compositeExecutor;
|
|
29
|
-
schemaValidator;
|
|
30
|
-
logger;
|
|
31
|
-
httpTransport = null;
|
|
32
24
|
/**
|
|
33
25
|
* Filter response object to include only specified fields
|
|
34
26
|
* Supports nested objects but keeps first level of arrays
|
|
@@ -42,8 +34,10 @@ export class MCPServer {
|
|
|
42
34
|
}
|
|
43
35
|
const filtered = {};
|
|
44
36
|
for (const field of fields) {
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
// Handle YouTrack-style fields: "author(id,login)" -> "author"
|
|
38
|
+
const baseFieldName = field.split('(')[0];
|
|
39
|
+
if (baseFieldName in data) {
|
|
40
|
+
filtered[baseFieldName] = data[baseFieldName];
|
|
47
41
|
}
|
|
48
42
|
}
|
|
49
43
|
return filtered;
|
|
@@ -94,6 +88,8 @@ export class MCPServer {
|
|
|
94
88
|
return `Internal error (correlation ID: ${correlationId})`;
|
|
95
89
|
}
|
|
96
90
|
constructor(logger) {
|
|
91
|
+
this.httpClientFactory = new HttpClientFactory();
|
|
92
|
+
this.httpTransport = null;
|
|
97
93
|
this.logger = logger || new ConsoleLogger();
|
|
98
94
|
this.schemaValidator = new SchemaValidator();
|
|
99
95
|
this.server = new Server({
|
|
@@ -440,8 +436,9 @@ export class MCPServer {
|
|
|
440
436
|
resourceType: args['resource_type'],
|
|
441
437
|
sessionId
|
|
442
438
|
});
|
|
443
|
-
|
|
444
|
-
|
|
439
|
+
// Get operation definition (can be string or ProxyDownloadOperation)
|
|
440
|
+
const operationDef = this.toolGenerator.getOperationDefinition(toolDef, args);
|
|
441
|
+
if (!operationDef) {
|
|
445
442
|
throw new ValidationError(`Could not map tool action to operation`, {
|
|
446
443
|
toolName: toolDef.name,
|
|
447
444
|
action: args['action'],
|
|
@@ -449,6 +446,12 @@ export class MCPServer {
|
|
|
449
446
|
availableOperations: Object.keys(toolDef.operations || {})
|
|
450
447
|
});
|
|
451
448
|
}
|
|
449
|
+
// Check if this is a proxy download operation
|
|
450
|
+
if (typeof operationDef === 'object' && operationDef.type === 'proxy_download') {
|
|
451
|
+
return this.executeProxyDownload(operationDef, args, sessionId);
|
|
452
|
+
}
|
|
453
|
+
// Regular string operation
|
|
454
|
+
const operationId = operationDef;
|
|
452
455
|
const operation = this.parser.getOperation(operationId);
|
|
453
456
|
if (!operation) {
|
|
454
457
|
throw new OperationNotFoundError(operationId);
|
|
@@ -476,6 +479,12 @@ export class MCPServer {
|
|
|
476
479
|
}
|
|
477
480
|
// Execute with session-specific client
|
|
478
481
|
const httpClient = await this.getHttpClientForSession(sessionId);
|
|
482
|
+
// Set fields parameter if response_fields are configured for this action AND enabled
|
|
483
|
+
const action = args.action;
|
|
484
|
+
if (toolDef.send_response_fields_as_param && toolDef.response_fields && action && toolDef.response_fields[action]) {
|
|
485
|
+
const fields = toolDef.response_fields[action];
|
|
486
|
+
queryParams.fields = fields.join(',');
|
|
487
|
+
}
|
|
479
488
|
const response = await httpClient.request(operation.method, path, {
|
|
480
489
|
params: queryParams,
|
|
481
490
|
body,
|
|
@@ -492,6 +501,50 @@ export class MCPServer {
|
|
|
492
501
|
}
|
|
493
502
|
return result;
|
|
494
503
|
}
|
|
504
|
+
/**
|
|
505
|
+
* Execute proxy download operation
|
|
506
|
+
*
|
|
507
|
+
* Why: Some APIs return authenticated URLs that LLMs cannot fetch directly.
|
|
508
|
+
* This proxies the download through the MCP server.
|
|
509
|
+
*/
|
|
510
|
+
async executeProxyDownload(operation, args, sessionId) {
|
|
511
|
+
this.logger.debug('Executing proxy download', {
|
|
512
|
+
metadataEndpoint: operation.metadata_endpoint,
|
|
513
|
+
urlField: operation.url_field,
|
|
514
|
+
sessionId
|
|
515
|
+
});
|
|
516
|
+
// Get the metadata operation to build the path
|
|
517
|
+
const metadataOp = this.parser.getOperation(operation.metadata_endpoint);
|
|
518
|
+
if (!metadataOp) {
|
|
519
|
+
throw new OperationNotFoundError(operation.metadata_endpoint);
|
|
520
|
+
}
|
|
521
|
+
// Build path for metadata endpoint
|
|
522
|
+
const metadataPath = this.resolvePath(metadataOp.path, args);
|
|
523
|
+
const metadataMethod = metadataOp.method;
|
|
524
|
+
let directDownloadRequest;
|
|
525
|
+
if (operation.download_endpoint) {
|
|
526
|
+
const downloadOp = this.parser.getOperation(operation.download_endpoint);
|
|
527
|
+
if (!downloadOp) {
|
|
528
|
+
throw new OperationNotFoundError(operation.download_endpoint);
|
|
529
|
+
}
|
|
530
|
+
directDownloadRequest = {
|
|
531
|
+
path: this.resolvePath(downloadOp.path, args),
|
|
532
|
+
method: downloadOp.method,
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
// Get auth credentials for download
|
|
536
|
+
const httpClient = await this.getHttpClientForSession(sessionId);
|
|
537
|
+
const authCredentials = httpClient.getAuthCredentials();
|
|
538
|
+
// Execute proxy download
|
|
539
|
+
const proxyExecutor = new ProxyDownloadExecutor(httpClient);
|
|
540
|
+
const result = await proxyExecutor.execute(operation, { path: metadataPath, method: metadataMethod }, authCredentials, directDownloadRequest);
|
|
541
|
+
this.logger.debug('Proxy download completed', {
|
|
542
|
+
fileName: result.fileName,
|
|
543
|
+
mimeType: result.mimeType,
|
|
544
|
+
size: result.size
|
|
545
|
+
});
|
|
546
|
+
return result;
|
|
547
|
+
}
|
|
495
548
|
/**
|
|
496
549
|
* Encode path segment if it contains special characters (like slashes)
|
|
497
550
|
*
|
|
@@ -534,15 +587,28 @@ export class MCPServer {
|
|
|
534
587
|
*/
|
|
535
588
|
extractQueryParams(operation, args) {
|
|
536
589
|
const params = {};
|
|
590
|
+
const aliases = this.profile?.parameter_aliases || {};
|
|
537
591
|
for (const param of operation.parameters) {
|
|
538
|
-
if (param.in === 'query'
|
|
539
|
-
|
|
540
|
-
//
|
|
541
|
-
if (
|
|
542
|
-
|
|
592
|
+
if (param.in === 'query') {
|
|
593
|
+
let value = args[param.name];
|
|
594
|
+
// If not found by direct name, check aliases
|
|
595
|
+
if (value === undefined) {
|
|
596
|
+
const possibleAliases = aliases[param.name] || [];
|
|
597
|
+
for (const alias of possibleAliases) {
|
|
598
|
+
if (args[alias] !== undefined) {
|
|
599
|
+
value = args[alias];
|
|
600
|
+
break;
|
|
601
|
+
}
|
|
602
|
+
}
|
|
543
603
|
}
|
|
544
|
-
|
|
545
|
-
|
|
604
|
+
if (value !== undefined) {
|
|
605
|
+
// Pass arrays as-is, HttpClient will serialize based on array_format
|
|
606
|
+
if (Array.isArray(value)) {
|
|
607
|
+
params[param.name] = value.map(String);
|
|
608
|
+
}
|
|
609
|
+
else {
|
|
610
|
+
params[param.name] = String(value);
|
|
611
|
+
}
|
|
546
612
|
}
|
|
547
613
|
}
|
|
548
614
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/src/metrics.js
CHANGED
|
@@ -11,23 +11,6 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { Registry, Counter, Gauge, Histogram } from 'prom-client';
|
|
13
13
|
export class MetricsCollector {
|
|
14
|
-
registry;
|
|
15
|
-
enabled;
|
|
16
|
-
// HTTP metrics
|
|
17
|
-
httpRequestsTotal;
|
|
18
|
-
httpRequestDuration;
|
|
19
|
-
// Session metrics
|
|
20
|
-
sessionsActive;
|
|
21
|
-
sessionsCreatedTotal;
|
|
22
|
-
sessionsDestroyedTotal;
|
|
23
|
-
// MCP operation metrics
|
|
24
|
-
mcpToolCallsTotal;
|
|
25
|
-
mcpToolCallDuration;
|
|
26
|
-
mcpToolCallErrors;
|
|
27
|
-
// API metrics (calls to backend API)
|
|
28
|
-
apiCallsTotal;
|
|
29
|
-
apiCallDuration;
|
|
30
|
-
apiCallErrors;
|
|
31
14
|
constructor(config) {
|
|
32
15
|
this.enabled = config.enabled;
|
|
33
16
|
this.registry = new Registry();
|
package/dist/src/metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOlE,MAAM,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOlE,MAAM,OAAO,gBAAgB;IAuB3B,YAAY,MAA8B;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QAEvC,eAAe;QACf,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,CAAC;YACnC,IAAI,EAAE,GAAG,MAAM,qBAAqB;YACpC,IAAI,EAAE,+BAA+B;YACrC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACxC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,IAAI,SAAS,CAAC;YACvC,IAAI,EAAE,GAAG,MAAM,+BAA+B;YAC9C,IAAI,EAAE,kCAAkC;YACxC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACxC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/C,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC;YAC9B,IAAI,EAAE,GAAG,MAAM,iBAAiB;YAChC,IAAI,EAAE,2BAA2B;YACjC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,GAAG,IAAI,OAAO,CAAC;YACtC,IAAI,EAAE,GAAG,MAAM,wBAAwB;YACvC,IAAI,EAAE,kCAAkC;YACxC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,GAAG,IAAI,OAAO,CAAC;YACxC,IAAI,EAAE,GAAG,MAAM,0BAA0B;YACzC,IAAI,EAAE,oCAAoC;YAC1C,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,CAAC;YACnC,IAAI,EAAE,GAAG,MAAM,kBAAkB;YACjC,IAAI,EAAE,gCAAgC;YACtC,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC9B,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,IAAI,SAAS,CAAC;YACvC,IAAI,EAAE,GAAG,MAAM,4BAA4B;YAC3C,IAAI,EAAE,mCAAmC;YACzC,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAChD,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,CAAC;YACnC,IAAI,EAAE,GAAG,MAAM,wBAAwB;YACvC,IAAI,EAAE,sCAAsC;YAC5C,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;YAClC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,cAAc;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC;YAC/B,IAAI,EAAE,GAAG,MAAM,iBAAiB;YAChC,IAAI,EAAE,sCAAsC;YAC5C,UAAU,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;YACnC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,SAAS,CAAC;YACnC,IAAI,EAAE,GAAG,MAAM,2BAA2B;YAC1C,IAAI,EAAE,8BAA8B;YACpC,UAAU,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC;YAC/B,IAAI,EAAE,GAAG,MAAM,uBAAuB;YACtC,IAAI,EAAE,iCAAiC;YACvC,UAAU,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;YACvC,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAc,EAAE,IAAY,EAAE,MAAc,EAAE,eAAuB;QACrF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YACzB,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAC9B;YACE,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;SAC1B,EACD,eAAe,CAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY,EAAE,MAA2B,EAAE,eAAuB;QAC/E,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,IAAY,EAAE,SAAiB;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAiB,EAAE,MAAc,EAAE,eAAuB;QACtE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,SAAiB,EAAE,SAAiB;QACrD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,sBAAsB,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;;;;OASG;IACK,aAAa,CAAC,IAAY;QAChC,sBAAsB;QACtB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5C,cAAc;QACd,IAAI,gBAAgB,KAAK,MAAM;YAC3B,gBAAgB,KAAK,UAAU;YAC/B,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,MAAc;QACnC,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -66,6 +66,35 @@ export declare class ExternalOAuthProvider implements OAuthServerProvider {
|
|
|
66
66
|
* Prevents open redirect vulnerabilities (CWE-601)
|
|
67
67
|
*/
|
|
68
68
|
private isAllowedRedirectHost;
|
|
69
|
+
/**
|
|
70
|
+
* Match hostname against allowlist entry
|
|
71
|
+
*
|
|
72
|
+
* Supports:
|
|
73
|
+
* - Exact hostnames
|
|
74
|
+
* - Wildcard subdomains (*.example.com)
|
|
75
|
+
* - IPv4 exact matches
|
|
76
|
+
* - IPv4 CIDR ranges (e.g., 10.0.0.0/8)
|
|
77
|
+
* - IPv6 exact matches
|
|
78
|
+
* - IPv6 CIDR ranges (e.g., 2001:db8::/32)
|
|
79
|
+
*/
|
|
80
|
+
private matchRedirectHost;
|
|
81
|
+
/**
|
|
82
|
+
* Check if IP address is within CIDR range
|
|
83
|
+
*
|
|
84
|
+
* Example: '192.168.1.50' matches '192.168.1.0/24'
|
|
85
|
+
* '2001:db8::1' matches '2001:db8::/32'
|
|
86
|
+
*/
|
|
87
|
+
private matchCIDR;
|
|
88
|
+
/**
|
|
89
|
+
* Convert IPv4 address to 32-bit integer
|
|
90
|
+
*/
|
|
91
|
+
private ipv4ToInt;
|
|
92
|
+
/**
|
|
93
|
+
* Convert IPv6 address to 128-bit BigInt
|
|
94
|
+
*/
|
|
95
|
+
private ipv6ToBigInt;
|
|
96
|
+
private ipv6Mask;
|
|
97
|
+
private stripIpv6Brackets;
|
|
69
98
|
/**
|
|
70
99
|
* Begin authorization flow
|
|
71
100
|
* Stores state and redirects to External Provider with MCP Callback URI
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-provider.d.ts","sourceRoot":"","sources":["../../src/oauth-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"oauth-provider.d.ts","sourceRoot":"","sources":["../../src/oauth-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,13 +13,16 @@
|
|
|
13
13
|
* 4. Client -> MCP (Token) -> MCP returns stored tokens
|
|
14
14
|
*/
|
|
15
15
|
import { randomUUID, createHash } from 'node:crypto';
|
|
16
|
+
import { isIP } from 'node:net';
|
|
16
17
|
import { OAUTH_PATHS } from './constants.js';
|
|
17
18
|
import { escapeHtmlSafe } from './validation-utils.js';
|
|
18
19
|
/**
|
|
19
20
|
* In-memory store for OAuth client registrations
|
|
20
21
|
*/
|
|
21
22
|
export class InMemoryClientsStore {
|
|
22
|
-
|
|
23
|
+
constructor() {
|
|
24
|
+
this.clients = new Map();
|
|
25
|
+
}
|
|
23
26
|
async getClient(clientId) {
|
|
24
27
|
return this.clients.get(clientId);
|
|
25
28
|
}
|
|
@@ -32,16 +35,13 @@ export class InMemoryClientsStore {
|
|
|
32
35
|
* OAuth Provider Adapter for external OAuth servers
|
|
33
36
|
*/
|
|
34
37
|
export class ExternalOAuthProvider {
|
|
35
|
-
config;
|
|
36
|
-
logger;
|
|
37
|
-
_clientsStore;
|
|
38
|
-
// In-memory storage
|
|
39
|
-
authorizationCodes = new Map();
|
|
40
|
-
accessTokens = new Map();
|
|
41
|
-
stateStore = new Map();
|
|
42
|
-
endpointsInitialized = false;
|
|
43
|
-
initializationPromise = null;
|
|
44
38
|
constructor(config, logger) {
|
|
39
|
+
// In-memory storage
|
|
40
|
+
this.authorizationCodes = new Map();
|
|
41
|
+
this.accessTokens = new Map();
|
|
42
|
+
this.stateStore = new Map();
|
|
43
|
+
this.endpointsInitialized = false;
|
|
44
|
+
this.initializationPromise = null;
|
|
45
45
|
this.config = config;
|
|
46
46
|
this.logger = logger;
|
|
47
47
|
this._clientsStore = new InMemoryClientsStore();
|
|
@@ -236,17 +236,9 @@ export class ExternalOAuthProvider {
|
|
|
236
236
|
// Default to localhost only if not configured
|
|
237
237
|
const allowedHosts = this.config.allowed_redirect_hosts || ['localhost', '127.0.0.1'];
|
|
238
238
|
for (const allowed of allowedHosts) {
|
|
239
|
-
|
|
240
|
-
if (hostname === allowed) {
|
|
239
|
+
if (this.matchRedirectHost(hostname, allowed)) {
|
|
241
240
|
return true;
|
|
242
241
|
}
|
|
243
|
-
// Wildcard subdomain match (*.example.com)
|
|
244
|
-
if (allowed.startsWith('*.')) {
|
|
245
|
-
const domain = allowed.slice(2);
|
|
246
|
-
if (hostname === domain || hostname.endsWith('.' + domain)) {
|
|
247
|
-
return true;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
242
|
}
|
|
251
243
|
return false;
|
|
252
244
|
}
|
|
@@ -255,6 +247,170 @@ export class ExternalOAuthProvider {
|
|
|
255
247
|
return false;
|
|
256
248
|
}
|
|
257
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Match hostname against allowlist entry
|
|
252
|
+
*
|
|
253
|
+
* Supports:
|
|
254
|
+
* - Exact hostnames
|
|
255
|
+
* - Wildcard subdomains (*.example.com)
|
|
256
|
+
* - IPv4 exact matches
|
|
257
|
+
* - IPv4 CIDR ranges (e.g., 10.0.0.0/8)
|
|
258
|
+
* - IPv6 exact matches
|
|
259
|
+
* - IPv6 CIDR ranges (e.g., 2001:db8::/32)
|
|
260
|
+
*/
|
|
261
|
+
matchRedirectHost(hostname, pattern) {
|
|
262
|
+
const normalizedHost = this.stripIpv6Brackets(hostname);
|
|
263
|
+
const normalizedPattern = this.stripIpv6Brackets(pattern);
|
|
264
|
+
if (normalizedHost === normalizedPattern) {
|
|
265
|
+
return true;
|
|
266
|
+
}
|
|
267
|
+
if (normalizedPattern.startsWith('*.')) {
|
|
268
|
+
const domain = normalizedPattern.slice(2);
|
|
269
|
+
return normalizedHost === domain || normalizedHost.endsWith('.' + domain);
|
|
270
|
+
}
|
|
271
|
+
if (normalizedPattern.includes('/')) {
|
|
272
|
+
return this.matchCIDR(normalizedHost, normalizedPattern);
|
|
273
|
+
}
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Check if IP address is within CIDR range
|
|
278
|
+
*
|
|
279
|
+
* Example: '192.168.1.50' matches '192.168.1.0/24'
|
|
280
|
+
* '2001:db8::1' matches '2001:db8::/32'
|
|
281
|
+
*/
|
|
282
|
+
matchCIDR(ip, cidr) {
|
|
283
|
+
const [rawRange, bits] = cidr.split('/');
|
|
284
|
+
const range = this.stripIpv6Brackets(rawRange);
|
|
285
|
+
const maskBits = parseInt(bits, 10);
|
|
286
|
+
if (isNaN(maskBits)) {
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
const ipVersion = isIP(ip);
|
|
290
|
+
const rangeVersion = isIP(range);
|
|
291
|
+
if (ipVersion === 0 || rangeVersion === 0 || ipVersion !== rangeVersion) {
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
if (ipVersion === 4) {
|
|
295
|
+
if (maskBits < 0 || maskBits > 32) {
|
|
296
|
+
this.logger.warn('Invalid IPv4 CIDR mask bits for redirect host allowlist', { cidr });
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
const ipInt = this.ipv4ToInt(ip);
|
|
300
|
+
const rangeInt = this.ipv4ToInt(range);
|
|
301
|
+
if (ipInt === null || rangeInt === null) {
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
const mask = (0xFFFFFFFF << (32 - maskBits)) >>> 0;
|
|
305
|
+
return (ipInt & mask) === (rangeInt & mask);
|
|
306
|
+
}
|
|
307
|
+
if (maskBits < 0 || maskBits > 128) {
|
|
308
|
+
this.logger.warn('Invalid IPv6 CIDR mask bits for redirect host allowlist', { cidr });
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
const ipInt = this.ipv6ToBigInt(ip);
|
|
312
|
+
const rangeInt = this.ipv6ToBigInt(range);
|
|
313
|
+
if (ipInt === null || rangeInt === null) {
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
316
|
+
const mask = this.ipv6Mask(maskBits);
|
|
317
|
+
return (ipInt & mask) === (rangeInt & mask);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Convert IPv4 address to 32-bit integer
|
|
321
|
+
*/
|
|
322
|
+
ipv4ToInt(ip) {
|
|
323
|
+
const parts = ip.split('.');
|
|
324
|
+
if (parts.length !== 4) {
|
|
325
|
+
return null;
|
|
326
|
+
}
|
|
327
|
+
let result = 0;
|
|
328
|
+
for (let i = 0; i < 4; i++) {
|
|
329
|
+
const octet = parseInt(parts[i], 10);
|
|
330
|
+
if (isNaN(octet) || octet < 0 || octet > 255) {
|
|
331
|
+
return null;
|
|
332
|
+
}
|
|
333
|
+
result = (result << 8) | octet;
|
|
334
|
+
}
|
|
335
|
+
return result >>> 0;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Convert IPv6 address to 128-bit BigInt
|
|
339
|
+
*/
|
|
340
|
+
ipv6ToBigInt(ip) {
|
|
341
|
+
const cleaned = this.stripIpv6Brackets(ip);
|
|
342
|
+
// Handle IPv4-mapped IPv6 (e.g., ::ffff:192.168.0.1)
|
|
343
|
+
let ipv4Tail = null;
|
|
344
|
+
let base = cleaned;
|
|
345
|
+
if (cleaned.includes('.')) {
|
|
346
|
+
const lastColon = cleaned.lastIndexOf(':');
|
|
347
|
+
if (lastColon === -1)
|
|
348
|
+
return null;
|
|
349
|
+
const ipv4Part = cleaned.slice(lastColon + 1);
|
|
350
|
+
ipv4Tail = this.ipv4ToInt(ipv4Part);
|
|
351
|
+
if (ipv4Tail === null)
|
|
352
|
+
return null;
|
|
353
|
+
base = cleaned.slice(0, lastColon);
|
|
354
|
+
}
|
|
355
|
+
const parts = base.split('::');
|
|
356
|
+
if (parts.length > 2) {
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
359
|
+
const head = parts[0] ? parts[0].split(':') : [];
|
|
360
|
+
const tail = parts.length === 2 && parts[1] ? parts[1].split(':') : [];
|
|
361
|
+
if (head.some(p => p === '') || tail.some(p => p === '')) {
|
|
362
|
+
return null;
|
|
363
|
+
}
|
|
364
|
+
const totalSegmentsNeeded = 8 - (ipv4Tail !== null ? 2 : 0);
|
|
365
|
+
let segments = [];
|
|
366
|
+
const parseHextets = (items) => {
|
|
367
|
+
const result = [];
|
|
368
|
+
for (const part of items) {
|
|
369
|
+
const num = parseInt(part || '0', 16);
|
|
370
|
+
if (isNaN(num) || num < 0 || num > 0xFFFF) {
|
|
371
|
+
return null;
|
|
372
|
+
}
|
|
373
|
+
result.push(num);
|
|
374
|
+
}
|
|
375
|
+
return result;
|
|
376
|
+
};
|
|
377
|
+
const headVals = parseHextets(head);
|
|
378
|
+
const tailVals = parseHextets(tail);
|
|
379
|
+
if (!headVals || !tailVals) {
|
|
380
|
+
return null;
|
|
381
|
+
}
|
|
382
|
+
const missing = totalSegmentsNeeded - (headVals.length + tailVals.length);
|
|
383
|
+
if (missing < 0) {
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
segments = [...headVals, ...Array(missing).fill(0), ...tailVals];
|
|
387
|
+
if (segments.length !== totalSegmentsNeeded) {
|
|
388
|
+
return null;
|
|
389
|
+
}
|
|
390
|
+
if (ipv4Tail !== null) {
|
|
391
|
+
const high = (ipv4Tail >>> 16) & 0xFFFF;
|
|
392
|
+
const low = ipv4Tail & 0xFFFF;
|
|
393
|
+
segments.push(high, low);
|
|
394
|
+
}
|
|
395
|
+
if (segments.length !== 8) {
|
|
396
|
+
return null;
|
|
397
|
+
}
|
|
398
|
+
let value = 0n;
|
|
399
|
+
for (const part of segments) {
|
|
400
|
+
value = (value << 16n) + BigInt(part);
|
|
401
|
+
}
|
|
402
|
+
return value;
|
|
403
|
+
}
|
|
404
|
+
ipv6Mask(maskBits) {
|
|
405
|
+
if (maskBits === 0) {
|
|
406
|
+
return 0n;
|
|
407
|
+
}
|
|
408
|
+
const ones = (1n << BigInt(maskBits)) - 1n;
|
|
409
|
+
return BigInt.asUintN(128, ones << BigInt(128 - maskBits));
|
|
410
|
+
}
|
|
411
|
+
stripIpv6Brackets(value) {
|
|
412
|
+
return value.replace(/^\[/, '').replace(/\]$/, '');
|
|
413
|
+
}
|
|
258
414
|
/**
|
|
259
415
|
* Begin authorization flow
|
|
260
416
|
* Stores state and redirects to External Provider with MCP Callback URI
|
|
@@ -392,10 +548,8 @@ export class ExternalOAuthProvider {
|
|
|
392
548
|
// Redirect to Client
|
|
393
549
|
let clientUrl;
|
|
394
550
|
try {
|
|
551
|
+
// Allow custom schemes (e.g., vscode://, cursor://) as long as the host was validated above
|
|
395
552
|
clientUrl = new URL(storedState.clientRedirectUri);
|
|
396
|
-
if (clientUrl.protocol !== 'http:' && clientUrl.protocol !== 'https:') {
|
|
397
|
-
throw new Error('Invalid protocol');
|
|
398
|
-
}
|
|
399
553
|
}
|
|
400
554
|
catch {
|
|
401
555
|
res.status(400).send('Invalid redirect URI');
|
|
@@ -409,6 +563,7 @@ export class ExternalOAuthProvider {
|
|
|
409
563
|
clientUrl: clientUrl.toString(),
|
|
410
564
|
internalCode
|
|
411
565
|
});
|
|
566
|
+
// nosemgrep: javascript.express.open-redirect-deepsemgrep.open-redirect-deepsemgrep, javascript.express.web.tainted-redirect-express.tainted-redirect-express
|
|
412
567
|
res.redirect(clientUrl.toString());
|
|
413
568
|
}
|
|
414
569
|
catch (err) {
|