diff --git a/.changeset/node-transport-v1-aliases.md b/.changeset/node-transport-v1-aliases.md new file mode 100644 index 000000000..f404d0925 --- /dev/null +++ b/.changeset/node-transport-v1-aliases.md @@ -0,0 +1,5 @@ +--- +'@modelcontextprotocol/node': patch +--- + +Add v1-compat re-exports: `StreamableHTTPServerTransport` (alias for `NodeStreamableHTTPServerTransport`) and the `EventStore` / `EventId` / `StreamId` types, so v1 imports from `@modelcontextprotocol/sdk/server/streamableHttp.js` map cleanly onto `@modelcontextprotocol/node`. diff --git a/packages/middleware/node/src/index.ts b/packages/middleware/node/src/index.ts index 2e0d3c995..dc7019e37 100644 --- a/packages/middleware/node/src/index.ts +++ b/packages/middleware/node/src/index.ts @@ -1 +1,8 @@ export * from './streamableHttp.js'; + +// v1-compat re-exports. +export { + /** v1 name. The v2-preferred name is {@linkcode NodeStreamableHTTPServerTransport}. */ + NodeStreamableHTTPServerTransport as StreamableHTTPServerTransport +} from './streamableHttp.js'; +export type { EventId, EventStore, StreamId } from '@modelcontextprotocol/server'; diff --git a/packages/middleware/node/test/compat.test.ts b/packages/middleware/node/test/compat.test.ts new file mode 100644 index 000000000..eb6759223 --- /dev/null +++ b/packages/middleware/node/test/compat.test.ts @@ -0,0 +1,19 @@ +import { describe, expect, expectTypeOf, it } from 'vitest'; + +import { NodeStreamableHTTPServerTransport, StreamableHTTPServerTransport } from '../src/index.js'; +import type { EventId, EventStore, StreamId } from '../src/index.js'; + +describe('v1 compat exports from @modelcontextprotocol/node', () => { + it('StreamableHTTPServerTransport aliases NodeStreamableHTTPServerTransport', () => { + expect(StreamableHTTPServerTransport).toBe(NodeStreamableHTTPServerTransport); + expectTypeOf().toEqualTypeOf(); + }); + + it('re-exports EventStore / EventId / StreamId types', () => { + // Type-level assertions: these compile only if the types are exported. + expectTypeOf().toBeString(); + expectTypeOf().toBeString(); + expectTypeOf().toHaveProperty('storeEvent'); + expectTypeOf().toHaveProperty('replayEventsAfter'); + }); +});