Jeremiah Lowin commited on
Commit
091c20a
·
1 Parent(s): 8fefd59

Avoid hanging on initialize

Browse files
Files changed (1) hide show
  1. src/fastmcp/client/client.py +6 -0
src/fastmcp/client/client.py CHANGED
@@ -1,8 +1,10 @@
 
1
  import datetime
2
  from contextlib import AsyncExitStack, asynccontextmanager
3
  from pathlib import Path
4
  from typing import Any, cast
5
 
 
6
  import mcp.types
7
  from exceptiongroup import catch
8
  from mcp import ClientSession
@@ -161,7 +163,11 @@ class Client:
161
  self._initialize_result = await self._session.initialize()
162
 
163
  try:
 
 
164
  yield
 
 
165
  finally:
166
  self._exit_stack = None
167
  self._session = None
 
1
+ import asyncio
2
  import datetime
3
  from contextlib import AsyncExitStack, asynccontextmanager
4
  from pathlib import Path
5
  from typing import Any, cast
6
 
7
+ import anyio
8
  import mcp.types
9
  from exceptiongroup import catch
10
  from mcp import ClientSession
 
163
  self._initialize_result = await self._session.initialize()
164
 
165
  try:
166
+ with anyio.fail_after(1):
167
+ self._initialize_result = await self._session.initialize()
168
  yield
169
+ except asyncio.TimeoutError:
170
+ raise RuntimeError("Failed to initialize server session")
171
  finally:
172
  self._exit_stack = None
173
  self._session = None