Skip to content

Conversation

@felixweinberger
Copy link
Contributor

Summary

  • Adds .experimental property to Server and Client classes, mirroring Python SDK pattern
  • Moves URL elicitation APIs to experimental namespace: server.experimental.elicitUrl(), server.experimental.createElicitationCompleteNotifier(), client.experimental.setElicitationCompleteHandler()
  • Adds @modelcontextprotocol/sdk/experimental subpath export for experimental types

Test plan

  • All existing tests pass
  • Build succeeds
  • Lint passes

Move URL elicitation APIs to server.experimental and client.experimental
to mirror Python SDK's approach for experimental features.

- Add ExperimentalServerFeatures with elicitUrl() and createElicitationCompleteNotifier()
- Add ExperimentalClientFeatures with setElicitationCompleteHandler()
- Add /experimental subpath export for types (ElicitRequestURLParams, etc.)
- Update examples and tests to use new .experimental API
@felixweinberger felixweinberger requested a review from a team as a code owner November 21, 2025 19:56
@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 21, 2025

Open in StackBlitz

npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/sdk@1153

commit: bc255ea

@felixweinberger felixweinberger marked this pull request as draft November 21, 2025 20:05
@nbarbettini
Copy link
Contributor

Isn't this going to cause a breaking change in the next release of the MCP spec?

Can we achieve the same result with a docstring on the methods themselves, rather than guaranteeing a future breaking change to the SDK interface?

@felixweinberger
Copy link
Contributor Author

Isn't this going to cause a breaking change in the next release of the MCP spec?

Can we achieve the same result with a docstring on the methods themselves, rather than guaranteeing a future breaking change to the SDK interface?

Yeah this is not a good change - was experimenting with something and didn't mean to publish it (hence a draft).

Just trying to figure out the right way to make these experimental features (tasks and url elicitation) more obvious to developers using them - eg in the python SDK we're introducing an experimental package to make this very explicit modelcontextprotocol/python-sdk#1645

A docstring would probably not get noticed in the same way as an explicit import or separate package, so still thinking through what the right API is here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants