-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Description
Describe the Bug:
I followed the official documentation to integrate the ADK with Toolbox, but the ADK fails to load the tools defined in the toolbox. Even though the setup matches the provided examples, the tools are not recognized or available during runtime.
Steps to Reproduce:
Please provide a numbered list of steps to reproduce the behavior:
- Install the latest versions of google-adk and the required toolbox dependencies.
- Define a set of tools using the Toolbox pattern as shown in the documentation.
- Initialize the ADK agent/client and pass the toolbox instance.
- Run the application and attempt to call a tool or list available tools.
- Observe that the tools list is empty or the model fails to trigger them.
Expected Behavior:
The ADK should successfully discover and load all tools registered within the Toolbox, making them available for the model to use.
Observed Behavior:
The ADK initializes without errors, but it acts as if no tools are provided. No specific error message is thrown; the tools are simply "missing" from the agent's capabilities.
Environment Details:
- ADK Library Version (pip show google-adk):
pip show google-adk
Name: google-adk
Version: 1.23.0- Desktop OS:
Mac OS 26.2 - Python Version (python -V):
Python 3.14.2
Model Information:
- Are you using LiteLLM: No
- Which model is being used: (e.g., gemini-2.5-flash)
🟡 Optional Information
Logs:
2026-02-05T11:28:41.548982+01:00 INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp/my-toolset" method: "POST" path: "/mcp/my-toolset" remoteIP: "127.0.0.1:62603" proto: "HTTP/1.1" requestID: ".local/1JJLLp0wbZ-000006"} httpResponse: {status: 200 bytes: 1553 elapsed: 0.025250}
2026-02-05T11:28:45.480235+01:00 INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp/my-toolset" method: "POST" path: "/mcp/my-toolset" remoteIP: "127.0.0.1:62603" proto: "HTTP/1.1" requestID: ".local/1JJLLp0wbZ-000007"} httpResponse: {status: 200 bytes: 1553 elapsed: 0.472417}
2026-02-05T11:32:48.739267+01:00 INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp/" method: "POST" path: "/mcp/" remoteIP: "127.0.0.1:62709" proto: "HTTP/1.1" requestID: ".local/1JJLLp0wbZ-000008"} httpResponse: {status: 200 bytes: 256 elapsed: 0.074792}
2026-02-05T11:32:48.741365+01:00 INFO Response: 202 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp/" method: "POST" path: "/mcp/" remoteIP: "127.0.0.1:62709" proto: "HTTP/1.1" requestID: ".local/1JJLLp0wbZ-000009"} httpResponse: {status: 202 bytes: 0 elapsed: 0.120875}
2026-02-05T11:32:48.743662+01:00 INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp/" method: "POST" path: "/mcp/" remoteIP: "127.0.0.1:62709" proto: "HTTP/1.1" requestID: ".local/1JJLLp0wbZ-000010"} httpResponse: {status: 200 bytes: 1553 elapsed: 0.189208}
2026-02-05T11:32:51.015356+01:00 INFO Response: 200 OK service: "httplog" httpRequest: {url: "http://127.0.0.1:5000/mcp/" method: "POST" path: "/mcp/" remoteIP: "127.0.0.1:62709" proto: "HTTP/1.1" requestID: ".local/1JJLLp0wbZ-000011"} httpResponse: {status: 200 bytes: 1553 elapsed: 0.134208}
Additional Context:
It works using the toolbox-core with ToolboxSyncClient