2525from typing import Dict
2626from typing import List
2727from typing import Mapping
28- from typing import Optional
2928from typing import Sequence
3029from typing import TypedDict
31- from typing import Union
3230from urllib .parse import parse_qs
3331from urllib .parse import urlparse
3432
3937from a2a .types import TransportProtocol as A2ATransport
4038from google .adk .agents .readonly_context import ReadonlyContext
4139from google .adk .agents .remote_a2a_agent import RemoteA2aAgent
40+ from google .adk .auth .auth_credential import AuthCredential
41+ from google .adk .auth .auth_schemes import AuthScheme
4242from google .adk .telemetry .tracing import GCP_MCP_SERVER_DESTINATION_ID
4343from google .adk .tools .base_tool import BaseTool
4444from google .adk .tools .mcp_tool .mcp_session_manager import SseConnectionParams
@@ -75,11 +75,15 @@ def __init__(
7575 header_provider : (
7676 Callable [[ReadonlyContext ], Dict [str , str ]] | None
7777 ) = None ,
78+ auth_scheme : AuthScheme | None = None ,
79+ auth_credential : AuthCredential | None = None ,
7880 ):
7981 super ().__init__ (
8082 connection_params = connection_params ,
8183 tool_name_prefix = tool_name_prefix ,
8284 header_provider = header_provider ,
85+ auth_scheme = auth_scheme ,
86+ auth_credential = auth_credential ,
8387 )
8488 self .destination_resource_id = destination_resource_id
8589
@@ -143,11 +147,11 @@ class AgentRegistry:
143147
144148 def __init__ (
145149 self ,
146- project_id : Optional [ str ] = None ,
147- location : Optional [ str ] = None ,
148- header_provider : Optional [
149- Callable [[ReadonlyContext ], Dict [str , str ]]
150- ] = None ,
150+ project_id : str | None = None ,
151+ location : str | None = None ,
152+ header_provider : (
153+ Callable [[ReadonlyContext ], Dict [str , str ]] | None
154+ ) = None ,
151155 ):
152156 """Initializes the AgentRegistry client.
153157
@@ -190,7 +194,7 @@ def _get_auth_headers(self) -> Dict[str, str]:
190194 ) from e
191195
192196 def _make_request (
193- self , path : str , params : Optional [ Dict [str , Any ]] = None
197+ self , path : str , params : Dict [str , Any ] | None = None
194198 ) -> Dict [str , Any ]:
195199 """Helper function to make GET requests to the Agent Registry API."""
196200 if path .startswith ("projects/" ):
@@ -217,9 +221,9 @@ def _make_request(
217221 def _get_connection_uri (
218222 self ,
219223 resource_details : Mapping [str , Any ],
220- protocol_type : Optional [ _ProtocolType ] = None ,
221- protocol_binding : Optional [ A2ATransport ] = None ,
222- ) -> Optional [ str ] :
224+ protocol_type : _ProtocolType | None = None ,
225+ protocol_binding : A2ATransport | None = None ,
226+ ) -> str | None :
223227 """Extracts the first matching URI based on type and binding filters."""
224228 protocols = list (resource_details .get ("protocols" , []))
225229 if "interfaces" in resource_details :
@@ -249,9 +253,9 @@ def _clean_name(self, name: str) -> str:
249253
250254 def list_mcp_servers (
251255 self ,
252- filter_str : Optional [ str ] = None ,
253- page_size : Optional [ int ] = None ,
254- page_token : Optional [ str ] = None ,
256+ filter_str : str | None = None ,
257+ page_size : int | None = None ,
258+ page_token : str | None = None ,
255259 ) -> Dict [str , Any ]:
256260 """Fetches a list of MCP Servers."""
257261 params = {}
@@ -267,7 +271,12 @@ def get_mcp_server(self, name: str) -> Dict[str, Any]:
267271 """Retrieves details of a specific MCP Server."""
268272 return self ._make_request (name )
269273
270- def get_mcp_toolset (self , mcp_server_name : str ) -> McpToolset :
274+ def get_mcp_toolset (
275+ self ,
276+ mcp_server_name : str ,
277+ auth_scheme : AuthScheme | None = None ,
278+ auth_credential : AuthCredential | None = None ,
279+ ) -> McpToolset :
271280 """Constructs an McpToolset instance from a registered MCP Server."""
272281 server_details = self .get_mcp_server (mcp_server_name )
273282 name = self ._clean_name (server_details .get ("displayName" , mcp_server_name ))
@@ -293,15 +302,17 @@ def get_mcp_toolset(self, mcp_server_name: str) -> McpToolset:
293302 connection_params = connection_params ,
294303 tool_name_prefix = name ,
295304 header_provider = self ._header_provider ,
305+ auth_scheme = auth_scheme ,
306+ auth_credential = auth_credential ,
296307 )
297308
298309 # --- Endpoint Methods ---
299310
300311 def list_endpoints (
301312 self ,
302- filter_str : Optional [ str ] = None ,
303- page_size : Optional [ int ] = None ,
304- page_token : Optional [ str ] = None ,
313+ filter_str : str | None = None ,
314+ page_size : int | None = None ,
315+ page_token : str | None = None ,
305316 ) -> Dict [str , Any ]:
306317 """Fetches a list of Endpoints."""
307318 params = {}
@@ -349,9 +360,9 @@ def get_model_name(self, endpoint_name: str) -> str:
349360
350361 def list_agents (
351362 self ,
352- filter_str : Optional [ str ] = None ,
353- page_size : Optional [ int ] = None ,
354- page_token : Optional [ str ] = None ,
363+ filter_str : str | None = None ,
364+ page_size : int | None = None ,
365+ page_token : str | None = None ,
355366 ) -> Dict [str , Any ]:
356367 """Fetches a list of registered A2A Agents."""
357368 params = {}
0 commit comments