From 2a65c4118bb2aa97f2a13064db884bd63c14a5f7 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 29 May 2025 10:13:18 -0700 Subject: [PATCH] fix: Assign empty inputSchema to MCP tool when converting an ADK tool that wraps a function which takes no parameters. Fixes https://github.com/google/adk-python/issues/948 PiperOrigin-RevId: 764780248 --- src/google/adk/tools/mcp_tool/conversion_utils.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/google/adk/tools/mcp_tool/conversion_utils.py b/src/google/adk/tools/mcp_tool/conversion_utils.py index 47de7c3..6116d62 100644 --- a/src/google/adk/tools/mcp_tool/conversion_utils.py +++ b/src/google/adk/tools/mcp_tool/conversion_utils.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + from typing import Any from typing import Dict @@ -41,10 +43,10 @@ def adk_to_mcp_tool_type(tool: BaseTool) -> mcp_types.Tool: print(mcp_tool) """ tool_declaration = tool._get_declaration() - if not tool_declaration: + if not tool_declaration or not tool_declaration.parameters: input_schema = {} else: - input_schema = gemini_to_json_schema(tool._get_declaration().parameters) + input_schema = gemini_to_json_schema(tool_declaration.parameters) return mcp_types.Tool( name=tool.name, description=tool.description,