@j0hanz/fetch-url-mcp 1.12.6 → 1.12.8
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/http/auth.d.ts +2 -2
- package/dist/http/auth.d.ts.map +1 -1
- package/dist/http/auth.js +15 -16
- package/dist/http/index.d.ts +6 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +5 -0
- package/dist/http/native.d.ts +73 -0
- package/dist/http/native.d.ts.map +1 -1
- package/dist/http/native.js +585 -62
- package/dist/http/rate-limit.d.ts +1 -1
- package/dist/http/rate-limit.d.ts.map +1 -1
- package/dist/http/rate-limit.js +5 -6
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +69 -8
- package/dist/lib/config.js +2 -2
- package/dist/lib/core.d.ts +56 -4
- package/dist/lib/core.d.ts.map +1 -1
- package/dist/lib/core.js +162 -11
- package/dist/lib/error/classes.d.ts +19 -0
- package/dist/lib/error/classes.d.ts.map +1 -0
- package/dist/lib/error/classes.js +107 -0
- package/dist/lib/error/classify.d.ts +4 -0
- package/dist/lib/error/classify.d.ts.map +1 -0
- package/dist/lib/error/classify.js +154 -0
- package/dist/lib/error/codes.d.ts +23 -0
- package/dist/lib/error/codes.d.ts.map +1 -0
- package/dist/lib/error/codes.js +22 -0
- package/dist/lib/error/index.d.ts +6 -0
- package/dist/lib/error/index.d.ts.map +1 -0
- package/dist/lib/error/index.js +5 -0
- package/dist/lib/{error-messages.d.ts → error/messages.d.ts} +2 -2
- package/dist/lib/error/messages.d.ts.map +1 -0
- package/dist/lib/{error-messages.js → error/messages.js} +13 -13
- package/dist/lib/{tool-errors.d.ts → error/payload.d.ts} +7 -13
- package/dist/lib/error/payload.d.ts.map +1 -0
- package/dist/lib/error/payload.js +108 -0
- package/dist/lib/mcp-interop.d.ts +1 -0
- package/dist/lib/mcp-interop.d.ts.map +1 -1
- package/dist/lib/mcp-interop.js +17 -9
- package/dist/lib/net/http.d.ts.map +1 -0
- package/dist/lib/{http.js → net/http.js} +11 -14
- package/dist/lib/net/index.d.ts +4 -0
- package/dist/lib/net/index.d.ts.map +1 -0
- package/dist/lib/net/index.js +3 -0
- package/dist/lib/{fetch-pipeline.d.ts → net/pipeline.d.ts} +3 -3
- package/dist/lib/net/pipeline.d.ts.map +1 -0
- package/dist/lib/{fetch-pipeline.js → net/pipeline.js} +7 -9
- package/dist/lib/{url.d.ts → net/url.d.ts} +2 -2
- package/dist/lib/net/url.d.ts.map +1 -0
- package/dist/lib/{url.js → net/url.js} +6 -8
- package/dist/lib/utils.d.ts +3 -18
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +33 -105
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +6 -3
- package/dist/schemas.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +12 -14
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +1 -0
- package/dist/tasks/manager.d.ts +123 -1
- package/dist/tasks/manager.d.ts.map +1 -1
- package/dist/tasks/manager.js +753 -18
- package/dist/tools/{fetch-url.d.ts → index.d.ts} +4 -5
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/{fetch-url.js → index.js} +14 -31
- package/dist/transform/index.d.ts +279 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/index.js +5234 -0
- package/package.json +2 -2
- package/dist/cli.d.ts +0 -19
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -65
- package/dist/http/health.d.ts +0 -8
- package/dist/http/health.d.ts.map +0 -1
- package/dist/http/health.js +0 -152
- package/dist/http/helpers.d.ts +0 -68
- package/dist/http/helpers.d.ts.map +0 -1
- package/dist/http/helpers.js +0 -404
- package/dist/lib/error-codes.d.ts +0 -11
- package/dist/lib/error-codes.d.ts.map +0 -1
- package/dist/lib/error-codes.js +0 -15
- package/dist/lib/error-messages.d.ts.map +0 -1
- package/dist/lib/fetch-pipeline.d.ts.map +0 -1
- package/dist/lib/http.d.ts.map +0 -1
- package/dist/lib/logger-names.d.ts +0 -14
- package/dist/lib/logger-names.d.ts.map +0 -1
- package/dist/lib/logger-names.js +0 -13
- package/dist/lib/session.d.ts +0 -44
- package/dist/lib/session.d.ts.map +0 -1
- package/dist/lib/session.js +0 -137
- package/dist/lib/tool-errors.d.ts.map +0 -1
- package/dist/lib/tool-errors.js +0 -252
- package/dist/lib/url.d.ts.map +0 -1
- package/dist/lib/zod.d.ts +0 -3
- package/dist/lib/zod.d.ts.map +0 -1
- package/dist/lib/zod.js +0 -27
- package/dist/tasks/call-contract.d.ts +0 -25
- package/dist/tasks/call-contract.d.ts.map +0 -1
- package/dist/tasks/call-contract.js +0 -59
- package/dist/tasks/execution.d.ts +0 -16
- package/dist/tasks/execution.d.ts.map +0 -1
- package/dist/tasks/execution.js +0 -241
- package/dist/tasks/handlers.d.ts +0 -11
- package/dist/tasks/handlers.d.ts.map +0 -1
- package/dist/tasks/handlers.js +0 -157
- package/dist/tasks/owner.d.ts +0 -43
- package/dist/tasks/owner.d.ts.map +0 -1
- package/dist/tasks/owner.js +0 -144
- package/dist/tasks/registry.d.ts +0 -20
- package/dist/tasks/registry.d.ts.map +0 -1
- package/dist/tasks/registry.js +0 -40
- package/dist/tasks/waiters.d.ts +0 -27
- package/dist/tasks/waiters.d.ts.map +0 -1
- package/dist/tasks/waiters.js +0 -114
- package/dist/tools/fetch-url.d.ts.map +0 -1
- package/dist/transform/dom-prep.d.ts +0 -16
- package/dist/transform/dom-prep.d.ts.map +0 -1
- package/dist/transform/dom-prep.js +0 -1287
- package/dist/transform/html-translators.d.ts +0 -5
- package/dist/transform/html-translators.d.ts.map +0 -1
- package/dist/transform/html-translators.js +0 -697
- package/dist/transform/markdown-cleanup.d.ts +0 -10
- package/dist/transform/markdown-cleanup.d.ts.map +0 -1
- package/dist/transform/markdown-cleanup.js +0 -542
- package/dist/transform/metadata.d.ts +0 -18
- package/dist/transform/metadata.d.ts.map +0 -1
- package/dist/transform/metadata.js +0 -462
- package/dist/transform/next-flight.d.ts +0 -2
- package/dist/transform/next-flight.d.ts.map +0 -1
- package/dist/transform/next-flight.js +0 -374
- package/dist/transform/shared.d.ts +0 -8
- package/dist/transform/shared.d.ts.map +0 -1
- package/dist/transform/shared.js +0 -137
- package/dist/transform/transform.d.ts +0 -38
- package/dist/transform/transform.d.ts.map +0 -1
- package/dist/transform/transform.js +0 -1041
- package/dist/transform/types.d.ts +0 -124
- package/dist/transform/types.d.ts.map +0 -1
- package/dist/transform/types.js +0 -5
- package/dist/transform/worker-pool.d.ts +0 -76
- package/dist/transform/worker-pool.d.ts.map +0 -1
- package/dist/transform/worker-pool.js +0 -725
- /package/dist/lib/{http.d.ts → net/http.d.ts} +0 -0
package/dist/http/auth.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
1
|
import { InvalidTokenError } from '@modelcontextprotocol/sdk/server/auth/errors.js';
|
|
3
2
|
import type { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
|
|
4
|
-
import {
|
|
3
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
4
|
+
import { type RequestContext } from './native.js';
|
|
5
5
|
declare class CorsPolicy {
|
|
6
6
|
handle(ctx: RequestContext): boolean;
|
|
7
7
|
}
|
package/dist/http/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/http/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/http/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/http/auth.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { randomBytes } from 'node:crypto';
|
|
2
1
|
import { InvalidTokenError, ServerError, } from '@modelcontextprotocol/sdk/server/auth/errors.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { normalizeHost } from '../lib/
|
|
2
|
+
import { randomBytes } from 'node:crypto';
|
|
3
|
+
import { config, logDebug, Loggers, logWarn } from '../lib/core.js';
|
|
4
|
+
import { normalizeHost } from '../lib/net/index.js';
|
|
6
5
|
import { composeAbortSignal, hmacSha256Hex, isObject, parseUrlOrNull, timingSafeEqualUtf8, } from '../lib/utils.js';
|
|
7
|
-
import { getHeaderValue, sendEmpty, sendError, sendJson, } from './
|
|
6
|
+
import { getHeaderValue, sendEmpty, sendError, sendJson, } from './native.js';
|
|
8
7
|
// ---------------------------------------------------------------------------
|
|
9
8
|
// CORS
|
|
10
9
|
// ---------------------------------------------------------------------------
|
|
@@ -261,7 +260,7 @@ class AuthService {
|
|
|
261
260
|
source,
|
|
262
261
|
clientId: info.clientId,
|
|
263
262
|
scopeCount: info.scopes.length,
|
|
264
|
-
}, LOG_AUTH);
|
|
263
|
+
}, Loggers.LOG_AUTH);
|
|
265
264
|
return info;
|
|
266
265
|
}
|
|
267
266
|
authenticateWithToken(token, signal) {
|
|
@@ -275,11 +274,11 @@ class AuthService {
|
|
|
275
274
|
return this.verifyStaticToken(apiKey);
|
|
276
275
|
}
|
|
277
276
|
if (apiKey && config.auth.mode === 'oauth') {
|
|
278
|
-
logWarn('Auth failed: X-API-Key not supported for OAuth', {}, LOG_AUTH);
|
|
277
|
+
logWarn('Auth failed: X-API-Key not supported for OAuth', {}, Loggers.LOG_AUTH);
|
|
279
278
|
const error = new InvalidTokenError('X-API-Key not supported for OAuth');
|
|
280
279
|
throw error;
|
|
281
280
|
}
|
|
282
|
-
logWarn('Auth failed: missing credentials', { authMode: config.auth.mode }, LOG_AUTH);
|
|
281
|
+
logWarn('Auth failed: missing credentials', { authMode: config.auth.mode }, Loggers.LOG_AUTH);
|
|
283
282
|
const error = new InvalidTokenError(config.auth.mode === 'static'
|
|
284
283
|
? 'Missing Authorization or X-API-Key header'
|
|
285
284
|
: 'Missing Authorization header');
|
|
@@ -314,7 +313,7 @@ class AuthService {
|
|
|
314
313
|
const tokenDigest = hmacSha256Hex(STATIC_TOKEN_HMAC_KEY, token);
|
|
315
314
|
const matched = hasConstantTimeMatch(this.staticTokenDigests, tokenDigest);
|
|
316
315
|
if (!matched) {
|
|
317
|
-
logWarn('Auth failed: invalid static token', {}, LOG_AUTH);
|
|
316
|
+
logWarn('Auth failed: invalid static token', {}, Loggers.LOG_AUTH);
|
|
318
317
|
const error = new InvalidTokenError('Invalid token');
|
|
319
318
|
throw error;
|
|
320
319
|
}
|
|
@@ -362,12 +361,12 @@ class AuthService {
|
|
|
362
361
|
.map((value) => this.canonicalizeResourceUri(value))
|
|
363
362
|
.filter((value) => value !== null);
|
|
364
363
|
if (audiences.length === 0) {
|
|
365
|
-
logWarn('Auth failed: token missing audience binding', {}, LOG_AUTH);
|
|
364
|
+
logWarn('Auth failed: token missing audience binding', {}, Loggers.LOG_AUTH);
|
|
366
365
|
const error = new InvalidTokenError('Token missing audience binding');
|
|
367
366
|
throw error;
|
|
368
367
|
}
|
|
369
368
|
if (!audiences.includes(expected)) {
|
|
370
|
-
logWarn('Auth failed: audience mismatch', {}, LOG_AUTH);
|
|
369
|
+
logWarn('Auth failed: audience mismatch', {}, Loggers.LOG_AUTH);
|
|
371
370
|
const error = new InvalidTokenError('Token audience does not match this MCP server');
|
|
372
371
|
throw error;
|
|
373
372
|
}
|
|
@@ -403,7 +402,7 @@ class AuthService {
|
|
|
403
402
|
if (response.body) {
|
|
404
403
|
await response.body.cancel();
|
|
405
404
|
}
|
|
406
|
-
logWarn('Token introspection HTTP error', { status: response.status }, LOG_AUTH);
|
|
405
|
+
logWarn('Token introspection HTTP error', { status: response.status }, Loggers.LOG_AUTH);
|
|
407
406
|
const error = new ServerError(`Token introspection failed: ${response.status}`);
|
|
408
407
|
throw error;
|
|
409
408
|
}
|
|
@@ -430,7 +429,7 @@ class AuthService {
|
|
|
430
429
|
const tokenScopeSet = new Set(tokenScopes);
|
|
431
430
|
const missing = requiredScopes.filter((s) => !tokenScopeSet.has(s));
|
|
432
431
|
if (missing.length > 0) {
|
|
433
|
-
logWarn('Auth failed: insufficient scopes', { missingCount: missing.length }, LOG_AUTH);
|
|
432
|
+
logWarn('Auth failed: insufficient scopes', { missingCount: missing.length }, Loggers.LOG_AUTH);
|
|
434
433
|
const error = new InsufficientScopeError(missing);
|
|
435
434
|
throw error;
|
|
436
435
|
}
|
|
@@ -445,21 +444,21 @@ class AuthService {
|
|
|
445
444
|
if (cached && cached.expiresAt > Date.now()) {
|
|
446
445
|
this.introspectionCache.delete(cacheKey);
|
|
447
446
|
this.introspectionCache.set(cacheKey, cached);
|
|
448
|
-
logDebug('Token introspection cache hit', {}, LOG_AUTH);
|
|
447
|
+
logDebug('Token introspection cache hit', {}, Loggers.LOG_AUTH);
|
|
449
448
|
return cached.info;
|
|
450
449
|
}
|
|
451
450
|
const req = this.buildIntrospectionRequest(token, config.auth.resourceUrl, config.auth.clientId, config.auth.clientSecret);
|
|
452
451
|
const payload = await this.requestIntrospection(config.auth.introspectionUrl, req, config.auth.introspectionTimeoutMs, signal);
|
|
453
452
|
if (!isObject(payload) || payload['active'] !== true) {
|
|
454
453
|
this.introspectionCache.delete(cacheKey);
|
|
455
|
-
logWarn('Auth failed: token inactive', {}, LOG_AUTH);
|
|
454
|
+
logWarn('Auth failed: token inactive', {}, Loggers.LOG_AUTH);
|
|
456
455
|
const error = new InvalidTokenError('Token is inactive');
|
|
457
456
|
throw error;
|
|
458
457
|
}
|
|
459
458
|
this.assertTokenAudience(payload);
|
|
460
459
|
const info = this.buildIntrospectionAuthInfo(token, payload);
|
|
461
460
|
this.assertRequiredScopes(info.scopes);
|
|
462
|
-
logDebug('Token introspection successful', { clientId: info.clientId }, LOG_AUTH);
|
|
461
|
+
logDebug('Token introspection successful', { clientId: info.clientId }, Loggers.LOG_AUTH);
|
|
463
462
|
this.evictStaleEntries();
|
|
464
463
|
this.introspectionCache.set(cacheKey, {
|
|
465
464
|
info,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
package/dist/http/native.d.ts
CHANGED
|
@@ -1,6 +1,79 @@
|
|
|
1
|
+
import type { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
|
|
2
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
4
|
+
import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
5
|
+
import { type IncomingMessage, type Server, type ServerResponse } from 'node:http';
|
|
6
|
+
import { type Server as HttpsServer } from 'node:https';
|
|
7
|
+
import { type SessionStore } from '../lib/core.js';
|
|
8
|
+
import { type JsonRpcId } from '../lib/mcp-interop.js';
|
|
9
|
+
export type NetworkServer = Server | HttpsServer;
|
|
10
|
+
export interface RequestContext {
|
|
11
|
+
req: IncomingMessage;
|
|
12
|
+
res: ServerResponse;
|
|
13
|
+
url: URL;
|
|
14
|
+
method: string | undefined;
|
|
15
|
+
ip: string | null;
|
|
16
|
+
body: unknown;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}
|
|
19
|
+
export interface AuthenticatedContext extends RequestContext {
|
|
20
|
+
auth: AuthInfo;
|
|
21
|
+
}
|
|
22
|
+
export declare function sendJson(res: ServerResponse, status: number, body: unknown): void;
|
|
23
|
+
export declare function sendEmpty(res: ServerResponse, status: number): void;
|
|
24
|
+
export declare function sendError(res: ServerResponse, _code: number, message: string, status?: number, _id?: JsonRpcId | null): void;
|
|
25
|
+
export declare function getHeaderValue(req: IncomingMessage, name: string): string | null;
|
|
26
|
+
export declare function getMcpSessionId(req: IncomingMessage): string | null;
|
|
27
|
+
export declare function findDuplicateSingleValueHeader(req: IncomingMessage): string | null;
|
|
28
|
+
export declare function drainRequest(req: IncomingMessage): void;
|
|
29
|
+
export declare function createRequestAbortSignal(req: IncomingMessage): {
|
|
30
|
+
signal: AbortSignal;
|
|
31
|
+
cleanup: () => void;
|
|
32
|
+
};
|
|
33
|
+
export declare function registerInboundBlockList(server: NetworkServer): void;
|
|
34
|
+
export declare function buildRequestContext(req: IncomingMessage, res: ServerResponse, signal?: AbortSignal): RequestContext | null;
|
|
35
|
+
export declare function closeTransportBestEffort(transport: {
|
|
36
|
+
close: () => Promise<unknown>;
|
|
37
|
+
}, context: string): Promise<void>;
|
|
38
|
+
export declare function closeMcpServerBestEffort(server: McpServer, context: string): Promise<void>;
|
|
39
|
+
export declare function createTransportAdapter(transportImpl: StreamableHTTPServerTransport): Transport;
|
|
40
|
+
type JsonBodyErrorKind = 'payload-too-large' | 'invalid-json' | 'read-failed';
|
|
41
|
+
export declare class JsonBodyError extends Error {
|
|
42
|
+
readonly kind: JsonBodyErrorKind;
|
|
43
|
+
constructor(kind: JsonBodyErrorKind, message: string);
|
|
44
|
+
}
|
|
45
|
+
export declare function isJsonBodyError(error: unknown): error is JsonBodyError;
|
|
46
|
+
export declare const DEFAULT_BODY_LIMIT_BYTES: number;
|
|
47
|
+
declare class JsonBodyReader {
|
|
48
|
+
read(req: IncomingMessage, limit?: number, signal?: AbortSignal): Promise<unknown>;
|
|
49
|
+
private readBody;
|
|
50
|
+
private collectChunks;
|
|
51
|
+
private normalizeChunk;
|
|
52
|
+
}
|
|
53
|
+
export declare const jsonBodyReader: JsonBodyReader;
|
|
54
|
+
interface SessionRecordLike {
|
|
55
|
+
server: McpServer;
|
|
56
|
+
transport: StreamableHTTPServerTransport;
|
|
57
|
+
}
|
|
58
|
+
interface SessionTeardownOptions {
|
|
59
|
+
cancelMessage: string;
|
|
60
|
+
closeServerReason?: string;
|
|
61
|
+
closeTransportReason?: string;
|
|
62
|
+
unregisterByServer?: boolean;
|
|
63
|
+
awaitClose?: boolean;
|
|
64
|
+
}
|
|
65
|
+
export declare function teardownSessionResources(session: SessionRecordLike, options: SessionTeardownOptions): Promise<void>;
|
|
66
|
+
export declare function teardownUnregisteredSessionResources(session: SessionRecordLike, context: string): Promise<void>;
|
|
67
|
+
export declare function teardownSessionRegistration(server: McpServer): void;
|
|
68
|
+
export declare function resetEventLoopMonitoring(): void;
|
|
69
|
+
export declare function disableEventLoopMonitoring(): void;
|
|
70
|
+
export declare function isVerboseHealthRequest(ctx: RequestContext): boolean;
|
|
71
|
+
export declare function shouldHandleHealthRoute(ctx: RequestContext): boolean;
|
|
72
|
+
export declare function sendHealthRouteResponse(store: SessionStore, ctx: RequestContext, authPresent: boolean): boolean;
|
|
1
73
|
export declare function startHttpServer(): Promise<{
|
|
2
74
|
shutdown: (signal: string) => Promise<void>;
|
|
3
75
|
port: number;
|
|
4
76
|
host: string;
|
|
5
77
|
}>;
|
|
78
|
+
export {};
|
|
6
79
|
//# sourceMappingURL=native.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/http/native.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/http/native.ts"],"names":[],"mappings":"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"}
|