@ai-sdk/mcp 2.0.73: Experimental Managed Event Adapter API Breaking Changes
The @ai-sdk/mcp 2.0.73 release introduces a breaking change to the experimental event adapter API, requiring a synchronous createAdapter({ transport }) function and modifications to imports and interface names. Applications must adopt the new Experimental_MCPEventAdapter pattern.
What changed?
Experimental managed event adapters in @ai-sdk/mcp now require a synchronous createAdapter({ transport }) method that receives the configured MCP transport type and URL. The previous Experimental_MCPEventsAdapter interface is renamed to Experimental_MCPEventOperations. The integration must now be named Experimental_MCPEventAdapter and implement the createAdapter method, which synchronously returns an object with subscribe, getSubscription, listSubscriptions, and unsubscribe. Imports and type annotations must be updated. Existing operations must be wrapped using { createAdapter: () => operations } rather than passing them directly. The adapter receives transport information, and credentials, callbacks, and custom live transport methods are no longer forwarded. The API is breaking for all users of the experimental adapter API.
Why does it matter to an everyday developer?
If you use the experimental event adapter functionality, your code will break unless you make these changes. You will benefit by no longer needing to configure the endpoint twice, and the new adapter can programmatically respond to the transport details. However, imports, type usage, and the adapter interface must be refactored. Missing or incorrectly implemented operations, null or asynchronous (Promise-returning) results now result in immediate errors during client creation, preventing runtime defects.
What can the developer do now?
- Rename your adapter to Experimental_MCPEventAdapter and ensure it implements a synchronous createAdapter({ transport }) function.
- Wrap event operations with { createAdapter: () => operations } instead of passing operations directly.

