模型上下文协议(MCP)

openai.github.io 2026-07-07T09:13:40.344838

模型上下文协议(MCP)标准化了应用程序向语言模型暴露工具和上下文的方式。官方文档指出:

MCP 是一个开放协议,标准化了应用程序如何向 LLM(大语言模型)提供上下文。可以把 MCP 想象成 AI 应用程序的 USB-C 接口。正如 USB-C 提供了一种标准化方式将设备连接到各种外设和配件,MCP 提供了一种标准化方式将 AI 模型连接到不同的数据源和工具。

Agents Python SDK 支持多种 MCP 传输方式。这让你可以复用已有的 MCP 服务器,或者构建自己的服务器,将基于文件系统、HTTP 或连接器的工具暴露给 agent(智能体)。

选择 MCP 集成

在将 MCP 服务器接入智能体之前,需要决定工具调用应在何处执行,以及你可以使用哪些传输方式。下表总结了 Python SDK 支持的选项。

你的需求 推荐选项
让 OpenAI 的 Responses API 代表模型调用可公开访问的 MCP 服务器 托管 MCP 服务器工具,通过 HostedMCPTool
连接到本地或远程运行的 Streamable HTTP 服务器 Streamable HTTP MCP 服务器,通过 MCPServerStreamableHttp
与实现 HTTP 服务器发送事件(Server-Sent Events)的服务器通信 HTTP with SSE MCP 服务器,通过 MCPServerSse
启动本地进程并通过 stdin/stdout 通信 stdio MCP 服务器,通过 MCPServerStdio

以下各节将详细介绍每个选项、如何配置以及何时选择某种传输方式。

智能体级别的 MCP 配置

除了选择传输方式,你还可以通过设置 Agent.mcp_config 来调整 MCP 工具的准备工作。

from agents import Agent

模型上下文协议 (MCP) - OpenAI Agents SDK

agent = Agent(
    name="Assistant",
    mcp_servers=[server],
    mcp_config={
        # 尝试将 MCP 工具架构转换为严格的 JSON 模式。
        "convert_schemas_to_strict": True,
        # 如果为 None,MCP 工具故障将作为异常抛出,而非返回模型可见的错误文本。
        "failure_error_function": None,
        # 为本地 MCP 工具名称添加其服务器名称前缀。
        "include_server_in_tool_names": True,
    },
)

注意事项:

在选择传输方式后,大多数集成需要进行相同的后续决策:

对于本地 MCP 服务器(MCPServerStdioMCPServerSseMCPServerStreamableHttp),审批策略和每次调用的 _meta 负载也是共享的概念。Streamable HTTP 部分展示了最完整的示例,同样的模式也适用于其他本地传输方式。

1. 托管 MCP 服务器工具

查看原文