This is the documentation for v2 — looking for the v1 documentation?
Skip to content

MCP TypeScript SDK (V2) / @modelcontextprotocol/client / shimsBrowser

shimsBrowser

Classes

DefaultJsonSchemaValidator

Defined in: packages/core-internal/src/validators/cfWorkerProvider.ts:51

@cfworker/json-schema-backed JSON Schema validator. See @modelcontextprotocol/{client,server}/validators/cf-worker for the customisation entry point.

Default dispatches on the schema's declared dialect: no $schema or 2020-12 → '2020-12' (SEP-1613); 2019-09 → '2019-09'; draft-07 or draft-06 → '7'. Schemas declaring any other $schema are rejected with a plain Error. Passing an explicit draft to the constructor overrides this — that draft is used for every schema regardless of $schema.

Known draft-07 engine gap: @cfworker/json-schema does not treat draft-07 dependencies as a name→subschema map during $ref collection, so a dependency entry whose KEY collides with a JSON Schema keyword (type, default, format, required, pattern, …) and whose subschema contains a $ref throws Unresolved $ref at validation time when the dependency triggers — data-dependently, not at compile. The Node (classic Ajv) engine handles the same schema correctly. Callers that hit this receive the SDK's typed validation error (the throw is captured by the validation paths), and the deviation is pinned by a recorded-contract test.

Examples

Use with default configuration (2020-12, shortcircuit on)

ts
const validator = new CfWorkerJsonSchemaValidator();

Use with custom configuration

ts
const validator = new CfWorkerJsonSchemaValidator({
    draft: '2020-12',
    shortcircuit: false // Report all errors
});

Implements

Constructors

Constructor

new DefaultJsonSchemaValidator(options?): DefaultJsonSchemaValidator

Defined in: packages/core-internal/src/validators/cfWorkerProvider.ts:65

Create a validator

Parameters
options?

Configuration options

draft?

CfWorkerSchemaDraft

JSON Schema draft version to force for every schema. When set, the $schema dispatch is skipped. When omitted, the provider dispatches on each schema's declared $schema (2020-12, 2019-09, draft-07, draft-06; absent means 2020-12) and rejects others.

shortcircuit?

boolean

If true, stop validation after first error (default: true)

Returns

DefaultJsonSchemaValidator

Methods

getValidator()

getValidator<T>(schema): JsonSchemaValidator<T>

Defined in: packages/core-internal/src/validators/cfWorkerProvider.ts:88

Create a validator for the given JSON Schema

Unlike AJV, this validator is not cached internally

Type Parameters
T

T

Parameters
schema

JsonSchemaType

Standard JSON Schema object

Returns

JsonSchemaValidator<T>

A validator function that validates input data

Implementation of

jsonSchemaValidator.getValidator

Variables

CORS_IS_POSSIBLE

const CORS_IS_POSSIBLE: true = true

Defined in: packages/client/src/shimsBrowser.ts:13

Whether fetch() may throw TypeError due to CORS. Only true in browser contexts (including Web Workers / Service Workers). In Node.js and Cloudflare Workers, a TypeError from fetch is always a real network/configuration error.