Skip to content

feat!: add MCP support#196

Merged
twishabansal merged 7 commits intomainfrom
feat-mcp
Jan 14, 2026
Merged

feat!: add MCP support#196
twishabansal merged 7 commits intomainfrom
feat-mcp

Conversation

@twishabansal
Copy link
Contributor

@twishabansal twishabansal commented Jan 12, 2026

This pull request introduces support for the Model Context Protocol (MCP) as a primary communication protocol within the SDK. This is a significant update that refactors the underlying transport logic and transitions the default protocol from the legacy "Toolbox" protocol to MCP.

Summary

The core focus of this PR is to integrate MCP support while maintaining flexibility for existing implementations. It moves transport-specific logic into a dedicated ToolboxTransport class and adds support for multiple MCP versions (v20241105, v20250326 and v20250618).

Key Changes

  • Protocol Support: * Implemented MCP support with specific versions: 2024-11-05, 2025-03-26 and 2025-06-18.

  • Made MCP the default protocol for the SDK (Breaking Change).

  • Architecture Refactoring:

  • Exposed protocol selection within the adk package, allowing users to explicitly pass a protocol if needed.

  • Client Initialization:

  • Fixed an issue where client headers were not correctly propagated during the initialization phase in MCP mode.

Breaking Changes ⚠️

  • Default Protocol: The SDK now defaults to using the Model Context Protocol. Existing implementations relying on the legacy Toolbox protocol may need to explicitly specify it or update their infrastructure to support MCP.

Testing

  • Unit Tests: Expanded unit test coverage for the new transport classes and protocol negotiation logic.
  • E2E Tests: Introduced a new suite of end-to-end tests specifically for MCP (mcp.e2e.test.ts).
  • Jest Configuration: Updated the test runner configuration to include MCP-specific test paths and coverage.

* refactor: move transport logic to a ToolboxTransport class

* rename file

* update license

* basic lint

* lint

* log errors properly

* fix error handling

* add test cov

* lint

* add new version

* add e2e tests for mcp

* update license

* basic lint

* update license

* fix tests

* add tests

* keep toolbox protocol to be default

* add test cov

* add test cov

* lint

* rename e2e test file

* lint

* fix tests

* fix license

* fix tests

* small refactor

* lint

* fix e2e tests

* fix unit tests

* lint

* lint

* add more tests

* lint

* fix tests

* fix error handling

* fix e2e tests

* add mcp tests to jest config

* use package version

* Revert "use package version"

This reverts commit 9f13278.

* use dynamic versions

* lint

* better way to use dynamic versions
@twishabansal twishabansal changed the title feat: add MCP v20241105 (#189) feat: add MCP support Jan 12, 2026
* fix versioning

* cc

* remove version from adk
* refactor: move transport logic to a ToolboxTransport class

* rename file

* update license

* basic lint

* lint

* log errors properly

* fix error handling

* add test cov

* lint

* add new version

* add e2e tests for mcp

* update license

* basic lint

* update license

* fix tests

* add tests

* keep toolbox protocol to be default

* add test cov

* add test cov

* lint

* rename e2e test file

* lint

* fix tests

* fix license

* fix tests

* small refactor

* lint

* fix e2e tests

* fix unit tests

* lint

* lint

* add more tests

* lint

* fix tests

* fix error handling

* fix e2e tests

* add new version

* cc

* add mcp tests to jest config

* use package version

* Revert "use package version"

This reverts commit 9f13278.

* use dynamic versions

* update version

* fix merge issues
* refactor: move transport logic to a ToolboxTransport class

* rename file

* update license

* basic lint

* lint

* log errors properly

* fix error handling

* add test cov

* lint

* add new version

* add e2e tests for mcp

* update license

* basic lint

* update license

* fix tests

* add tests

* keep toolbox protocol to be default

* add test cov

* add test cov

* lint

* rename e2e test file

* lint

* fix tests

* fix license

* fix tests

* small refactor

* lint

* fix e2e tests

* fix unit tests

* lint

* lint

* add more tests

* lint

* fix tests

* fix error handling

* fix e2e tests

* add new version

* cc

* add mcp tests to jest config

* use package version

* Revert "use package version"

This reverts commit 9f13278.

* use dynamic versions

* update version

* fix merge issues

* feat: add MCP v20250618 (#191)

* feat: add MCP v20250618

* fix version issue

* lint
* refactor: move transport logic to a ToolboxTransport class

* rename file

* update license

* basic lint

* lint

* log errors properly

* fix error handling

* add test cov

* lint

* add new version

* add e2e tests for mcp

* update license

* basic lint

* update license

* fix tests

* add tests

* keep toolbox protocol to be default

* add test cov

* add test cov

* lint

* rename e2e test file

* lint

* fix tests

* fix license

* fix tests

* small refactor

* lint

* fix e2e tests

* fix unit tests

* lint

* lint

* add more tests

* lint

* fix tests

* fix error handling

* fix e2e tests

* add new version

* cc

* feat: add MCP v20250618

* feat: make mcp the default protocol

* allow protocol passing into toolbox-adk

* run e2e test with toolbox protocol

* expose protocol from adk package

* add mcp tests to jest config

* use package version

* Revert "use package version"

This reverts commit 9f13278.

* use dynamic versions

* update version

* fix merge issues

* fix version issue
@twishabansal twishabansal changed the title feat: add MCP support feat !: add MCP support Jan 13, 2026
@twishabansal twishabansal marked this pull request as ready for review January 13, 2026 08:19
@twishabansal twishabansal requested a review from a team January 13, 2026 08:19
@twishabansal twishabansal changed the title feat !: add MCP support feat!: add MCP support Jan 13, 2026
* fix(mcp): correctly propagate client headers during init

* fix packaging conflicts
* docs(mcp): add transport protocol info

* Update README.md

* update toc
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.

2 participants