You are supposed to use langchain_mcp_adapters.client.MultiServerMCPClient:
from asyncio import new_event_loop # for turning async code into sync one
from langchain_mcp_adapters.client import MultiServerMCPClient
class MyAgent:
def __init__(self):
self.event_loop = new_event_loop()
client = MultiServerMCPClient({
"my_service": {
"transport":"streamable_http",
"url":"http://localhost:3000/mcp"
},
# other services ...
})
self.agent = create_react_agent(
model=...,
system_prompt=...,
tools=self.event_loop.run_until_complete(client.get_tools()) = [],
checkpointer=...
)
This keeps a persistent reference to the resources and will open a new connection for each tool call.