Spaces:
Running
Running
| import os | |
| from langchain_mcp_adapters.client import MultiServerMCPClient | |
| from langgraph.prebuilt import create_react_agent | |
| from langchain_community.chat_models import ChatTongyi | |
| llm = ChatTongyi(model_name="qwen-turbo") | |
| mcp_config = { | |
| "filesystem": { | |
| "disabled": False, | |
| "timeout": 60, | |
| "command": "npx", | |
| "args": [ | |
| "-y", | |
| "@modelcontextprotocol/server-filesystem", | |
| ".", | |
| ], | |
| "transport": "stdio", | |
| }, | |
| "baidu-maps": { | |
| "url": f"https://mcp.map.baidu.com/sse?ak={os.getenv('BAIDU_MAP_AK')}", | |
| "transport": "sse", | |
| }, | |
| } | |
| async def get_agent(tools=None): | |
| if tools: | |
| mcp_config_ = { | |
| tool_name: tool_config | |
| for tool_name, tool_config in mcp_config.items() | |
| if tool_name in tools | |
| } | |
| else: | |
| mcp_config_ = mcp_config | |
| client = MultiServerMCPClient(mcp_config_) | |
| tools = await client.get_tools() | |
| agent = create_react_agent(llm, tools) | |
| return agent | |