/** * MCP Protocol Version Registry. * * Single source of truth for mapping MCP protocol versions to their feature sets. * All downstream code should use feature flags from this module, never version strings directly. * * Supported versions: * - 2024-11-05: Original MCP spec (tools, resources, prompts, logging, pagination, sampling) * - 2025-03-26: Tool annotations, entity titles, completions, resource annotations * - 2025-06-18: Structured output (outputSchema), server instructions, HTTP version header * - 2025-11-25: Tasks, icons, extensions framework */ export declare const MCP_PROTOCOL_VERSIONS: readonly ["2024-11-05", "2025-03-26", "2025-06-18", "2025-11-25"]; export type MCPProtocolVersion = (typeof MCP_PROTOCOL_VERSIONS)[number]; /** * Feature flags for version-gated behavior. * Each flag indicates whether a feature is available at a given protocol version. */ export interface MCPFeatureFlags { /** Tool annotations (readOnlyHint, destructiveHint, etc.) — 2025-03-26+ */ toolAnnotations: boolean; /** Entity title fields (tool.title, prompt.title, resource.title) — 2025-03-26+ */ entityTitles: boolean; /** Completions capability — 2025-03-26+ */ completions: boolean; /** Resource annotations (audience, priority) — 2025-03-26+ */ resourceAnnotations: boolean; /** Structured output (outputSchema, structuredContent) — 2025-06-18+ */ structuredOutput: boolean; /** Server instructions field — 2025-06-18+ */ serverInstructions: boolean; /** MCP-Protocol-Version HTTP header required — 2025-06-18+ */ httpVersionHeader: boolean; /** Tasks capability — 2025-11-25+ */ tasks: boolean; /** Icons metadata — 2025-11-25+ */ icons: boolean; } /** * Type guard: check if a string is a known MCP protocol version. */ export declare function isKnownProtocolVersion(version: string): version is MCPProtocolVersion; /** * Get feature flags for a given protocol version. * * - Known versions return their exact feature set. * - Unknown versions that sort before the oldest known version get the oldest flags. * - Unknown versions that sort after the latest known version get the latest flags. */ export declare function getFeatureFlags(version: string): MCPFeatureFlags; /** * Get the AND-intersection of feature flags for two versions. * A feature is only included if both versions support it. * Used when comparing baselines that may have been created with different protocol versions. */ export declare function getSharedFeatureFlags(v1: string, v2: string): MCPFeatureFlags; /** * Get the protocol version that introduced a specific feature. */ export declare function getFeatureIntroducedVersion(feature: keyof MCPFeatureFlags): MCPProtocolVersion; /** * Get a human-readable list of features that are NOT supported at a given version * but ARE supported at the latest version. Useful for CLI display. */ export declare function getExcludedFeatureNames(version: string): string[]; //# sourceMappingURL=version-registry.d.ts.map