请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如果我们需要引入多个MCP Server代码如何实现(也就是智能体链接多个MCP Server)

如果我们需要引入多个MCP Server代码如何实现(也就是智能体链接多个MCP Server)

正在回答 回答被采纳积分+3

1回答

Sam 2025-06-19 13:07:33

我们可以提供多个 MCP Client,然后每个 Client 通过 get_tools 方法获取工具,然后把工具集合起来传给 Agent,下面给出示例代码:

# 第一步:定义 MCP Stdio 协议客户端的通用方法
async def create_mcp_stdio_client(name, params):
    config = {
        name: {
            "transport": "stdio",
            **params,
        }
    }
    print(config)
    client = MultiServerMCPClient(config)

    tools = await client.get_tools()

    return client, tools

    
# 第二步:定义 MCP Client 1
async def get_stdio_terminal_tools():
    params = {
        "command": "python",
        "args": [
            "/Users/sam/Work/AI/coding_agent/app/mcp/terminal.py",
        ],
    }

    client, tools = await create_mcp_stdio_client("terminal", params)

    return tools

    
# 第三步:定义 MCP Client 2
async def get_stdio_rag_tools():
    params = {
        "command": "python",
        "args": [
            "/Users/sam/Work/AI/coding_agent/app/mcp/rag.py",
        ],
    }

    client, tools = await create_mcp_stdio_client("rag", params)

    return tools

    
# 第四步:将多个 MCP Client Tools 合并
terminal_tools = await get_stdio_terminal_tools()
rag_tools = await get_stdio_rag_tools()

tools = terminal_tools + rag_tools
print(tools)


# 第五步:生成 Agent
agent = initialize_agent(
    llm=llm_qwen,
    tools=tools,
    agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True,
    max_iterations=50,
)


0 回复 有任何疑惑可以回复我~
  • 提问者 慕码人7218346 #1
    对于以上的方法中get_stdio_terminal_tools()和get_stdio_rag_tools()都只是返回了tools,没有发返回client。在后面agent(智能体)调用的时候这个client是不需要的吗?我之前是C++开发,感觉这样的话client两个对象就直接释放了,所以后面还能调用到里面的工具吗?
    回复 有任何疑惑可以回复我~ 2025-06-19 13:44:35
  • Sam 回复 提问者 慕码人7218346 #2
    我写的这个例子里没有返回client,如果后续需要用client的话,需要修改代码,不然调用不到。
    回复 有任何疑惑可以回复我~ 2025-06-19 18:54:39
  • Sam 回复 提问者 慕码人7218346 #3
    后续agent调用不需要使用client
    回复 有任何疑惑可以回复我~ 2025-06-19 18:55:03
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号