**Describe the bug** Subprocess (MCP) wouldn't start.. Asyncio not implement error ``` 2025-06-11 22:35:02,328 - ERROR - fast_api.py:788 - Error in event_generator: Traceback (most recent call last): File "B:\code\gen1\backend\.venv\Lib\site-packages\mcp\client\stdio\win32.py", line 72, in create_windows_process process = await anyio.open_process( ^^^^^^^^^^^^^^^^^^^^^^^^^ ...<8 lines>... ) ^ File "B:\code\gen1\backend\.venv\Lib\site-packages\anyio\_core\_subprocesses.py", line 190, in open_process return await get_async_backend().open_process( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<11 lines>... ) ^ File "B:\code\gen1\backend\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 2561, in open_process process = await asyncio.create_subprocess_exec( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<5 lines>... ) ^ File "C:\Users\spc\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\asyncio\subprocess.py", line 224, in create_subprocess_exec transport, protocol = await loop.subprocess_exec( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<3 lines>... stderr=stderr, **kwds) ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\spc\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\asyncio\base_events.py", line 1788, in subprocess_exec transport = await self._make_subprocess_transport( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ protocol, popen_args, False, stdin, stdout, stderr, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ bufsize, **kwargs) ^^^^^^^^^^^^^^^^^^ File "C:\Users\spc\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\asyncio\base_events.py", line 533, in _make_subprocess_transport raise NotImplementedError NotImplementedError During handling of the above exception, another exception occurred: Traceback (most recent call last): File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\cli\fast_api.py", line 777, in event_generator async for event in runner.run_async( ...<8 lines>... yield f"data: {sse_event}\n\n" File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\runners.py", line 197, in run_async async for event in invocation_context.agent.run_async(invocation_context): ...<2 lines>... yield event File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\agents\base_agent.py", line 147, in run_async async for event in self._run_async_impl(ctx): yield event File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\agents\llm_agent.py", line 278, in _run_async_impl async for event in self._llm_flow.run_async(ctx): self.__maybe_save_output_to_state(event) yield event File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\flows\llm_flows\base_llm_flow.py", line 282, in run_async async for event in self._run_one_step_async(invocation_context): last_event = event yield event File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\flows\llm_flows\base_llm_flow.py", line 302, in _run_one_step_async async for event in self._preprocess_async(invocation_context, llm_request): yield event File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\flows\llm_flows\base_llm_flow.py", line 340, in _preprocess_async for tool in await agent.canonical_tools( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ReadonlyContext(invocation_context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ): ^ File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\agents\llm_agent.py", line 367, in canonical_tools resolved_tools.extend(await _convert_tool_union_to_tools(tool_union, ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\agents\llm_agent.py", line 114, in _convert_tool_union_to_tools return await tool_union.get_tools(ctx) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\tools\mcp_tool\mcp_session_manager.py", line 110, in wrapper return await func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\tools\mcp_tool\mcp_toolset.py", line 138, in get_tools self._session = await self._mcp_session_manager.create_session() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "B:\code\gen1\backend\.venv\Lib\site-packages\google\adk\tools\mcp_tool\mcp_session_manager.py", line 208, in create_session transports = await self._exit_stack.enter_async_context(client) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\spc\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\contextlib.py", line 668, in enter_async_context result = await _enter(cm) ^^^^^^^^^^^^^^^^ File "C:\Users\spc\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\contextlib.py", line 214, in __aenter__ return await anext(self.gen) ^^^^^^^^^^^^^^^^^^^^^ File "B:\code\gen1\backend\.venv\Lib\site-packages\mcp\client\stdio\__init__.py", line 115, in stdio_client process = await _create_platform_compatible_process( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<9 lines>... ) ^ File "B:\code\gen1\backend\.venv\Lib\site-packages\mcp\client\stdio\__init__.py", line 230, in _create_platform_compatible_process process = await create_windows_process(command, args, env, errlog, cwd) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "B:\code\gen1\backend\.venv\Lib\site-packages\mcp\client\stdio\win32.py", line 85, in create_windows_process process = await anyio.open_process( ^^^^^^^^^^^^^^^^^^^^^^^^^ [command, *args], env=env, stderr=errlog, cwd=cwd ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "B:\code\gen1\backend\.venv\Lib\site-packages\anyio\_core\_subprocesses.py", line 190, in open_process return await get_async_backend().open_process( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<11 lines>... ) ^ File "B:\code\gen1\backend\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 2561, in open_process process = await asyncio.create_subprocess_exec( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<5 lines>... ) ^ File "C:\Users\spc\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\asyncio\subprocess.py", line 224, in create_subprocess_exec transport, protocol = await loop.subprocess_exec( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<3 lines>... stderr=stderr, **kwds) ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\spc\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\asyncio\base_events.py", line 1788, in subprocess_exec transport = await self._make_subprocess_transport( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ protocol, popen_args, False, stdin, stdout, stderr, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ bufsize, **kwargs) ^^^^^^^^^^^^^^^^^^ File "C:\Users\spc\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\asyncio\base_events.py", line 533, in _make_subprocess_transport raise NotImplementedError NotImplementedError ``` **To Reproduce** (Copied from the docs as is) ``` agent = LlmAgent( model=MODEL, name="capital_agent_tool", description="Retrieves the capital city using a specific tool.", instruction=get_instructions(), tools=[ MCPToolset( connection_params=StdioServerParameters( command='python', args=[ "-y", # Argument for npx to auto-confirm install "@modelcontextprotocol/server-filesystem", # IMPORTANT: This MUST be an ABSOLUTE path to a folder the # npx process can access. # Replace with a valid absolute path on your system. # For example: "/Users/youruser/accessible_mcp_files" # or use a dynamically constructed absolute path: os.path.abspath("/c/Users/spc/mcp-googledocs-server"), ], ), # Optional: Filter which tools from the MCP server are exposed # tool_filter=['list_directory', 'read_file'] ) ], output_key="expose_result" ) ``` **Expected behavior** Starts npx process **Desktop (please complete the following information):** - OS: windows 11 - Python version(python -V): cpython-3.13.3-windows-x86_64-none - ADK version: 1.2.1 - Git Bash on windows