-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Open
Labels
v2Ideas, requests and plans for v2 of the SDK which will incorporate major changes and fixesIdeas, requests and plans for v2 of the SDK which will incorporate major changes and fixes
Milestone
Description
This issue is to track changes we need to have
- Types - remove passthrough
- Class names - make it more like Python SDK (server, session etc)
- Clean up auth
- remove AS
- remove ProxyOAuthProvider (or make it more clear to not do token-passthrough)
- migrate to Zod4
- Fix: Barrel file exports #870
@KKonstantinov EDITs:
Please note the below is a wishlist, and will be introduced in v2 depending on demand and timeline considerations; Some of it would be opened up for contributors for a PR after the v2 refactor.
- Decouple from Zod, allow for any validator ("bring your own").
- Type-first as opposed to zod schema-first approach
- Protocol.ts - although the goal is to have symmetric client and server, protocol.ts contains nasty conditionals which can be executed only by client or server, but not both, defeating the purpose of an abstract class. File hard to read & extend.
- Tests - All tests under
/testdirectory - Tests - Reusable helpers under
/test/helperdirectory - e.g. creating mock server, mock client, connecting them together, etc. etc. (we already have a significant amount we could move there). - Decouple from
expressto allow for lighter SDK, and easier compatibility with other HTTP frameworks (e.g.Hono,fastify, others) - non-node environment considerations (e.g.
Bun,Denoon the backend,react-nativeon frontend, etc.) - Publish
@modelcontextprotocol/typescript-sdk-clientand@modelcontextprotocol/typescript-sdk-serverto reduce package size on users with a single consideration (e.g. either server or client) - clear abstracted way to define
experimentalfeatures in the SDK - DX quality of life improvements, such as inject your own logger
- DX - ability to listen on
onErrorand hook in custom behavior onMcpErrors thrown - Ability to pass in JSON schema on the higher-order abstraction (
McpServer) - DX - provide OpenTelemetry (@opentelemetry/api) capabilities out of the box - inject your own telemetry Tracer/Metrics Provider
- Examples - move out in another package or out of
src/- examples should import from @modelcontextprotocol/sdk to be readily copy-able as opposed to having relative imports in them - ctx object inside the tool extra for transport/server controls.
- Using
Headersas opposed to a custom object in request context
sokyran, lin72h, kentcdodds, MiguelsPizza, jonathanhefner and 6 morefredericbarthelet, lin72h, sokyran, MiguelsPizza, kentcdodds and 5 more
Metadata
Metadata
Assignees
Labels
v2Ideas, requests and plans for v2 of the SDK which will incorporate major changes and fixesIdeas, requests and plans for v2 of the SDK which will incorporate major changes and fixes