当前位置: 首页 > news >正文

Crew连接多个 MCP 服务器

连接多个 MCP 服务器(Connecting to Multiple MCP Servers)内容总结

该文档核心讲解如何通过 CrewAI 中的 MCPServerAdapter 组件,同时连接多个 MCP 服务器并聚合其工具,满足智能体对多来源功能的需求,内容可分为概述、配置方法、连接管理三部分,具体如下:

一、概述

crewai-tools 库中的 MCPServerAdapter 支持并发连接多个 MCP 服务器,并自动聚合所有服务器提供的工具,统一提供给 CrewAI 智能体使用。
适用场景:当智能体需要调用分布在不同服务(如本地脚本、远程实时流服务、远程 HTTP 服务)或环境中的工具时,无需单独管理每个服务器连接,可通过一次配置实现多源工具集成。

二、核心配置方法

连接多个 MCP 服务器的核心是向 MCPServerAdapter 传递服务器参数列表(每个参数对应一个 MCP 服务器),支持的传输类型(transport)包括 stdio(本地)、sse(远程服务器发送事件)、streamable-http(远程可流式 HTTP)。

1. 配置步骤

  1. 定义多服务器参数列表:为每个 MCP 服务器创建参数配置(字典或 StdioServerParameters 对象,后者专用于 stdio 类型);
  2. 初始化 MCPServerAdapter:将参数列表传入适配器,通过上下文管理器(with 语句)启动连接;
  3. 聚合工具并使用:适配器自动加载所有服务器的工具,直接传递给智能体即可调用。

2. 关键代码示例

from crewai import Agent, Task, Crew, Process
from crewai_tools import MCPServerAdapter
from mcp import StdioServerParameters  # 用于 stdio 类型服务器
import os# 1. 定义多个 MCP 服务器的参数列表(包含 3 种传输类型)
server_params_list = [# ① Streamable HTTP 远程服务器{"url": "http://localhost:8001/mcp","transport": "streamable-http"},# ② SSE 远程服务器{"url": "http://localhost:8000/sse","transport": "sse"},# ③ Stdio 本地服务器(需用 StdioServerParameters 配置)StdioServerParameters(command="python3",  # 启动命令args=["servers/your_stdio_server.py"],  # 本地服务器脚本路径env={"UV_PYTHON": "3.12", **os.environ}  # 环境变量(如指定 Python 版本))
]# 2. 上下文管理器启动多服务器连接,自动聚合工具
try:with MCPServerAdapter(server_params_list) as aggregated_tools:# 打印所有聚合的工具名称(验证加载结果)print(f"可用的聚合工具:{[tool.name for tool in aggregated_tools]}")# 3. 创建智能体,直接使用聚合工具multi_server_agent = Agent(role="多源工具助手",goal="调用本地 Stdio、远程 SSE 和 HTTP 服务器的工具完成任务",backstory="能整合多来源 MCP 工具,灵活处理复杂需求的 AI 智能体",tools=aggregated_tools,  # 传入所有聚合工具verbose=True)# ... 后续可继续定义 Task(任务)和 Crew(智能体团队),执行具体业务逻辑except Exception as e:# 异常处理:提示连接或配置错误print(f"连接/使用多个 MCP 服务器时出错:{e}")print("请确保所有 MCP 服务器已启动,且配置参数正确(如 URL、脚本路径)。")

三、连接生命周期管理

通过 Python 上下文管理器(with 语句) 管理多服务器连接,是文档推荐的核心方式,其优势在于:

  1. 自动启停:进入 with 块时,适配器自动启动所有服务器的连接;退出 with 块时,自动关闭所有连接,无需手动调用“停止”方法;
  2. 简化资源管理:避免因遗漏关闭连接导致的资源泄漏(如本地 stdio 进程残留、远程连接占用);
  3. 统一异常处理:所有服务器的连接错误可通过外层 try...except 统一捕获,降低代码复杂度。

四、重要注意事项

  1. 服务器可用性:需确保所有配置的 MCP 服务器已启动且可访问(本地服务器脚本路径正确、远程服务器 URL 可达),否则会触发连接错误;
  2. 工具命名冲突:若不同服务器存在同名工具,CrewAI 会自动为工具添加服务器来源前缀(如 mcp_local_stdio_工具名mcp_sse_工具名),避免调用歧义(延续此前 DSL 集成中的命名规则);
  3. 传输类型匹配:每个服务器的参数需正确指定 transport 类型(如 stdio 必须用 StdioServerParameters,远程服务器需明确 ssestreamable-http),否则无法建立连接。
http://www.dtcms.com/a/520977.html

相关文章:

  • 做母婴育儿类网站好做seo排名吗网站建设细节差异化
  • 中山互联网推广:AI时代的数字营销新逻辑
  • 博罗网站建设费用无锡设计网站找哪家
  • 个人做网站要备案吗公司发展规划怎么写
  • Navicat 完整清理脚本
  • Python及Ipython解释器
  • 昇腾NPU运行Llama模型全攻略:环境搭建、性能测试、问题解决一网打尽
  • 前端通用布局(左侧侧边栏+顶部导航栏+主内容区)
  • 在线做印章的网站如何做网站导航
  • 制作微信商城网站开发怎么做仿制网站
  • 鸿蒙openharmony操作系统LiteOS-A内核技术全解析:架构、性能与开发实践
  • 【MATLAB源码-第303期】基于matlab的蒲公英优化算法(DO)机器人栅格路径规划,输出做短路径图和适应度曲线.
  • KP2203LGA/KP2205LGA芯片功能描述,内置65k/100kHz开关频率振荡器
  • asp网站程序优点东莞黄江网站建设
  • 阿里巴巴网站威海哪里做?苏州高端模板建站
  • 网站开发步骤说明书温州市建筑业联合会
  • wdt接口优化
  • 东莞网站建设服务协议wordpress字段添加按钮
  • 网站建设的技术标准中小企业网站建设渠道
  • 创建网站需要什么技术个人网站建设的方案
  • 为什么做营销型网站邯郸渊博网络有限公司
  • dir()与help()
  • chromium项目中添加源文件(BUILD.gn项目中添加源文件)
  • 网站建设远程工作太原网站建设联系方式
  • 宁波模板建站源码展示网站报价
  • 台式机电脑i9-9900K+Z390-PRO-A更换主板的辛路历程
  • 关于使用「音流」连接「Navidrome」的异地播放问题解决方案
  • 郑州网站优化价格怎么查看网站的dns
  • 谈谈 Android 中对 Binder 的理解与小结
  • 解码Linux文件IO之库的制作与应用