Skip to content

feat(core): implement reference support for Stateless MCP (SEP-2575) - #648

Merged
anubhav756 merged 20 commits into
mcp-v202606from
anubhav-sep-2575
Jun 23, 2026
Merged

anubhav756 merged 20 commits into
mcp-v202606from
anubhav-sep-2575

chore: delint

c99f6c1
Select commit
Loading
Failed to load commit list.
Google Cloud Build / langchain-python-sdk-pr-py39 (toolbox-testing-438616) succeeded Jun 23, 2026 in 1m 12s

Summary

Build Information

Trigger langchain-python-sdk-pr-py39
Build dded463f-9b20-4aed-ae9e-7ff0b65e96d5
Start 2026-06-23T03:09:55-07:00
Duration 1m8.17s
Status SUCCESS

Steps

Step Status Duration
Install requirements SUCCESS 45.48s
Run integration tests SUCCESS 16.77s

Details


starting build "dded463f-9b20-4aed-ae9e-7ff0b65e96d5"

FETCHSOURCE
From https://github.com/googleapis/mcp-toolbox-sdk-python
 * branch            c99f6c1bb12e28384c84fbf25005ce48d4c6a54b -> FETCH_HEAD
HEAD is now at c99f6c1 chore: delint
GitCommit:
c99f6c1bb12e28384c84fbf25005ce48d4c6a54b
BUILD
Starting Step #0 - "Install requirements"
Step #0 - "Install requirements": Pulling image: python:3.9
Step #0 - "Install requirements": 3.9: Pulling from library/python
Step #0 - "Install requirements": 795dbedde24d: Pulling fs layer
Step #0 - "Install requirements": 89d573bf42b3: Pulling fs layer
Step #0 - "Install requirements": 26dfe2fac1c4: Pulling fs layer
Step #0 - "Install requirements": 79d5bd8a8d26: Pulling fs layer
Step #0 - "Install requirements": 081ccf923272: Pulling fs layer
Step #0 - "Install requirements": c9723aa529b0: Pulling fs layer
Step #0 - "Install requirements": 91c91c91f1d2: Pulling fs layer
Step #0 - "Install requirements": 91c91c91f1d2: Waiting
Step #0 - "Install requirements": 081ccf923272: Download complete
Step #0 - "Install requirements": c9723aa529b0: Verifying Checksum
Step #0 - "Install requirements": c9723aa529b0: Download complete
Step #0 - "Install requirements": 91c91c91f1d2: Verifying Checksum
Step #0 - "Install requirements": 91c91c91f1d2: Download complete
Step #0 - "Install requirements": 89d573bf42b3: Verifying Checksum
Step #0 - "Install requirements": 89d573bf42b3: Download complete
Step #0 - "Install requirements": 795dbedde24d: Verifying Checksum
Step #0 - "Install requirements": 795dbedde24d: Download complete
Step #0 - "Install requirements": 26dfe2fac1c4: Verifying Checksum
Step #0 - "Install requirements": 26dfe2fac1c4: Download complete
Step #0 - "Install requirements": 79d5bd8a8d26: Verifying Checksum
Step #0 - "Install requirements": 79d5bd8a8d26: Download complete
Step #0 - "Install requirements": 795dbedde24d: Pull complete
Step #0 - "Install requirements": 89d573bf42b3: Pull complete
Step #0 - "Install requirements": 26dfe2fac1c4: Pull complete
Step #0 - "Install requirements": 79d5bd8a8d26: Pull complete
Step #0 - "Install requirements": 081ccf923272: Pull complete
Step #0 - "Install requirements": c9723aa529b0: Pull complete
Step #0 - "Install requirements": 91c91c91f1d2: Pull complete
Step #0 - "Install requirements": Digest: sha256:da5aee29682d12a6649f51c8d6f15b87deb3e6c524b923c41d0cb3304d07c913
Step #0 - "Install requirements": Status: Downloaded newer image for python:3.9
Step #0 - "Install requirements": docker.io/library/python:3.9
Step #0 - "Install requirements": Collecting uv
Step #0 - "Install requirements":   Downloading uv-0.11.23-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25.4 MB)
Step #0 - "Install requirements":      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 25.4/25.4 MB 55.0 MB/s eta 0:00:00
Step #0 - "Install requirements": Installing collected packages: uv
Step #0 - "Install requirements": Successfully installed uv-0.11.23
Step #0 - "Install requirements": WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Step #0 - "Install requirements": 
Step #0 - "Install requirements": [notice] A new release of pip is available: 23.0.1 -> 26.0.1
Step #0 - "Install requirements": [notice] To update, run: pip install --upgrade pip
Step #0 - "Install requirements": Using CPython 3.13.5 interpreter at: /usr/bin/python3
Step #0 - "Install requirements": Creating virtual environment at: /workspace/venv
Step #0 - "Install requirements": Activate with: source /workspace/venv/bin/activate
Step #0 - "Install requirements": Using Python 3.13.5 environment at: /workspace/venv
Step #0 - "Install requirements": Resolved 1 package in 184ms
Step #0 - "Install requirements": Downloading uv (24.2MiB)
Step #0 - "Install requirements":  Downloaded uv
Step #0 - "Install requirements": Prepared 1 package in 555ms
Step #0 - "Install requirements": warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
Step #0 - "Install requirements":          If the cache and target directories are on different filesystems, hardlinking may not be supported.
Step #0 - "Install requirements":          If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Step #0 - "Install requirements": Installed 1 package in 69ms
Step #0 - "Install requirements":  + uv==0.11.23
Step #0 - "Install requirements": Using Python 3.13.5 environment at: /workspace/venv
Step #0 - "Install requirements": Resolved 45 packages in 1.78s
Step #0 - "Install requirements":    Building toolbox-core @ file:///workspace/packages/toolbox-core
Step #0 - "Install requirements": Downloading cryptography (4.5MiB)
Step #0 - "Install requirements": Downloading pydantic-core (2.0MiB)
Step #0 - "Install requirements": Downloading zstandard (5.3MiB)
Step #0 - "Install requirements": Downloading aiohttp (1.7MiB)
Step #0 - "Install requirements":       Built toolbox-core @ file:///workspace/packages/toolbox-core
Step #0 - "Install requirements":  Downloaded pydantic-core
Step #0 - "Install requirements":  Downloaded zstandard
Step #0 - "Install requirements":  Downloaded aiohttp
Step #0 - "Install requirements":  Downloaded cryptography
Step #0 - "Install requirements": Prepared 45 packages in 803ms
Step #0 - "Install requirements": warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
Step #0 - "Install requirements":          If the cache and target directories are on different filesystems, hardlinking may not be supported.
Step #0 - "Install requirements":          If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Step #0 - "Install requirements": Installed 45 packages in 241ms
Step #0 - "Install requirements":  + aiohappyeyeballs==2.6.2
Step #0 - "Install requirements":  + aiohttp==3.14.0
Step #0 - "Install requirements":  + aiosignal==1.4.0
Step #0 - "Install requirements":  + annotated-types==0.7.0
Step #0 - "Install requirements":  + anyio==4.14.0
Step #0 - "Install requirements":  + attrs==26.1.0
Step #0 - "Install requirements":  + certifi==2026.6.17
Step #0 - "Install requirements":  + cffi==2.0.0
Step #0 - "Install requirements":  + charset-normalizer==3.4.7
Step #0 - "Install requirements":  + cryptography==49.0.0
Step #0 - "Install requirements":  + deprecated==1.3.1
Step #0 - "Install requirements":  + frozenlist==1.8.0
Step #0 - "Install requirements":  + google-auth==2.55.0
Step #0 - "Install requirements":  + h11==0.16.0
Step #0 - "Install requirements":  + httpcore==1.0.9
Step #0 - "Install requirements":  + httpx==0.28.1
Step #0 - "Install requirements":  + idna==3.18
Step #0 - "Install requirements":  + jsonpatch==1.33
Step #0 - "Install requirements":  + jsonpointer==3.1.1
Step #0 - "Install requirements":  + langchain-core==1.4.0
Step #0 - "Install requirements":  + langchain-protocol==0.0.18
Step #0 - "Install requirements":  + langsmith==0.9.0
Step #0 - "Install requirements":  + multidict==6.7.1
Step #0 - "Install requirements":  + orjson==3.11.9
Step #0 - "Install requirements":  + packaging==26.2
Step #0 - "Install requirements":  + propcache==0.5.2
Step #0 - "Install requirements":  + pyasn1==0.6.3
Step #0 - "Install requirements":  + pyasn1-modules==0.4.2
Step #0 - "Install requirements":  + pycparser==3.0
Step #0 - "Install requirements":  + pydantic==2.13.4
Step #0 - "Install requirements":  + pydantic-core==2.46.4
Step #0 - "Install requirements":  + pyyaml==6.0.3
Step #0 - "Install requirements":  + requests==2.34.2
Step #0 - "Install requirements":  + requests-toolbelt==1.0.0
Step #0 - "Install requirements":  + tenacity==9.1.4
Step #0 - "Install requirements":  + toolbox-core==1.1.0 (from file:///workspace/packages/toolbox-core)
Step #0 - "Install requirements":  + typing-extensions==4.15.0
Step #0 - "Install requirements":  + typing-inspection==0.4.2
Step #0 - "Install requirements":  + urllib3==2.7.0
Step #0 - "Install requirements":  + uuid-utils==0.16.2
Step #0 - "Install requirements":  + websockets==16.0
Step #0 - "Install requirements":  + wrapt==2.2.2
Step #0 - "Install requirements":  + xxhash==3.7.0
Step #0 - "Install requirements":  + yarl==1.24.2
Step #0 - "Install requirements":  + zstandard==0.25.0
Step #0 - "Install requirements": Using Python 3.13.5 environment at: /workspace/venv
Step #0 - "Install requirements": Resolved 93 packages in 1.61s
Step #0 - "Install requirements":    Building toolbox-langchain @ file:///workspace/packages/toolbox-langchain
Step #0 - "Install requirements": Downloading pygments (1.2MiB)
Step #0 - "Install requirements": Downloading grpcio (6.5MiB)
Step #0 - "Install requirements": Downloading ast-serialize (1.2MiB)
Step #0 - "Install requirements": Downloading pillow (6.8MiB)
Step #0 - "Install requirements": Downloading jedi (4.7MiB)
Step #0 - "Install requirements": Downloading black (1.8MiB)
Step #0 - "Install requirements": Downloading mypy (14.3MiB)
Step #0 - "Install requirements":  Downloaded ast-serialize
Step #0 - "Install requirements":       Built toolbox-langchain @ file:///workspace/packages/toolbox-langchain
Step #0 - "Install requirements":  Downloaded black
Step #0 - "Install requirements":  Downloaded pillow
Step #0 - "Install requirements":  Downloaded grpcio
Step #0 - "Install requirements":  Downloaded pygments
Step #0 - "Install requirements":  Downloaded mypy
Step #0 - "Install requirements":  Downloaded jedi
Step #0 - "Install requirements": Prepared 48 packages in 2.58s
Step #0 - "Install requirements": warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
Step #0 - "Install requirements":          If the cache and target directories are on different filesystems, hardlinking may not be supported.
Step #0 - "Install requirements":          If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Step #0 - "Install requirements": Installed 48 packages in 1.23s
Step #0 - "Install requirements":  + ast-serialize==0.5.0
Step #0 - "Install requirements":  + asttokens==3.0.1
Step #0 - "Install requirements":  + black==26.5.1
Step #0 - "Install requirements":  + click==8.4.1
Step #0 - "Install requirements":  + coverage==7.14.3
Step #0 - "Install requirements":  + decorator==5.3.1
Step #0 - "Install requirements":  + executing==2.2.1
Step #0 - "Install requirements":  + google-api-core==2.31.0
Step #0 - "Install requirements":  + google-cloud-core==2.6.0
Step #0 - "Install requirements":  + google-cloud-secret-manager==2.28.0
Step #0 - "Install requirements":  + google-cloud-storage==3.10.1
Step #0 - "Install requirements":  + google-crc32c==1.8.0
Step #0 - "Install requirements":  + google-resumable-media==2.10.0
Step #0 - "Install requirements":  + googleapis-common-protos==1.75.0
Step #0 - "Install requirements":  + grpc-google-iam-v1==0.14.4
Step #0 - "Install requirements":  + grpcio==1.81.1
Step #0 - "Install requirements":  + grpcio-status==1.81.1
Step #0 - "Install requirements":  + iniconfig==2.3.0
Step #0 - "Install requirements":  + ipython==9.14.1
Step #0 - "Install requirements":  + ipython-pygments-lexers==1.1.1
Step #0 - "Install requirements":  + isort==8.0.1
Step #0 - "Install requirements":  + jedi==0.20.0
Step #0 - "Install requirements":  + librt==0.11.0
Step #0 - "Install requirements":  + matplotlib-inline==0.2.2
Step #0 - "Install requirements":  + mypy==2.1.0
Step #0 - "Install requirements":  + mypy-extensions==1.1.0
Step #0 - "Install requirements":  + parso==0.8.7
Step #0 - "Install requirements":  + pathspec==1.1.1
Step #0 - "Install requirements":  + pexpect==4.9.0
Step #0 - "Install requirements":  + pillow==12.2.0
Step #0 - "Install requirements":  + platformdirs==4.10.0
Step #0 - "Install requirements":  + pluggy==1.6.0
Step #0 - "Install requirements":  + prompt-toolkit==3.0.52
Step #0 - "Install requirements":  + proto-plus==1.28.0
Step #0 - "Install requirements":  + protobuf==7.35.1
Step #0 - "Install requirements":  + psutil==7.2.2
Step #0 - "Install requirements":  + ptyprocess==0.7.0
Step #0 - "Install requirements":  + pure-eval==0.2.3
Step #0 - "Install requirements":  + pygments==2.20.0
Step #0 - "Install requirements":  + pytest==9.0.3
Step #0 - "Install requirements":  + pytest-asyncio==1.4.0
Step #0 - "Install requirements":  + pytest-cov==7.1.0
Step #0 - "Install requirements":  + pytokens==0.4.1
Step #0 - "Install requirements":  + stack-data==0.6.3
Step #0 - "Install requirements":  + tokenize-rt==6.2.0
Step #0 - "Install requirements":  + toolbox-langchain==1.0.1 (from file:///workspace/packages/toolbox-langchain)
Step #0 - "Install requirements":  + traitlets==5.15.1
Step #0 - "Install requirements":  + wcwidth==0.8.1
Finished Step #0 - "Install requirements"
Starting Step #1 - "Run integration tests"
Step #1 - "Run integration tests": Already have image (with digest): python:3.9
Step #1 - "Run integration tests": ============================= test session starts ==============================
Step #1 - "Run integration tests": platform linux -- Python 3.13.5, pytest-9.0.3, pluggy-1.6.0
Step #1 - "Run integration tests": rootdir: /workspace/packages/toolbox-langchain
Step #1 - "Run integration tests": configfile: pyproject.toml
Step #1 - "Run integration tests": plugins: langsmith-0.9.0, cov-7.1.0, anyio-4.14.0, asyncio-1.4.0
Step #1 - "Run integration tests": asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
Step #1 - "Run integration tests": collected 88 items
Step #1 - "Run integration tests": 
Step #1 - "Run integration tests": tests/test_async_client.py .................                             [ 19%]
Step #1 - "Run integration tests": tests/test_async_tools.py ..................                             [ 39%]
Step #1 - "Run integration tests": tests/test_client.py ...............                                     [ 56%]
Step #1 - "Run integration tests": tests/test_e2e.py ............................                           [ 88%]
Step #1 - "Run integration tests": tests/test_tools.py ..........                                           [100%]
Step #1 - "Run integration tests": 
Step #1 - "Run integration tests": =============================== warnings summary ===============================
Step #1 - "Run integration tests": tests/test_e2e.py: 10 warnings
Step #1 - "Run integration tests":   /workspace/packages/toolbox-core/src/toolbox_core/utils.py:56: UserWarning: This connection is using HTTP. To prevent credential exposure, please ensure all communication is sent over HTTPS.
Step #1 - "Run integration tests":     warnings.warn(
Step #1 - "Run integration tests": 
Step #1 - "Run integration tests": -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
Step #1 - "Run integration tests": ================================ tests coverage ================================
Step #1 - "Run integration tests": _______________ coverage: platform linux, python 3.13.5-final-0 ________________
Step #1 - "Run integration tests": 
Step #1 - "Run integration tests": Name                                    Stmts   Miss  Cover
Step #1 - "Run integration tests": -----------------------------------------------------------
Step #1 - "Run integration tests": src/toolbox_langchain/__init__.py           3      0   100%
Step #1 - "Run integration tests": src/toolbox_langchain/async_client.py      49      3    94%
Step #1 - "Run integration tests": src/toolbox_langchain/async_tools.py       29      4    86%
Step #1 - "Run integration tests": src/toolbox_langchain/client.py            78      8    90%
Step #1 - "Run integration tests": src/toolbox_langchain/tools.py             30      2    93%
Step #1 - "Run integration tests": src/toolbox_langchain/version.py            1      0   100%
Step #1 - "Run integration tests": -----------------------------------------------------------
Step #1 - "Run integration tests": TOTAL                                     190     17    91%
Step #1 - "Run integration tests": Required test coverage of 90% reached. Total coverage: 91.05%
Step #1 - "Run integration tests": ======================= 88 passed, 10 warnings in 10.35s =======================
Finished Step #1 - "Run integration tests"
PUSH
DONE

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22dded463f-9b20-4aed-ae9e-7ff0b65e96d5%22+AND+resource.labels.build_trigger_id%3D%22c1713bea-dbe0-4829-bfb3-79ed91775d48%22&project=toolbox-testing-438616