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.