@frontmcp/sdk 0.5.1 → 0.6.1
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 +1 -0
- package/package.json +12 -16
- package/src/adapter/adapter.instance.js +5 -0
- package/src/adapter/adapter.instance.js.map +1 -1
- package/src/auth/authorization/authorization.class.d.ts +1 -4
- package/src/auth/authorization/authorization.class.js +6 -13
- package/src/auth/authorization/authorization.class.js.map +1 -1
- package/src/auth/flows/session.verify.flow.d.ts +1 -0
- package/src/auth/flows/session.verify.flow.js +11 -1
- package/src/auth/flows/session.verify.flow.js.map +1 -1
- package/src/auth/flows/well-known.jwks.flow.js +2 -2
- package/src/auth/flows/well-known.jwks.flow.js.map +1 -1
- package/src/auth/jwks/dev-key-persistence.d.ts +63 -0
- package/src/auth/jwks/dev-key-persistence.js +219 -0
- package/src/auth/jwks/dev-key-persistence.js.map +1 -0
- package/src/auth/jwks/index.d.ts +1 -0
- package/src/auth/jwks/index.js +1 -0
- package/src/auth/jwks/index.js.map +1 -1
- package/src/auth/jwks/jwks.service.d.ts +7 -4
- package/src/auth/jwks/jwks.service.js +81 -12
- package/src/auth/jwks/jwks.service.js.map +1 -1
- package/src/auth/jwks/jwks.types.d.ts +7 -0
- package/src/auth/jwks/jwks.types.js.map +1 -1
- package/src/auth/machine-id.d.ts +5 -0
- package/src/auth/machine-id.js +32 -0
- package/src/auth/machine-id.js.map +1 -0
- package/src/auth/session/index.d.ts +2 -0
- package/src/auth/session/index.js +5 -1
- package/src/auth/session/index.js.map +1 -1
- package/src/auth/session/record/session.base.js +5 -3
- package/src/auth/session/record/session.base.js.map +1 -1
- package/src/auth/session/record/session.stateless.d.ts +2 -2
- package/src/auth/session/record/session.stateless.js +5 -3
- package/src/auth/session/record/session.stateless.js.map +1 -1
- package/src/auth/session/redis-session.store.d.ts +64 -0
- package/src/auth/session/redis-session.store.js +204 -0
- package/src/auth/session/redis-session.store.js.map +1 -0
- package/src/auth/session/session.service.d.ts +0 -2
- package/src/auth/session/session.service.js +1 -7
- package/src/auth/session/session.service.js.map +1 -1
- package/src/auth/session/transport-session.manager.js +3 -5
- package/src/auth/session/transport-session.manager.js.map +1 -1
- package/src/auth/session/transport-session.types.d.ts +4 -0
- package/src/auth/session/transport-session.types.js +4 -3
- package/src/auth/session/transport-session.types.js.map +1 -1
- package/src/auth/session/utils/session-id.utils.d.ts +12 -1
- package/src/auth/session/utils/session-id.utils.js +48 -9
- package/src/auth/session/utils/session-id.utils.js.map +1 -1
- package/src/auth/session/vercel-kv-session.store.d.ts +96 -0
- package/src/auth/session/vercel-kv-session.store.js +216 -0
- package/src/auth/session/vercel-kv-session.store.js.map +1 -0
- package/src/auth/ui/base-layout.d.ts +0 -8
- package/src/auth/ui/base-layout.js +1 -14
- package/src/auth/ui/base-layout.js.map +1 -1
- package/src/auth/ui/index.d.ts +3 -4
- package/src/auth/ui/index.js +10 -11
- package/src/auth/ui/index.js.map +1 -1
- package/src/auth/ui/{htmx-templates.d.ts → templates.d.ts} +5 -6
- package/src/auth/ui/{htmx-templates.js → templates.js} +8 -15
- package/src/auth/ui/templates.js.map +1 -0
- package/src/common/decorators/decorator-utils.js.map +1 -1
- package/src/common/decorators/front-mcp.decorator.js +26 -3
- package/src/common/decorators/front-mcp.decorator.js.map +1 -1
- package/src/common/index.d.ts +0 -1
- package/src/common/index.js +0 -1
- package/src/common/index.js.map +1 -1
- package/src/common/interfaces/adapter.interface.d.ts +6 -0
- package/src/common/interfaces/adapter.interface.js.map +1 -1
- package/src/common/interfaces/execution-context.interface.d.ts +52 -3
- package/src/common/interfaces/execution-context.interface.js +88 -3
- package/src/common/interfaces/execution-context.interface.js.map +1 -1
- package/src/common/interfaces/flow.interface.d.ts +13 -0
- package/src/common/interfaces/flow.interface.js +24 -0
- package/src/common/interfaces/flow.interface.js.map +1 -1
- package/src/common/interfaces/server.interface.d.ts +9 -0
- package/src/common/interfaces/server.interface.js.map +1 -1
- package/src/common/metadata/app.metadata.d.ts +108 -0
- package/src/common/metadata/front-mcp.metadata.d.ts +1341 -2
- package/src/common/metadata/front-mcp.metadata.js +4 -1
- package/src/common/metadata/front-mcp.metadata.js.map +1 -1
- package/src/common/metadata/prompt.metadata.d.ts +4 -0
- package/src/common/metadata/provider.metadata.d.ts +14 -0
- package/src/common/metadata/provider.metadata.js +18 -2
- package/src/common/metadata/provider.metadata.js.map +1 -1
- package/src/common/metadata/resource.metadata.d.ts +8 -0
- package/src/common/metadata/tool-ui.metadata.d.ts +2 -2
- package/src/common/metadata/tool-ui.metadata.js +1 -1
- package/src/common/metadata/tool-ui.metadata.js.map +1 -1
- package/src/common/metadata/tool.metadata.d.ts +5 -1
- package/src/common/metadata/tool.metadata.js.map +1 -1
- package/src/common/migrate/auth-transport.migrate.d.ts +62 -0
- package/src/common/migrate/auth-transport.migrate.js +140 -0
- package/src/common/migrate/auth-transport.migrate.js.map +1 -0
- package/src/common/migrate/index.d.ts +1 -0
- package/src/common/migrate/index.js +6 -0
- package/src/common/migrate/index.js.map +1 -0
- package/src/common/schemas/http-output.schema.d.ts +24 -6
- package/src/common/schemas/index.d.ts +1 -0
- package/src/common/schemas/index.js +1 -0
- package/src/common/schemas/index.js.map +1 -1
- package/src/common/schemas/session-header.schema.d.ts +16 -0
- package/src/common/schemas/session-header.schema.js +42 -0
- package/src/common/schemas/session-header.schema.js.map +1 -0
- package/src/common/tokens/front-mcp.tokens.js +4 -1
- package/src/common/tokens/front-mcp.tokens.js.map +1 -1
- package/src/common/types/options/auth.options.d.ts +233 -3
- package/src/common/types/options/auth.options.js +29 -40
- package/src/common/types/options/auth.options.js.map +1 -1
- package/src/common/types/options/index.d.ts +2 -0
- package/src/common/types/options/index.js +2 -0
- package/src/common/types/options/index.js.map +1 -1
- package/src/common/types/options/redis.options.d.ts +190 -0
- package/src/common/types/options/redis.options.js +191 -0
- package/src/common/types/options/redis.options.js.map +1 -0
- package/src/common/types/options/server-info.options.d.ts +4 -0
- package/src/common/types/options/transport.options.d.ts +148 -0
- package/src/common/types/options/transport.options.js +121 -0
- package/src/common/types/options/transport.options.js.map +1 -0
- package/src/common/utils/global-config.utils.d.ts +36 -0
- package/src/common/utils/global-config.utils.js +44 -0
- package/src/common/utils/global-config.utils.js.map +1 -0
- package/src/common/utils/index.d.ts +1 -0
- package/src/common/utils/index.js +1 -0
- package/src/common/utils/index.js.map +1 -1
- package/src/completion/flows/complete.flow.d.ts +6 -8
- package/src/context/frontmcp-context-storage.d.ts +94 -0
- package/src/context/frontmcp-context-storage.js +183 -0
- package/src/context/frontmcp-context-storage.js.map +1 -0
- package/src/context/frontmcp-context.d.ts +269 -0
- package/src/context/frontmcp-context.js +360 -0
- package/src/context/frontmcp-context.js.map +1 -0
- package/src/context/frontmcp-context.provider.d.ts +43 -0
- package/src/context/frontmcp-context.provider.js +61 -0
- package/src/context/frontmcp-context.provider.js.map +1 -0
- package/src/context/index.d.ts +34 -0
- package/src/context/index.js +64 -0
- package/src/context/index.js.map +1 -0
- package/src/context/request-context-storage.d.ts +89 -0
- package/src/context/request-context-storage.js +183 -0
- package/src/context/request-context-storage.js.map +1 -0
- package/src/context/request-context.d.ts +184 -0
- package/src/context/request-context.js +209 -0
- package/src/context/request-context.js.map +1 -0
- package/src/context/request-context.provider.d.ts +37 -0
- package/src/context/request-context.provider.js +51 -0
- package/src/context/request-context.provider.js.map +1 -0
- package/src/context/session-key.provider.d.ts +45 -0
- package/src/context/session-key.provider.js +65 -0
- package/src/context/session-key.provider.js.map +1 -0
- package/src/context/trace-context.d.ts +43 -0
- package/src/context/trace-context.js +142 -0
- package/src/context/trace-context.js.map +1 -0
- package/src/errors/index.d.ts +1 -1
- package/src/errors/index.js +4 -1
- package/src/errors/index.js.map +1 -1
- package/src/errors/mcp.error.d.ts +16 -0
- package/src/errors/mcp.error.js +29 -1
- package/src/errors/mcp.error.js.map +1 -1
- package/src/flows/flow.instance.d.ts +16 -0
- package/src/flows/flow.instance.js +166 -80
- package/src/flows/flow.instance.js.map +1 -1
- package/src/flows/flow.registry.d.ts +5 -0
- package/src/flows/flow.registry.js +45 -3
- package/src/flows/flow.registry.js.map +1 -1
- package/src/front-mcp/front-mcp.d.ts +12 -0
- package/src/front-mcp/front-mcp.js +22 -3
- package/src/front-mcp/front-mcp.js.map +1 -1
- package/src/front-mcp/front-mcp.providers.d.ts +474 -1
- package/src/front-mcp/front-mcp.providers.js +2 -1
- package/src/front-mcp/front-mcp.providers.js.map +1 -1
- package/src/front-mcp/index.d.ts +1 -0
- package/src/front-mcp/index.js +3 -0
- package/src/front-mcp/index.js.map +1 -1
- package/src/front-mcp/serverless-handler.d.ts +28 -0
- package/src/front-mcp/serverless-handler.js +61 -0
- package/src/front-mcp/serverless-handler.js.map +1 -0
- package/src/hooks/hooks.utils.d.ts +1 -1
- package/src/hooks/hooks.utils.js +10 -3
- package/src/hooks/hooks.utils.js.map +1 -1
- package/src/index.d.ts +9 -5
- package/src/index.js +21 -1
- package/src/index.js.map +1 -1
- package/src/logger/instances/instance.logger.js +0 -1
- package/src/logger/instances/instance.logger.js.map +1 -1
- package/src/logging/flows/set-level.flow.d.ts +6 -8
- package/src/notification/notification.service.js +5 -1
- package/src/notification/notification.service.js.map +1 -1
- package/src/prompt/flows/get-prompt.flow.d.ts +14 -8
- package/src/prompt/flows/prompts-list.flow.d.ts +8 -7
- package/src/provider/provider.registry.d.ts +97 -5
- package/src/provider/provider.registry.js +306 -9
- package/src/provider/provider.registry.js.map +1 -1
- package/src/provider/provider.types.d.ts +21 -3
- package/src/provider/provider.types.js.map +1 -1
- package/src/resource/flows/read-resource.flow.d.ts +8 -9
- package/src/resource/flows/resource-templates-list.flow.d.ts +8 -7
- package/src/resource/flows/resources-list.flow.d.ts +8 -7
- package/src/resource/flows/subscribe-resource.flow.d.ts +6 -8
- package/src/resource/flows/unsubscribe-resource.flow.d.ts +6 -8
- package/src/scope/flows/http.request.flow.js +43 -7
- package/src/scope/flows/http.request.flow.js.map +1 -1
- package/src/scope/scope.instance.js +12 -5
- package/src/scope/scope.instance.js.map +1 -1
- package/src/server/adapters/base.host.adapter.d.ts +9 -0
- package/src/server/adapters/base.host.adapter.js.map +1 -1
- package/src/server/adapters/express.host.adapter.d.ts +12 -0
- package/src/server/adapters/express.host.adapter.js +21 -1
- package/src/server/adapters/express.host.adapter.js.map +1 -1
- package/src/server/server.instance.d.ts +3 -0
- package/src/server/server.instance.js +14 -7
- package/src/server/server.instance.js.map +1 -1
- package/src/store/adapters/store.vercel-kv.adapter.d.ts +86 -0
- package/src/store/adapters/store.vercel-kv.adapter.js +155 -0
- package/src/store/adapters/store.vercel-kv.adapter.js.map +1 -0
- package/src/store/index.d.ts +2 -0
- package/src/store/index.js +2 -0
- package/src/store/index.js.map +1 -1
- package/src/store/store.factory.d.ts +86 -0
- package/src/store/store.factory.js +194 -0
- package/src/store/store.factory.js.map +1 -0
- package/src/tool/flows/call-tool.flow.d.ts +38 -19
- package/src/tool/flows/call-tool.flow.js +240 -194
- package/src/tool/flows/call-tool.flow.js.map +1 -1
- package/src/tool/flows/tools-list.flow.d.ts +14 -17
- package/src/tool/flows/tools-list.flow.js +84 -33
- package/src/tool/flows/tools-list.flow.js.map +1 -1
- package/src/tool/tool.instance.d.ts +1 -4
- package/src/tool/ui/index.d.ts +4 -4
- package/src/tool/ui/index.js +4 -4
- package/src/tool/ui/index.js.map +1 -1
- package/src/tool/ui/platform-adapters.d.ts +2 -2
- package/src/tool/ui/platform-adapters.js +3 -3
- package/src/tool/ui/platform-adapters.js.map +1 -1
- package/src/tool/ui/template-helpers.d.ts +5 -7
- package/src/tool/ui/template-helpers.js +9 -26
- package/src/tool/ui/template-helpers.js.map +1 -1
- package/src/tool/ui/ui-resource.handler.d.ts +1 -1
- package/src/tool/ui/ui-resource.handler.js +5 -5
- package/src/tool/ui/ui-resource.handler.js.map +1 -1
- package/src/transport/adapters/transport.streamable-http.adapter.js +1 -0
- package/src/transport/adapters/transport.streamable-http.adapter.js.map +1 -1
- package/src/transport/flows/handle.sse.flow.js +9 -2
- package/src/transport/flows/handle.sse.flow.js.map +1 -1
- package/src/transport/flows/handle.streamable-http.flow.js +63 -6
- package/src/transport/flows/handle.streamable-http.flow.js.map +1 -1
- package/src/transport/mcp-handlers/complete-request.handler.d.ts +4 -15
- package/src/transport/mcp-handlers/get-prompt-request.handler.d.ts +5 -15
- package/src/transport/mcp-handlers/index.d.ts +67 -195
- package/src/transport/mcp-handlers/initialize-request.handler.js +12 -2
- package/src/transport/mcp-handlers/initialize-request.handler.js.map +1 -1
- package/src/transport/mcp-handlers/list-prompts-request.handler.d.ts +5 -15
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.d.ts +5 -15
- package/src/transport/mcp-handlers/list-resources-request.handler.d.ts +5 -15
- package/src/transport/mcp-handlers/list-tools-request.handler.d.ts +5 -15
- package/src/transport/mcp-handlers/logging-set-level-request.handler.d.ts +3 -14
- package/src/transport/mcp-handlers/read-resource-request.handler.d.ts +4 -15
- package/src/transport/mcp-handlers/subscribe-request.handler.d.ts +3 -14
- package/src/transport/mcp-handlers/unsubscribe-request.handler.d.ts +3 -14
- package/src/transport/transport.registry.d.ts +72 -4
- package/src/transport/transport.registry.js +342 -11
- package/src/transport/transport.registry.js.map +1 -1
- package/src/auth/ui/htmx-templates.js.map +0 -1
- package/src/common/providers/session.provider.d.ts +0 -13
- package/src/common/providers/session.provider.js +0 -27
- package/src/common/providers/session.provider.js.map +0 -1
|
@@ -5,6 +5,7 @@ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
|
5
5
|
const types_js_2 = require("@modelcontextprotocol/sdk/types.js");
|
|
6
6
|
const unsupported_client_version_exception_1 = require("../../exceptions/mcp-exceptions/unsupported-client-version.exception");
|
|
7
7
|
const notification_1 = require("../../notification");
|
|
8
|
+
const session_id_utils_1 = require("../../auth/session/utils/session-id.utils");
|
|
8
9
|
/**
|
|
9
10
|
* Validates that the client's protocol version is a valid date string format.
|
|
10
11
|
* Per MCP spec, older versions should be accepted if supported - version negotiation
|
|
@@ -51,22 +52,31 @@ function initializeRequestHandler({ serverOptions, scope, }) {
|
|
|
51
52
|
// Store client info (name/version) for platform detection
|
|
52
53
|
// and update the session payload with the detected platform type
|
|
53
54
|
if (request.params.clientInfo) {
|
|
54
|
-
//
|
|
55
|
-
|
|
55
|
+
// Try to store in notification service (may fail for HTTP transports without registered server)
|
|
56
|
+
scope.notifications.setClientInfo(sessionId, {
|
|
56
57
|
name: request.params.clientInfo.name,
|
|
57
58
|
version: request.params.clientInfo.version,
|
|
58
59
|
});
|
|
60
|
+
// Detect platform directly from client info (don't rely on setClientInfo return)
|
|
61
|
+
// Use platform detection config from scope if available
|
|
62
|
+
const platformDetectionConfig = scope.metadata.transport?.platformDetection;
|
|
63
|
+
const clientInfoPlatform = (0, notification_1.detectAIPlatform)(request.params.clientInfo, platformDetectionConfig);
|
|
59
64
|
// Prefer capability-based detection (ext-apps) over client info detection
|
|
60
65
|
const finalPlatform = detectedPlatform ?? clientInfoPlatform;
|
|
61
66
|
// Update the session payload with the detected platform type
|
|
62
67
|
// This makes platformType available via ctx.authInfo.sessionIdPayload.platformType
|
|
63
68
|
if (finalPlatform && ctx.authInfo?.sessionIdPayload) {
|
|
64
69
|
ctx.authInfo.sessionIdPayload.platformType = finalPlatform;
|
|
70
|
+
// Persist the platformType to the session cache so subsequent requests can access it
|
|
71
|
+
// This is critical for HTTP transports where sessions are parsed from encrypted headers
|
|
72
|
+
(0, session_id_utils_1.updateSessionPayload)(sessionId, { platformType: finalPlatform });
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
else if (detectedPlatform && ctx.authInfo?.sessionIdPayload) {
|
|
68
76
|
// Update platform even without client info if detected from capabilities
|
|
69
77
|
ctx.authInfo.sessionIdPayload.platformType = detectedPlatform;
|
|
78
|
+
// Persist to session cache
|
|
79
|
+
(0, session_id_utils_1.updateSessionPayload)(sessionId, { platformType: detectedPlatform });
|
|
70
80
|
}
|
|
71
81
|
}
|
|
72
82
|
// MCP Protocol Version Negotiation (per spec):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize-request.handler.js","sourceRoot":"","sources":["../../../../src/transport/mcp-handlers/initialize-request.handler.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"initialize-request.handler.js","sourceRoot":"","sources":["../../../../src/transport/mcp-handlers/initialize-request.handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { InitializeRequestSchema, InitializeRequest, InitializeResult } from '@modelcontextprotocol/sdk/types.js';\nimport { LATEST_PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS } from '@modelcontextprotocol/sdk/types.js';\nimport { McpHandler, McpHandlerOptions } from './mcp-handlers.types';\nimport { UnsupportedClientVersionException } from '../../exceptions/mcp-exceptions/unsupported-client-version.exception';\nimport type { ClientCapabilities } from '../../notification';\nimport { detectPlatformFromCapabilities, detectAIPlatform } from '../../notification';\nimport { updateSessionPayload } from '../../auth/session/utils/session-id.utils';\n\n/**\n * Validates that the client's protocol version is a valid date string format.\n * Per MCP spec, older versions should be accepted if supported - version negotiation\n * determines which version to use, not this guard.\n */\nfunction guardClientVersion(clientVersion: string): void {\n const parsed = new Date(clientVersion);\n if (isNaN(parsed.getTime())) {\n throw UnsupportedClientVersionException.fromVersion(clientVersion);\n }\n // Don't reject older versions - let version negotiation handle it\n}\nexport default function initializeRequestHandler({\n serverOptions,\n scope,\n}: McpHandlerOptions): McpHandler<InitializeRequest, InitializeResult> {\n const logger = scope.logger.child('initialize-handler');\n\n return {\n requestSchema: InitializeRequestSchema,\n handler: async (request, ctx): Promise<InitializeResult> => {\n logger.info('initialize: received request', {\n clientName: request.params.clientInfo?.name,\n clientVersion: request.params.clientInfo?.version,\n protocolVersion: request.params.protocolVersion,\n hasCapabilities: !!request.params.capabilities,\n sessionId: ctx.authInfo?.sessionId?.slice(0, 20),\n });\n\n guardClientVersion(request.params.protocolVersion);\n\n // Store client capabilities and client info from the initialize request\n // The session ID is available in the auth info from the transport\n const sessionId = ctx.authInfo?.sessionId;\n let detectedPlatform: ReturnType<typeof detectPlatformFromCapabilities> = undefined;\n\n if (sessionId) {\n // Store client capabilities if provided\n if (request.params.capabilities) {\n // Map MCP client capabilities to our ClientCapabilities interface\n const clientCapabilities: ClientCapabilities = {\n roots: request.params.capabilities.roots as ClientCapabilities['roots'],\n sampling: request.params.capabilities.sampling as ClientCapabilities['sampling'],\n // Include experimental capabilities for MCP Apps extension detection\n experimental: request.params.capabilities.experimental as ClientCapabilities['experimental'],\n };\n scope.notifications.setClientCapabilities(sessionId, clientCapabilities);\n\n // Try to detect platform from capabilities first (e.g., MCP Apps extension)\n detectedPlatform = detectPlatformFromCapabilities(clientCapabilities);\n }\n\n // Store client info (name/version) for platform detection\n // and update the session payload with the detected platform type\n if (request.params.clientInfo) {\n // Try to store in notification service (may fail for HTTP transports without registered server)\n scope.notifications.setClientInfo(sessionId, {\n name: request.params.clientInfo.name,\n version: request.params.clientInfo.version,\n });\n\n // Detect platform directly from client info (don't rely on setClientInfo return)\n // Use platform detection config from scope if available\n const platformDetectionConfig = scope.metadata.transport?.platformDetection;\n const clientInfoPlatform = detectAIPlatform(request.params.clientInfo, platformDetectionConfig);\n\n // Prefer capability-based detection (ext-apps) over client info detection\n const finalPlatform = detectedPlatform ?? clientInfoPlatform;\n\n // Update the session payload with the detected platform type\n // This makes platformType available via ctx.authInfo.sessionIdPayload.platformType\n if (finalPlatform && ctx.authInfo?.sessionIdPayload) {\n ctx.authInfo.sessionIdPayload.platformType = finalPlatform;\n\n // Persist the platformType to the session cache so subsequent requests can access it\n // This is critical for HTTP transports where sessions are parsed from encrypted headers\n updateSessionPayload(sessionId, { platformType: finalPlatform });\n }\n } else if (detectedPlatform && ctx.authInfo?.sessionIdPayload) {\n // Update platform even without client info if detected from capabilities\n ctx.authInfo.sessionIdPayload.platformType = detectedPlatform;\n\n // Persist to session cache\n updateSessionPayload(sessionId, { platformType: detectedPlatform });\n }\n }\n\n // MCP Protocol Version Negotiation (per spec):\n // \"If the server supports the requested protocol version, it MUST respond with the same version.\n // Otherwise, the server MUST respond with another protocol version it supports.\"\n const requestedVersion = request.params.protocolVersion;\n const protocolVersion = SUPPORTED_PROTOCOL_VERSIONS.includes(requestedVersion)\n ? requestedVersion\n : LATEST_PROTOCOL_VERSION;\n\n const result: InitializeResult = {\n capabilities: serverOptions.capabilities!,\n instructions: serverOptions.instructions,\n serverInfo: {\n name: 'FrontMcpServer',\n version: '0.0.1',\n title: 'FrontMcpServer',\n },\n protocolVersion,\n };\n\n logger.info('initialize: sending response', {\n capabilities: JSON.stringify(result.capabilities),\n protocolVersion: result.protocolVersion,\n serverName: result.serverInfo.name,\n sessionId: ctx.authInfo?.sessionId?.slice(0, 20),\n });\n\n return result;\n },\n };\n}\n"]}
|
|
@@ -3,34 +3,23 @@ import { McpHandlerOptions } from './mcp-handlers.types';
|
|
|
3
3
|
export default function ListPromptsRequestHandler({ scope }: McpHandlerOptions): {
|
|
4
4
|
requestSchema: import("zod").ZodObject<{
|
|
5
5
|
params: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
6
|
-
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
7
|
-
ttl: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodNull]>>;
|
|
8
|
-
pollInterval: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
9
|
-
}, import("zod/v4/core").$loose>>;
|
|
10
6
|
_meta: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
11
7
|
progressToken: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
12
8
|
"io.modelcontextprotocol/related-task": import("zod").ZodOptional<import("zod").ZodObject<{
|
|
13
9
|
taskId: import("zod").ZodString;
|
|
14
|
-
}, import("zod/v4/core").$
|
|
10
|
+
}, import("zod/v4/core").$strip>>;
|
|
15
11
|
}, import("zod/v4/core").$loose>>;
|
|
16
12
|
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
-
}, import("zod/v4/core").$
|
|
13
|
+
}, import("zod/v4/core").$strip>>;
|
|
18
14
|
method: import("zod").ZodLiteral<"prompts/list">;
|
|
19
15
|
}, import("zod/v4/core").$strip>;
|
|
20
16
|
handler: (request: ListPromptsRequest, ctx: import("./mcp-handlers.types").McpRequestHandler<{
|
|
21
17
|
method: "prompts/list";
|
|
22
18
|
params?: {
|
|
23
|
-
[x: string]: unknown;
|
|
24
|
-
task?: {
|
|
25
|
-
[x: string]: unknown;
|
|
26
|
-
ttl?: number | null | undefined;
|
|
27
|
-
pollInterval?: number | undefined;
|
|
28
|
-
} | undefined;
|
|
29
19
|
_meta?: {
|
|
30
20
|
[x: string]: unknown;
|
|
31
21
|
progressToken?: string | number | undefined;
|
|
32
22
|
"io.modelcontextprotocol/related-task"?: {
|
|
33
|
-
[x: string]: unknown;
|
|
34
23
|
taskId: string;
|
|
35
24
|
} | undefined;
|
|
36
25
|
} | undefined;
|
|
@@ -42,8 +31,8 @@ export default function ListPromptsRequestHandler({ scope }: McpHandlerOptions):
|
|
|
42
31
|
[x: string]: unknown;
|
|
43
32
|
_meta?: {
|
|
44
33
|
[x: string]: unknown;
|
|
34
|
+
progressToken?: string | number | undefined;
|
|
45
35
|
"io.modelcontextprotocol/related-task"?: {
|
|
46
|
-
[x: string]: unknown;
|
|
47
36
|
taskId: string;
|
|
48
37
|
} | undefined;
|
|
49
38
|
} | undefined;
|
|
@@ -65,13 +54,14 @@ export default function ListPromptsRequestHandler({ scope }: McpHandlerOptions):
|
|
|
65
54
|
src: string;
|
|
66
55
|
mimeType?: string | undefined;
|
|
67
56
|
sizes?: string[] | undefined;
|
|
57
|
+
theme?: "light" | "dark" | undefined;
|
|
68
58
|
}[] | undefined;
|
|
69
59
|
title?: string | undefined;
|
|
70
60
|
}[];
|
|
71
61
|
_meta?: {
|
|
72
62
|
[x: string]: unknown;
|
|
63
|
+
progressToken?: string | number | undefined;
|
|
73
64
|
"io.modelcontextprotocol/related-task"?: {
|
|
74
|
-
[x: string]: unknown;
|
|
75
65
|
taskId: string;
|
|
76
66
|
} | undefined;
|
|
77
67
|
} | undefined;
|
|
@@ -3,34 +3,23 @@ import { McpHandlerOptions } from './mcp-handlers.types';
|
|
|
3
3
|
export default function listResourceTemplatesRequestHandler({ scope }: McpHandlerOptions): {
|
|
4
4
|
requestSchema: import("zod").ZodObject<{
|
|
5
5
|
params: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
6
|
-
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
7
|
-
ttl: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodNull]>>;
|
|
8
|
-
pollInterval: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
9
|
-
}, import("zod/v4/core").$loose>>;
|
|
10
6
|
_meta: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
11
7
|
progressToken: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
12
8
|
"io.modelcontextprotocol/related-task": import("zod").ZodOptional<import("zod").ZodObject<{
|
|
13
9
|
taskId: import("zod").ZodString;
|
|
14
|
-
}, import("zod/v4/core").$
|
|
10
|
+
}, import("zod/v4/core").$strip>>;
|
|
15
11
|
}, import("zod/v4/core").$loose>>;
|
|
16
12
|
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
-
}, import("zod/v4/core").$
|
|
13
|
+
}, import("zod/v4/core").$strip>>;
|
|
18
14
|
method: import("zod").ZodLiteral<"resources/templates/list">;
|
|
19
15
|
}, import("zod/v4/core").$strip>;
|
|
20
16
|
handler: (request: ListResourceTemplatesRequest, ctx: import("./mcp-handlers.types").McpRequestHandler<{
|
|
21
17
|
method: "resources/templates/list";
|
|
22
18
|
params?: {
|
|
23
|
-
[x: string]: unknown;
|
|
24
|
-
task?: {
|
|
25
|
-
[x: string]: unknown;
|
|
26
|
-
ttl?: number | null | undefined;
|
|
27
|
-
pollInterval?: number | undefined;
|
|
28
|
-
} | undefined;
|
|
29
19
|
_meta?: {
|
|
30
20
|
[x: string]: unknown;
|
|
31
21
|
progressToken?: string | number | undefined;
|
|
32
22
|
"io.modelcontextprotocol/related-task"?: {
|
|
33
|
-
[x: string]: unknown;
|
|
34
23
|
taskId: string;
|
|
35
24
|
} | undefined;
|
|
36
25
|
} | undefined;
|
|
@@ -42,8 +31,8 @@ export default function listResourceTemplatesRequestHandler({ scope }: McpHandle
|
|
|
42
31
|
[x: string]: unknown;
|
|
43
32
|
_meta?: {
|
|
44
33
|
[x: string]: unknown;
|
|
34
|
+
progressToken?: string | number | undefined;
|
|
45
35
|
"io.modelcontextprotocol/related-task"?: {
|
|
46
|
-
[x: string]: unknown;
|
|
47
36
|
taskId: string;
|
|
48
37
|
} | undefined;
|
|
49
38
|
} | undefined;
|
|
@@ -67,13 +56,14 @@ export default function listResourceTemplatesRequestHandler({ scope }: McpHandle
|
|
|
67
56
|
src: string;
|
|
68
57
|
mimeType?: string | undefined;
|
|
69
58
|
sizes?: string[] | undefined;
|
|
59
|
+
theme?: "light" | "dark" | undefined;
|
|
70
60
|
}[] | undefined;
|
|
71
61
|
title?: string | undefined;
|
|
72
62
|
}[];
|
|
73
63
|
_meta?: {
|
|
74
64
|
[x: string]: unknown;
|
|
65
|
+
progressToken?: string | number | undefined;
|
|
75
66
|
"io.modelcontextprotocol/related-task"?: {
|
|
76
|
-
[x: string]: unknown;
|
|
77
67
|
taskId: string;
|
|
78
68
|
} | undefined;
|
|
79
69
|
} | undefined;
|
|
@@ -3,34 +3,23 @@ import { McpHandlerOptions } from './mcp-handlers.types';
|
|
|
3
3
|
export default function listResourcesRequestHandler({ scope }: McpHandlerOptions): {
|
|
4
4
|
requestSchema: import("zod").ZodObject<{
|
|
5
5
|
params: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
6
|
-
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
7
|
-
ttl: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodNull]>>;
|
|
8
|
-
pollInterval: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
9
|
-
}, import("zod/v4/core").$loose>>;
|
|
10
6
|
_meta: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
11
7
|
progressToken: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
12
8
|
"io.modelcontextprotocol/related-task": import("zod").ZodOptional<import("zod").ZodObject<{
|
|
13
9
|
taskId: import("zod").ZodString;
|
|
14
|
-
}, import("zod/v4/core").$
|
|
10
|
+
}, import("zod/v4/core").$strip>>;
|
|
15
11
|
}, import("zod/v4/core").$loose>>;
|
|
16
12
|
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
-
}, import("zod/v4/core").$
|
|
13
|
+
}, import("zod/v4/core").$strip>>;
|
|
18
14
|
method: import("zod").ZodLiteral<"resources/list">;
|
|
19
15
|
}, import("zod/v4/core").$strip>;
|
|
20
16
|
handler: (request: ListResourcesRequest, ctx: import("./mcp-handlers.types").McpRequestHandler<{
|
|
21
17
|
method: "resources/list";
|
|
22
18
|
params?: {
|
|
23
|
-
[x: string]: unknown;
|
|
24
|
-
task?: {
|
|
25
|
-
[x: string]: unknown;
|
|
26
|
-
ttl?: number | null | undefined;
|
|
27
|
-
pollInterval?: number | undefined;
|
|
28
|
-
} | undefined;
|
|
29
19
|
_meta?: {
|
|
30
20
|
[x: string]: unknown;
|
|
31
21
|
progressToken?: string | number | undefined;
|
|
32
22
|
"io.modelcontextprotocol/related-task"?: {
|
|
33
|
-
[x: string]: unknown;
|
|
34
23
|
taskId: string;
|
|
35
24
|
} | undefined;
|
|
36
25
|
} | undefined;
|
|
@@ -42,8 +31,8 @@ export default function listResourcesRequestHandler({ scope }: McpHandlerOptions
|
|
|
42
31
|
[x: string]: unknown;
|
|
43
32
|
_meta?: {
|
|
44
33
|
[x: string]: unknown;
|
|
34
|
+
progressToken?: string | number | undefined;
|
|
45
35
|
"io.modelcontextprotocol/related-task"?: {
|
|
46
|
-
[x: string]: unknown;
|
|
47
36
|
taskId: string;
|
|
48
37
|
} | undefined;
|
|
49
38
|
} | undefined;
|
|
@@ -67,13 +56,14 @@ export default function listResourcesRequestHandler({ scope }: McpHandlerOptions
|
|
|
67
56
|
src: string;
|
|
68
57
|
mimeType?: string | undefined;
|
|
69
58
|
sizes?: string[] | undefined;
|
|
59
|
+
theme?: "light" | "dark" | undefined;
|
|
70
60
|
}[] | undefined;
|
|
71
61
|
title?: string | undefined;
|
|
72
62
|
}[];
|
|
73
63
|
_meta?: {
|
|
74
64
|
[x: string]: unknown;
|
|
65
|
+
progressToken?: string | number | undefined;
|
|
75
66
|
"io.modelcontextprotocol/related-task"?: {
|
|
76
|
-
[x: string]: unknown;
|
|
77
67
|
taskId: string;
|
|
78
68
|
} | undefined;
|
|
79
69
|
} | undefined;
|
|
@@ -3,34 +3,23 @@ import { McpHandlerOptions } from './mcp-handlers.types';
|
|
|
3
3
|
export default function ListToolsRequestHandler({ scope, }: McpHandlerOptions): {
|
|
4
4
|
requestSchema: import("zod").ZodObject<{
|
|
5
5
|
params: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
6
|
-
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
7
|
-
ttl: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodNull]>>;
|
|
8
|
-
pollInterval: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
9
|
-
}, import("zod/v4/core").$loose>>;
|
|
10
6
|
_meta: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
11
7
|
progressToken: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
12
8
|
"io.modelcontextprotocol/related-task": import("zod").ZodOptional<import("zod").ZodObject<{
|
|
13
9
|
taskId: import("zod").ZodString;
|
|
14
|
-
}, import("zod/v4/core").$
|
|
10
|
+
}, import("zod/v4/core").$strip>>;
|
|
15
11
|
}, import("zod/v4/core").$loose>>;
|
|
16
12
|
cursor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
-
}, import("zod/v4/core").$
|
|
13
|
+
}, import("zod/v4/core").$strip>>;
|
|
18
14
|
method: import("zod").ZodLiteral<"tools/list">;
|
|
19
15
|
}, import("zod/v4/core").$strip>;
|
|
20
16
|
handler: (request: ListToolsRequest, ctx: import("./mcp-handlers.types").McpRequestHandler<{
|
|
21
17
|
method: "tools/list";
|
|
22
18
|
params?: {
|
|
23
|
-
[x: string]: unknown;
|
|
24
|
-
task?: {
|
|
25
|
-
[x: string]: unknown;
|
|
26
|
-
ttl?: number | null | undefined;
|
|
27
|
-
pollInterval?: number | undefined;
|
|
28
|
-
} | undefined;
|
|
29
19
|
_meta?: {
|
|
30
20
|
[x: string]: unknown;
|
|
31
21
|
progressToken?: string | number | undefined;
|
|
32
22
|
"io.modelcontextprotocol/related-task"?: {
|
|
33
|
-
[x: string]: unknown;
|
|
34
23
|
taskId: string;
|
|
35
24
|
} | undefined;
|
|
36
25
|
} | undefined;
|
|
@@ -42,8 +31,8 @@ export default function ListToolsRequestHandler({ scope, }: McpHandlerOptions):
|
|
|
42
31
|
[x: string]: unknown;
|
|
43
32
|
_meta?: {
|
|
44
33
|
[x: string]: unknown;
|
|
34
|
+
progressToken?: string | number | undefined;
|
|
45
35
|
"io.modelcontextprotocol/related-task"?: {
|
|
46
|
-
[x: string]: unknown;
|
|
47
36
|
taskId: string;
|
|
48
37
|
} | undefined;
|
|
49
38
|
} | undefined;
|
|
@@ -80,13 +69,14 @@ export default function ListToolsRequestHandler({ scope, }: McpHandlerOptions):
|
|
|
80
69
|
src: string;
|
|
81
70
|
mimeType?: string | undefined;
|
|
82
71
|
sizes?: string[] | undefined;
|
|
72
|
+
theme?: "light" | "dark" | undefined;
|
|
83
73
|
}[] | undefined;
|
|
84
74
|
title?: string | undefined;
|
|
85
75
|
}[];
|
|
86
76
|
_meta?: {
|
|
87
77
|
[x: string]: unknown;
|
|
78
|
+
progressToken?: string | number | undefined;
|
|
88
79
|
"io.modelcontextprotocol/related-task"?: {
|
|
89
|
-
[x: string]: unknown;
|
|
90
80
|
taskId: string;
|
|
91
81
|
} | undefined;
|
|
92
82
|
} | undefined;
|
|
@@ -9,15 +9,11 @@ export default function LoggingSetLevelRequestHandler({ scope }: McpHandlerOptio
|
|
|
9
9
|
requestSchema: import("zod").ZodObject<{
|
|
10
10
|
method: import("zod").ZodLiteral<"logging/setLevel">;
|
|
11
11
|
params: import("zod").ZodObject<{
|
|
12
|
-
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
13
|
-
ttl: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodNull]>>;
|
|
14
|
-
pollInterval: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
15
|
-
}, import("zod/v4/core").$loose>>;
|
|
16
12
|
_meta: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
17
13
|
progressToken: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
18
14
|
"io.modelcontextprotocol/related-task": import("zod").ZodOptional<import("zod").ZodObject<{
|
|
19
15
|
taskId: import("zod").ZodString;
|
|
20
|
-
}, import("zod/v4/core").$
|
|
16
|
+
}, import("zod/v4/core").$strip>>;
|
|
21
17
|
}, import("zod/v4/core").$loose>>;
|
|
22
18
|
level: import("zod").ZodEnum<{
|
|
23
19
|
error: "error";
|
|
@@ -29,23 +25,16 @@ export default function LoggingSetLevelRequestHandler({ scope }: McpHandlerOptio
|
|
|
29
25
|
alert: "alert";
|
|
30
26
|
emergency: "emergency";
|
|
31
27
|
}>;
|
|
32
|
-
}, import("zod/v4/core").$
|
|
28
|
+
}, import("zod/v4/core").$strip>;
|
|
33
29
|
}, import("zod/v4/core").$strip>;
|
|
34
30
|
handler: (request: SetLevelRequest, ctx: import("./mcp-handlers.types").McpRequestHandler<{
|
|
35
31
|
method: "logging/setLevel";
|
|
36
32
|
params: {
|
|
37
|
-
[x: string]: unknown;
|
|
38
33
|
level: "error" | "debug" | "info" | "warning" | "notice" | "critical" | "alert" | "emergency";
|
|
39
|
-
task?: {
|
|
40
|
-
[x: string]: unknown;
|
|
41
|
-
ttl?: number | null | undefined;
|
|
42
|
-
pollInterval?: number | undefined;
|
|
43
|
-
} | undefined;
|
|
44
34
|
_meta?: {
|
|
45
35
|
[x: string]: unknown;
|
|
46
36
|
progressToken?: string | number | undefined;
|
|
47
37
|
"io.modelcontextprotocol/related-task"?: {
|
|
48
|
-
[x: string]: unknown;
|
|
49
38
|
taskId: string;
|
|
50
39
|
} | undefined;
|
|
51
40
|
} | undefined;
|
|
@@ -56,8 +45,8 @@ export default function LoggingSetLevelRequestHandler({ scope }: McpHandlerOptio
|
|
|
56
45
|
[x: string]: unknown;
|
|
57
46
|
_meta?: {
|
|
58
47
|
[x: string]: unknown;
|
|
48
|
+
progressToken?: string | number | undefined;
|
|
59
49
|
"io.modelcontextprotocol/related-task"?: {
|
|
60
|
-
[x: string]: unknown;
|
|
61
50
|
taskId: string;
|
|
62
51
|
} | undefined;
|
|
63
52
|
} | undefined;
|
|
@@ -4,34 +4,23 @@ export default function readResourceRequestHandler({ scope }: McpHandlerOptions)
|
|
|
4
4
|
requestSchema: import("zod").ZodObject<{
|
|
5
5
|
method: import("zod").ZodLiteral<"resources/read">;
|
|
6
6
|
params: import("zod").ZodObject<{
|
|
7
|
-
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
8
|
-
ttl: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodNull]>>;
|
|
9
|
-
pollInterval: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
10
|
-
}, import("zod/v4/core").$loose>>;
|
|
11
7
|
_meta: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
12
8
|
progressToken: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
13
9
|
"io.modelcontextprotocol/related-task": import("zod").ZodOptional<import("zod").ZodObject<{
|
|
14
10
|
taskId: import("zod").ZodString;
|
|
15
|
-
}, import("zod/v4/core").$
|
|
11
|
+
}, import("zod/v4/core").$strip>>;
|
|
16
12
|
}, import("zod/v4/core").$loose>>;
|
|
17
13
|
uri: import("zod").ZodString;
|
|
18
|
-
}, import("zod/v4/core").$
|
|
14
|
+
}, import("zod/v4/core").$strip>;
|
|
19
15
|
}, import("zod/v4/core").$strip>;
|
|
20
16
|
handler: (request: ReadResourceRequest, ctx: import("./mcp-handlers.types").McpRequestHandler<{
|
|
21
17
|
method: "resources/read";
|
|
22
18
|
params: {
|
|
23
|
-
[x: string]: unknown;
|
|
24
19
|
uri: string;
|
|
25
|
-
task?: {
|
|
26
|
-
[x: string]: unknown;
|
|
27
|
-
ttl?: number | null | undefined;
|
|
28
|
-
pollInterval?: number | undefined;
|
|
29
|
-
} | undefined;
|
|
30
20
|
_meta?: {
|
|
31
21
|
[x: string]: unknown;
|
|
32
22
|
progressToken?: string | number | undefined;
|
|
33
23
|
"io.modelcontextprotocol/related-task"?: {
|
|
34
|
-
[x: string]: unknown;
|
|
35
24
|
taskId: string;
|
|
36
25
|
} | undefined;
|
|
37
26
|
} | undefined;
|
|
@@ -42,8 +31,8 @@ export default function readResourceRequestHandler({ scope }: McpHandlerOptions)
|
|
|
42
31
|
[x: string]: unknown;
|
|
43
32
|
_meta?: {
|
|
44
33
|
[x: string]: unknown;
|
|
34
|
+
progressToken?: string | number | undefined;
|
|
45
35
|
"io.modelcontextprotocol/related-task"?: {
|
|
46
|
-
[x: string]: unknown;
|
|
47
36
|
taskId: string;
|
|
48
37
|
} | undefined;
|
|
49
38
|
} | undefined;
|
|
@@ -63,8 +52,8 @@ export default function readResourceRequestHandler({ scope }: McpHandlerOptions)
|
|
|
63
52
|
})[];
|
|
64
53
|
_meta?: {
|
|
65
54
|
[x: string]: unknown;
|
|
55
|
+
progressToken?: string | number | undefined;
|
|
66
56
|
"io.modelcontextprotocol/related-task"?: {
|
|
67
|
-
[x: string]: unknown;
|
|
68
57
|
taskId: string;
|
|
69
58
|
} | undefined;
|
|
70
59
|
} | undefined;
|
|
@@ -9,34 +9,23 @@ export default function SubscribeRequestHandler({ scope }: McpHandlerOptions): {
|
|
|
9
9
|
requestSchema: import("zod").ZodObject<{
|
|
10
10
|
method: import("zod").ZodLiteral<"resources/subscribe">;
|
|
11
11
|
params: import("zod").ZodObject<{
|
|
12
|
-
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
13
|
-
ttl: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodNull]>>;
|
|
14
|
-
pollInterval: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
15
|
-
}, import("zod/v4/core").$loose>>;
|
|
16
12
|
_meta: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
17
13
|
progressToken: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
18
14
|
"io.modelcontextprotocol/related-task": import("zod").ZodOptional<import("zod").ZodObject<{
|
|
19
15
|
taskId: import("zod").ZodString;
|
|
20
|
-
}, import("zod/v4/core").$
|
|
16
|
+
}, import("zod/v4/core").$strip>>;
|
|
21
17
|
}, import("zod/v4/core").$loose>>;
|
|
22
18
|
uri: import("zod").ZodString;
|
|
23
|
-
}, import("zod/v4/core").$
|
|
19
|
+
}, import("zod/v4/core").$strip>;
|
|
24
20
|
}, import("zod/v4/core").$strip>;
|
|
25
21
|
handler: (request: SubscribeRequest, ctx: import("./mcp-handlers.types").McpRequestHandler<{
|
|
26
22
|
method: "resources/subscribe";
|
|
27
23
|
params: {
|
|
28
|
-
[x: string]: unknown;
|
|
29
24
|
uri: string;
|
|
30
|
-
task?: {
|
|
31
|
-
[x: string]: unknown;
|
|
32
|
-
ttl?: number | null | undefined;
|
|
33
|
-
pollInterval?: number | undefined;
|
|
34
|
-
} | undefined;
|
|
35
25
|
_meta?: {
|
|
36
26
|
[x: string]: unknown;
|
|
37
27
|
progressToken?: string | number | undefined;
|
|
38
28
|
"io.modelcontextprotocol/related-task"?: {
|
|
39
|
-
[x: string]: unknown;
|
|
40
29
|
taskId: string;
|
|
41
30
|
} | undefined;
|
|
42
31
|
} | undefined;
|
|
@@ -47,8 +36,8 @@ export default function SubscribeRequestHandler({ scope }: McpHandlerOptions): {
|
|
|
47
36
|
[x: string]: unknown;
|
|
48
37
|
_meta?: {
|
|
49
38
|
[x: string]: unknown;
|
|
39
|
+
progressToken?: string | number | undefined;
|
|
50
40
|
"io.modelcontextprotocol/related-task"?: {
|
|
51
|
-
[x: string]: unknown;
|
|
52
41
|
taskId: string;
|
|
53
42
|
} | undefined;
|
|
54
43
|
} | undefined;
|
|
@@ -9,34 +9,23 @@ export default function UnsubscribeRequestHandler({ scope }: McpHandlerOptions):
|
|
|
9
9
|
requestSchema: import("zod").ZodObject<{
|
|
10
10
|
method: import("zod").ZodLiteral<"resources/unsubscribe">;
|
|
11
11
|
params: import("zod").ZodObject<{
|
|
12
|
-
task: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
13
|
-
ttl: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodNumber, import("zod").ZodNull]>>;
|
|
14
|
-
pollInterval: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
15
|
-
}, import("zod/v4/core").$loose>>;
|
|
16
12
|
_meta: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
17
13
|
progressToken: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodNumber]>>;
|
|
18
14
|
"io.modelcontextprotocol/related-task": import("zod").ZodOptional<import("zod").ZodObject<{
|
|
19
15
|
taskId: import("zod").ZodString;
|
|
20
|
-
}, import("zod/v4/core").$
|
|
16
|
+
}, import("zod/v4/core").$strip>>;
|
|
21
17
|
}, import("zod/v4/core").$loose>>;
|
|
22
18
|
uri: import("zod").ZodString;
|
|
23
|
-
}, import("zod/v4/core").$
|
|
19
|
+
}, import("zod/v4/core").$strip>;
|
|
24
20
|
}, import("zod/v4/core").$strip>;
|
|
25
21
|
handler: (request: UnsubscribeRequest, ctx: import("./mcp-handlers.types").McpRequestHandler<{
|
|
26
22
|
method: "resources/unsubscribe";
|
|
27
23
|
params: {
|
|
28
|
-
[x: string]: unknown;
|
|
29
24
|
uri: string;
|
|
30
|
-
task?: {
|
|
31
|
-
[x: string]: unknown;
|
|
32
|
-
ttl?: number | null | undefined;
|
|
33
|
-
pollInterval?: number | undefined;
|
|
34
|
-
} | undefined;
|
|
35
25
|
_meta?: {
|
|
36
26
|
[x: string]: unknown;
|
|
37
27
|
progressToken?: string | number | undefined;
|
|
38
28
|
"io.modelcontextprotocol/related-task"?: {
|
|
39
|
-
[x: string]: unknown;
|
|
40
29
|
taskId: string;
|
|
41
30
|
} | undefined;
|
|
42
31
|
} | undefined;
|
|
@@ -47,8 +36,8 @@ export default function UnsubscribeRequestHandler({ scope }: McpHandlerOptions):
|
|
|
47
36
|
[x: string]: unknown;
|
|
48
37
|
_meta?: {
|
|
49
38
|
[x: string]: unknown;
|
|
39
|
+
progressToken?: string | number | undefined;
|
|
50
40
|
"io.modelcontextprotocol/related-task"?: {
|
|
51
|
-
[x: string]: unknown;
|
|
52
41
|
taskId: string;
|
|
53
42
|
} | undefined;
|
|
54
43
|
} | undefined;
|