| # graph.py | |
| from contextlib import asynccontextmanager | |
| from langchain_mcp_adapters.client import MultiServerMCPClient | |
| from langgraph.checkpoint.memory import InMemorySaver | |
| from langgraph.prebuilt import create_react_agent | |
| from prompts import AGENT_PROMPT, CHATBOT_PROMPT | |
| # Initialize checkpointer | |
| checkpointer = InMemorySaver() | |
| async def make_graph(model, answer_mode): | |
| async with MultiServerMCPClient( | |
| { | |
| "docs_mcp": { | |
| # make sure you start your server on port 8082 | |
| "url": "http://localhost:8082/sse", | |
| "transport": "sse", | |
| } | |
| } | |
| ) as client: | |
| agent = create_react_agent( | |
| model, | |
| client.get_tools(), | |
| prompt=AGENT_PROMPT if answer_mode == "Agent Mode" else CHATBOT_PROMPT, | |
| checkpointer=checkpointer) | |
| yield agent |