Skip to main content
Agno 的 MCP 集成还支持处理与多个服务器的连接、指定服务器参数以及使用您自己的 MCP 服务器:

连接到多个 MCP 服务器

您可以通过使用 MultiMCPTools 类在单个代理中同时使用多个 MCP 服务器。
multiple_mcp_servers.py

理解服务器参数

配置 MCPToolsMultiMCPTools 的推荐方式是使用 commandurl 参数。 或者,您可以使用 MCPToolsserver_params 参数来更详细地配置到 MCP 服务器的连接。 当使用 stdio 传输时,server_params 参数应为 StdioServerParameters 的实例。它包含以下键:
  • command: 运行 MCP 服务器的命令。
    • 对于可以通过 npm 安装的 mcp 服务器,请使用 npx(或在 Windows 上运行则使用 node)。
    • 对于可以通过 uvx 安装的 mcp 服务器,请使用 uvx
  • args: 传递给 MCP 服务器的参数。
  • env: 可选的要传递给 MCP 服务器的环境变量。请记住将所有当前环境变量包含在 env 字典中。如果未提供 env,则将使用当前环境变量。 例如:
当使用 SSE 传输时,server_params 参数应为 SSEClientParams 的实例。它包含以下字段:
  • url: MCP 服务器的 URL。
  • headers: 传递给 MCP 服务器的标头(可选)。
  • timeout: 到 MCP 服务器连接的超时时间(可选)。
  • sse_read_timeout: SSE 连接本身超时的等待时间(可选)。
当使用 Streamable HTTP 传输时,server_params 参数应为 StreamableHTTPClientParams 的实例。它包含以下字段:
  • url: MCP 服务器的 URL。
  • headers: 传递给 MCP 服务器的标头(可选)。
  • timeout: 到 MCP 服务器连接的超时时间(可选)。
  • sse_read_timeout: 客户端等待新事件断开连接的最长时间(以秒为单位)。所有其他 HTTP 操作由 timeout 控制(可选)。
  • terminate_on_close: 客户端关闭时是否终止连接(可选)。

更大的灵活性

您也可以自己创建 MCP 服务器并将其传递给 MCPTools 构造函数。
filesystem_agent.py