MCP Server Framework - v1.0.0
    Preparing search index...

    Variable configFileSchemaConst

    configFileSchema: ZodObject<
        {
            auth: ZodOptional<
                ZodObject<
                    {
                        required_scopes: ZodOptional<ZodArray<ZodString, "many">>;
                        resource_metadata_url: ZodOptional<ZodString>;
                    },
                    "strip",
                    ZodTypeAny,
                    { required_scopes?: string[]; resource_metadata_url?: string },
                    { required_scopes?: string[]; resource_metadata_url?: string },
                >,
            >;
            logging: ZodOptional<
                ZodObject<
                    {
                        component: ZodOptional<ZodBoolean>;
                        dir: ZodOptional<ZodString>;
                        format: ZodOptional<ZodEnum<["text", "json"]>>;
                        level: ZodOptional<
                            ZodEnum<["trace", "debug", "info", "warn", "error"]>,
                        >;
                        max_file_size: ZodOptional<ZodString>;
                        max_files: ZodOptional<ZodNumber>;
                        retention_days: ZodOptional<ZodNumber>;
                        timestamp: ZodOptional<ZodBoolean>;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        component?: boolean;
                        dir?: string;
                        format?: "text"
                        | "json";
                        level?: "error" | "trace" | "debug" | "info" | "warn";
                        max_file_size?: string;
                        max_files?: number;
                        retention_days?: number;
                        timestamp?: boolean;
                    },
                    {
                        component?: boolean;
                        dir?: string;
                        format?: "text"
                        | "json";
                        level?: "error" | "trace" | "debug" | "info" | "warn";
                        max_file_size?: string;
                        max_files?: number;
                        retention_days?: number;
                        timestamp?: boolean;
                    },
                >,
            >;
            security: ZodOptional<
                ZodObject<
                    {
                        allowed_hosts: ZodOptional<ZodArray<ZodString, "many">>;
                        body_size_limit: ZodOptional<ZodString>;
                        cors_credentials: ZodOptional<ZodBoolean>;
                        cors_origin: ZodOptional<ZodArray<ZodString, "many">>;
                        helmet_csp: ZodOptional<ZodString>;
                        helmet_frame_options: ZodOptional<
                            ZodEnum<["DENY", "SAMEORIGIN", "false"]>,
                        >;
                        helmet_hsts: ZodOptional<ZodBoolean>;
                        rate_limit_max: ZodOptional<ZodNumber>;
                        rate_limit_window_ms: ZodOptional<ZodNumber>;
                        trust_proxy: ZodOptional<ZodUnion<[ZodNumber, ZodString]>>;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        allowed_hosts?: string[];
                        body_size_limit?: string;
                        cors_credentials?: boolean;
                        cors_origin?: string[];
                        helmet_csp?: string;
                        helmet_frame_options?: "DENY"
                        | "SAMEORIGIN"
                        | "false";
                        helmet_hsts?: boolean;
                        rate_limit_max?: number;
                        rate_limit_window_ms?: number;
                        trust_proxy?: string | number;
                    },
                    {
                        allowed_hosts?: string[];
                        body_size_limit?: string;
                        cors_credentials?: boolean;
                        cors_origin?: string[];
                        helmet_csp?: string;
                        helmet_frame_options?: "DENY"
                        | "SAMEORIGIN"
                        | "false";
                        helmet_hsts?: boolean;
                        rate_limit_max?: number;
                        rate_limit_window_ms?: number;
                        trust_proxy?: string | number;
                    },
                >,
            >;
            session: ZodOptional<
                ZodObject<
                    {
                        max_sessions: ZodOptional<ZodNumber>;
                        max_sse_sessions: ZodOptional<ZodNumber>;
                        max_streamable_http_sessions: ZodOptional<ZodNumber>;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        max_sessions?: number;
                        max_sse_sessions?: number;
                        max_streamable_http_sessions?: number;
                    },
                    {
                        max_sessions?: number;
                        max_sse_sessions?: number;
                        max_streamable_http_sessions?: number;
                    },
                >,
            >;
            telemetry: ZodOptional<
                ZodObject<
                    {
                        enabled: ZodOptional<ZodBoolean>;
                        exporter_endpoint: ZodOptional<ZodString>;
                        log_level: ZodOptional<ZodString>;
                        logs_exporter: ZodOptional<ZodString>;
                        metric_export_interval: ZodOptional<ZodNumber>;
                        metrics_exporter: ZodOptional<ZodString>;
                        service_name: ZodOptional<ZodString>;
                        traces_exporter: ZodOptional<ZodString>;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        enabled?: boolean;
                        exporter_endpoint?: string;
                        log_level?: string;
                        logs_exporter?: string;
                        metric_export_interval?: number;
                        metrics_exporter?: string;
                        service_name?: string;
                        traces_exporter?: string;
                    },
                    {
                        enabled?: boolean;
                        exporter_endpoint?: string;
                        log_level?: string;
                        logs_exporter?: string;
                        metric_export_interval?: number;
                        metrics_exporter?: string;
                        service_name?: string;
                        traces_exporter?: string;
                    },
                >,
            >;
            transport: ZodOptional<
                ZodObject<
                    {
                        host: ZodOptional<ZodString>;
                        json_response: ZodOptional<ZodBoolean>;
                        mode: ZodOptional<ZodEnum<["stdio", "http", "https"]>>;
                        port: ZodOptional<ZodNumber>;
                        sse_enabled: ZodOptional<ZodBoolean>;
                        stateless: ZodOptional<ZodBoolean>;
                        tls: ZodOptional<
                            ZodOptional<
                                ZodObject<
                                    {
                                        ca_path: ZodOptional<ZodString>;
                                        cert_path: ZodOptional<ZodString>;
                                        key_path: ZodOptional<ZodString>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    { ca_path?: string; cert_path?: string; key_path?: string },
                                    { ca_path?: string; cert_path?: string; key_path?: string },
                                >,
                            >,
                        >;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        host?: string;
                        json_response?: boolean;
                        mode?: "http"
                        | "stdio"
                        | "https";
                        port?: number;
                        sse_enabled?: boolean;
                        stateless?: boolean;
                        tls?: { ca_path?: string; cert_path?: string; key_path?: string };
                    },
                    {
                        host?: string;
                        json_response?: boolean;
                        mode?: "http"
                        | "stdio"
                        | "https";
                        port?: number;
                        sse_enabled?: boolean;
                        stateless?: boolean;
                        tls?: { ca_path?: string; cert_path?: string; key_path?: string };
                    },
                >,
            >;
        },
        "strip",
        ZodTypeAny,
        {
            auth?: { required_scopes?: string[]; resource_metadata_url?: string };
            logging?: {
                component?: boolean;
                dir?: string;
                format?: "text" | "json";
                level?: "error" | "trace" | "debug" | "info" | "warn";
                max_file_size?: string;
                max_files?: number;
                retention_days?: number;
                timestamp?: boolean;
            };
            security?: {
                allowed_hosts?: string[];
                body_size_limit?: string;
                cors_credentials?: boolean;
                cors_origin?: string[];
                helmet_csp?: string;
                helmet_frame_options?: "DENY"
                | "SAMEORIGIN"
                | "false";
                helmet_hsts?: boolean;
                rate_limit_max?: number;
                rate_limit_window_ms?: number;
                trust_proxy?: string | number;
            };
            session?: {
                max_sessions?: number;
                max_sse_sessions?: number;
                max_streamable_http_sessions?: number;
            };
            telemetry?: {
                enabled?: boolean;
                exporter_endpoint?: string;
                log_level?: string;
                logs_exporter?: string;
                metric_export_interval?: number;
                metrics_exporter?: string;
                service_name?: string;
                traces_exporter?: string;
            };
            transport?: {
                host?: string;
                json_response?: boolean;
                mode?: "http"
                | "stdio"
                | "https";
                port?: number;
                sse_enabled?: boolean;
                stateless?: boolean;
                tls?: { ca_path?: string; cert_path?: string; key_path?: string };
            };
        },
        {
            auth?: { required_scopes?: string[]; resource_metadata_url?: string };
            logging?: {
                component?: boolean;
                dir?: string;
                format?: "text" | "json";
                level?: "error" | "trace" | "debug" | "info" | "warn";
                max_file_size?: string;
                max_files?: number;
                retention_days?: number;
                timestamp?: boolean;
            };
            security?: {
                allowed_hosts?: string[];
                body_size_limit?: string;
                cors_credentials?: boolean;
                cors_origin?: string[];
                helmet_csp?: string;
                helmet_frame_options?: "DENY"
                | "SAMEORIGIN"
                | "false";
                helmet_hsts?: boolean;
                rate_limit_max?: number;
                rate_limit_window_ms?: number;
                trust_proxy?: string | number;
            };
            session?: {
                max_sessions?: number;
                max_sse_sessions?: number;
                max_streamable_http_sessions?: number;
            };
            telemetry?: {
                enabled?: boolean;
                exporter_endpoint?: string;
                log_level?: string;
                logs_exporter?: string;
                metric_export_interval?: number;
                metrics_exporter?: string;
                service_name?: string;
                traces_exporter?: string;
            };
            transport?: {
                host?: string;
                json_response?: boolean;
                mode?: "http"
                | "stdio"
                | "https";
                port?: number;
                sse_enabled?: boolean;
                stateless?: boolean;
                tls?: { ca_path?: string; cert_path?: string; key_path?: string };
            };
        },
    > = ...

    Config file root schema.

    Nested, section-based structure that maps to FrameworkEnvConfig. .strict() is intentionally NOT used — unknown keys are stripped during parsing and surfaced as warnings by the loader, so typos are visible but don't prevent the server from starting.

    Derived from CONFIG_FILE_SECTIONS to avoid duplicate section listings (DRY).

    [transport]
    mode = "http"
    port = 3000

    [logging]
    level = "debug"
    format = "json"
    transport:
    mode: http
    port: 3000
    logging:
    level: debug