2
2
3
3
import asyncio
4
4
import json
5
+ import logging
5
6
from contextlib import AsyncExitStack
6
7
from pathlib import Path
7
8
8
9
from mcp import ClientSession , StdioServerParameters
9
10
from mcp .client .stdio import stdio_client
10
11
from pydantic import BaseModel
11
12
13
+ logger = logging .getLogger (__name__ )
14
+
12
15
13
16
class MCPServerConfig (BaseModel ):
14
17
command : str
@@ -45,7 +48,7 @@ async def connect_to_servers(self) -> None:
45
48
server_script_path: Path to the server script (.py or .js)
46
49
"""
47
50
for name , server_config in self .config .servers .items ():
48
- print (f"Connecting to server: { name } " )
51
+ logger . info (f"Connecting to server: { name } " )
49
52
server_params = StdioServerParameters (
50
53
command = server_config .command ,
51
54
args = server_config .args or [],
@@ -64,15 +67,15 @@ async def connect_to_servers(self) -> None:
64
67
# List available tools
65
68
response = await self .sessions [name ].list_tools ()
66
69
tools = response .tools
67
- print ("\n Connected to server with tools:" , [tool .name for tool in tools ])
68
70
69
- async def cleanup (self ):
71
+ async def cleanup (self ) -> None :
70
72
"""Clean up resources"""
71
- # await self.exit_stack.aclose()
72
73
73
- for name , stack in self .exit_stack .items ():
74
- print (f"Cleaning up server: { name } " )
75
- await stack .aclose ()
74
+ # Unfortunately, the below code seems to have an issue
75
+
76
+ # for name, stack in self.exit_stack.items():
77
+ # logger.info(f"Cleaning up server: {name}")
78
+ # await stack.aclose()
76
79
77
80
78
81
async def main ():
0 commit comments