Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/cfworker-out-of-barrel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@modelcontextprotocol/server': patch
'@modelcontextprotocol/client': patch
---

Stop bundling `@cfworker/json-schema` into the main package barrel. Previously `CfWorkerJsonSchemaValidator` was re-exported from the core internal barrel, so tsdown inlined the `@cfworker/json-schema` dev dependency into every consumer's bundle even when it was never used. The validator is now reachable only via the `_shims` conditional (workerd/browser) and the explicit `@modelcontextprotocol/{server,client}/validators/cf-worker` subpath, so consumers that don't opt into it no longer ship that code. No public API change.
2 changes: 1 addition & 1 deletion packages/client/src/shimsBrowser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* This file is selected via package.json export conditions when running in a browser.
*/
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core';
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';

/**
* Whether `fetch()` may throw `TypeError` due to CORS. Only true in browser contexts
Expand Down
2 changes: 1 addition & 1 deletion packages/client/src/shimsWorkerd.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* This file is selected via package.json export conditions when running in workerd.
*/
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core';
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';

/**
* Whether `fetch()` may throw `TypeError` due to CORS. CORS is a browser-only concept —
Expand Down
4 changes: 2 additions & 2 deletions packages/client/src/validators/cfWorker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
* import { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/client/validators/cf-worker';
* ```
*/
export { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core';
export type { CfWorkerSchemaDraft } from '@modelcontextprotocol/core';
export type { CfWorkerSchemaDraft } from '@modelcontextprotocol/core/validators/cfWorker';
export { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';
3 changes: 3 additions & 0 deletions packages/client/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
"*": ["./*"],
"@modelcontextprotocol/core": ["./node_modules/@modelcontextprotocol/core/src/index.ts"],
"@modelcontextprotocol/core/public": ["./node_modules/@modelcontextprotocol/core/src/exports/public/index.ts"],
"@modelcontextprotocol/core/validators/cfWorker": [
"./node_modules/@modelcontextprotocol/core/src/validators/cfWorkerProvider.ts"
],
Comment thread
claude[bot] marked this conversation as resolved.
"@modelcontextprotocol/test-helpers": ["./node_modules/@modelcontextprotocol/test-helpers/src/index.ts"],
"@modelcontextprotocol/client/_shims": ["./src/shimsNode.ts"]
}
Expand Down
3 changes: 2 additions & 1 deletion packages/client/tsdown.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ export default defineConfig({
baseUrl: '.',
paths: {
'@modelcontextprotocol/core': ['../core/src/index.ts'],
'@modelcontextprotocol/core/public': ['../core/src/exports/public/index.ts']
'@modelcontextprotocol/core/public': ['../core/src/exports/public/index.ts'],
'@modelcontextprotocol/core/validators/cfWorker': ['../core/src/validators/cfWorkerProvider.ts']
}
}
},
Expand Down
4 changes: 4 additions & 0 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@
"./public": {
"types": "./src/exports/public/index.ts",
"import": "./src/exports/public/index.ts"
},
"./validators/cfWorker": {
"types": "./src/validators/cfWorkerProvider.ts",
"import": "./src/validators/cfWorkerProvider.ts"
}
},
"scripts": {
Expand Down
8 changes: 6 additions & 2 deletions packages/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ export * from './util/standardSchema.js';
// experimental exports
export * from './experimental/index.js';
export * from './validators/ajvProvider.js';
export * from './validators/cfWorkerProvider.js';
// cfWorkerProvider is intentionally NOT re-exported here: it statically imports
// `@cfworker/json-schema` (an optional peer), and bundling it into the main barrel
// would force that import on all Node consumers. Import via `@modelcontextprotocol/core/validators/cfWorker`
// (used by the workerd/browser `_shims` and the public `/validators/cf-worker` subpaths).
export type { CfWorkerSchemaDraft } from './validators/cfWorkerProvider.js';
Comment thread
claude[bot] marked this conversation as resolved.
export * from './validators/fromJsonSchema.js';
/**
* JSON Schema validation
Expand All @@ -30,7 +34,7 @@ export * from './validators/fromJsonSchema.js';
* - {@linkcode AjvJsonSchemaValidator}: Best for Node.js (default, fastest)
* Bundled — no additional dependencies required.
*
* - {@linkcode CfWorkerJsonSchemaValidator}: Best for edge runtimes
* - `CfWorkerJsonSchemaValidator`: Best for edge runtimes
* Import from: `@modelcontextprotocol/server/validators/cf-worker` or `@modelcontextprotocol/client/validators/cf-worker`
* Bundled — no additional dependencies required.
*
Expand Down
2 changes: 1 addition & 1 deletion packages/server/src/shimsWorkerd.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* This file is selected via package.json export conditions when running in workerd.
*/
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core';
export { CfWorkerJsonSchemaValidator as DefaultJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';

/**
* Stub process object for non-Node.js environments.
Expand Down
4 changes: 2 additions & 2 deletions packages/server/src/validators/cfWorker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
* import { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/server/validators/cf-worker';
* ```
*/
export { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core';
export type { CfWorkerSchemaDraft } from '@modelcontextprotocol/core';
export type { CfWorkerSchemaDraft } from '@modelcontextprotocol/core/validators/cfWorker';
export { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';
3 changes: 3 additions & 0 deletions packages/server/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
"*": ["./*"],
"@modelcontextprotocol/core": ["./node_modules/@modelcontextprotocol/core/src/index.ts"],
"@modelcontextprotocol/core/public": ["./node_modules/@modelcontextprotocol/core/src/exports/public/index.ts"],
"@modelcontextprotocol/core/validators/cfWorker": [
"./node_modules/@modelcontextprotocol/core/src/validators/cfWorkerProvider.ts"
],
"@modelcontextprotocol/test-helpers": ["./node_modules/@modelcontextprotocol/test-helpers/src/index.ts"],
"@modelcontextprotocol/server/_shims": ["./src/shimsNode.ts"]
}
Expand Down
3 changes: 2 additions & 1 deletion packages/server/tsdown.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ export default defineConfig({
baseUrl: '.',
paths: {
'@modelcontextprotocol/core': ['../core/src/index.ts'],
'@modelcontextprotocol/core/public': ['../core/src/exports/public/index.ts']
'@modelcontextprotocol/core/public': ['../core/src/exports/public/index.ts'],
'@modelcontextprotocol/core/validators/cfWorker': ['../core/src/validators/cfWorkerProvider.ts']
}
}
},
Expand Down
3 changes: 2 additions & 1 deletion test/integration/test/server/elicitation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@

import { Client } from '@modelcontextprotocol/client';
import type { ElicitRequestFormParams } from '@modelcontextprotocol/core';
import { AjvJsonSchemaValidator, CfWorkerJsonSchemaValidator, InMemoryTransport } from '@modelcontextprotocol/core';
import { AjvJsonSchemaValidator, InMemoryTransport } from '@modelcontextprotocol/core';
import { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/core/validators/cfWorker';
import { Server } from '@modelcontextprotocol/server';

const ajvProvider = new AjvJsonSchemaValidator();
Expand Down
3 changes: 3 additions & 0 deletions test/integration/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
"*": ["./*"],
"@modelcontextprotocol/core": ["./node_modules/@modelcontextprotocol/core/src/index.ts"],
"@modelcontextprotocol/core/public": ["./node_modules/@modelcontextprotocol/core/src/exports/public/index.ts"],
"@modelcontextprotocol/core/validators/cfWorker": [
"./node_modules/@modelcontextprotocol/core/src/validators/cfWorkerProvider.ts"
],
"@modelcontextprotocol/client": ["./node_modules/@modelcontextprotocol/client/src/index.ts"],
"@modelcontextprotocol/client/_shims": ["./node_modules/@modelcontextprotocol/client/src/shimsNode.ts"],
"@modelcontextprotocol/server": ["./node_modules/@modelcontextprotocol/server/src/index.ts"],
Expand Down
Loading