Skip to content

Commit f7d3e33

Browse files
committed
feat(connect langgraph to mcp tools):
1 parent b979afc commit f7d3e33

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

backend/api/routers/llms.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import psycopg.errors
44
from fastapi import APIRouter
55
from langchain_core.messages import HumanMessage
6+
from langchain_mcp_adapters.tools import load_mcp_tools
67
from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver
78
from psycopg_pool import AsyncConnectionPool
89
from sse_starlette.sse import EventSourceResponse
@@ -12,6 +13,7 @@
1213
from api.core.config import settings
1314
from api.core.dependencies import LLMDep
1415
from api.core.logs import print, uvicorn
16+
from api.routers.mcps import mcp_sse_client
1517

1618
router = APIRouter(tags=["chat"])
1719

@@ -68,9 +70,15 @@ async def stream_graph(
6870
) as pool:
6971
checkpointer = await checkpointer_setup(pool)
7072

71-
graph = get_graph(llm, checkpointer=checkpointer)
72-
config = get_config()
73-
events = dict(messages=[HumanMessage(content=query)])
74-
75-
async for event in graph.astream_events(events, config, version="v2"):
76-
yield dict(data=event)
73+
async with mcp_sse_client() as session:
74+
tools = await load_mcp_tools(session)
75+
graph = get_graph(llm, tools=tools, checkpointer=checkpointer)
76+
config = get_config()
77+
events = dict(messages=[HumanMessage(content=query)])
78+
79+
async for event in graph.astream_events(
80+
events, config, version="v2"
81+
):
82+
if event.get("event").endswith("end"):
83+
print(event)
84+
yield dict(data=event)

0 commit comments

Comments
 (0)