返回博客2025年3月27日

OpenAI Agents SDK 支持 MCP:入门指南

OpenAIMCPAgents SDKPython

OpenAI Agents SDK 支持 MCP:入门指南

OpenAI Agents SDK 支持 MCP

引言

今天发现 OpenAI 的 Agents SDK 已经支持 MCP 了!这真是个好消息。对于我们这些需要让 AI 与各种工具交互的开发者来说,这无疑是个福音。MCP(模型上下文协议)本质上就是一种标准化的方式,让 AI 模型能够与外部工具和数据源进行交互。

MCP 是什么鬼?

简单来说,MCP 就像是 AI 应用的 USB-C 接口。官方文档里有个挺形象的比喻:

就像 USB-C 为设备连接各种外设提供标准化方式一样,MCP 为 AI 模型连接不同数据源和工具提供了标准化方式。

我个人理解,MCP 就是让 AI 能够"插上"各种工具的标准接口,不用每次都重新发明轮子。OpenAI 把这个支持内置到了 Agents SDK 中,这样我们就能轻松地让 Agent 使用各种 MCP 服务器提供的工具了。

MCP 服务器种类

目前 MCP 有两种类型的服务器:

  1. stdio 服务器:这种就是在本地运行的,作为应用程序的子进程。
  2. HTTP over SSE 服务器:这种是远程的,通过 URL 连接。

OpenAI 提供了对应的类:MCPServerStdioMCPServerSse 来连接这两种服务器。挺方便的!

怎么用 MCP 服务器?

举个例子,如果想用官方的文件系统 MCP 服务器,代码大概是这样:

async with MCPServerStdio(
    params={
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-filesystem", samples_dir],
    },
) as server:
    tools = await server.list_tools()

这段代码会启动一个文件系统 MCP 服务器,然后获取它提供的所有工具。

把 MCP 服务器加到 Agent 里

要让 Agent 使用 MCP 服务器的工具,只需要在创建 Agent 时把服务器实例传进去就行了:

agent=Agent(
    name="Assistant",
    instructions="使用工具完成任务",
    mcp_servers=[mcp_server_1, mcp_server_2]
)

每次 Agent 运行时,SDK 会自动调用 list_tools() 让 LLM 知道有哪些工具可用。当 LLM 决定使用某个工具时,SDK 会调用相应服务器的 call_tool() 方法。整个过程对开发者来说是透明的,不用操心细节。

缓存小技巧

每次 Agent 运行都会调用 list_tools(),如果是远程服务器,这可能会导致一些延迟。有个小技巧是启用缓存:

async with MCPServerSse(
    params={...},
    cache_tools_list=True  # 启用缓存
) as server:
    # ...

不过要注意,只有当你确定工具列表不会变的情况下才应该这样做。如果工具列表变了,可以调用 invalidate_tools_cache() 来刷新缓存。

完整示例在哪?

如果想看完整的代码示例,可以去 examples/mcp 看看。那里有几个不同场景的示例,对入门很有帮助。

跟踪功能很赞

OpenAI 的跟踪功能也支持 MCP 了,它会自动记录:

  1. 调用 MCP 服务器列出工具的操作
  2. 函数调用中与 MCP 相关的信息

MCP 跟踪截图

这对调试超级有用,可以清楚地看到 Agent 是如何使用 MCP 工具的。

总结一下

总的来说,OpenAI Agents SDK 对 MCP 的支持让我们能够更轻松地将各种工具集成到 AI 应用中。不管是本地工具还是远程服务,只要遵循 MCP 协议,都可以无缝接入。这大大扩展了 AI 应用的能力边界,让我们能够构建更加强大和灵活的 AI 系统。

如果你正在开发 AI 应用,强烈建议试试这个功能!

参考资源


往期回顾

相关文章

2025年3月27日

OpenAI Agents SDK 支持 MCP 极简指南

OpenAI Agents SDK 现已支持 MCP!这意味着我们可以更轻松地让 AI 使用各种外部工具了。 MCP(模型上下文协议)就像 AI 的 USB 接口,让 AI 能标准化地连接各种工具和数据源。 - **stdio 服务器**:本地运行,作为子进程 - **HTTP over SSE 服务器**:远程运行,通过 URL 连接 如果工具列表不会变,...

OpenAIMCPAgents SDK

2026年3月6日

MCP Apps:让 AI 对话里长出交互界面

MCP 工具一直只能返回文本。现在 MCP Apps 让工具可以返回完整的交互式界面 - 表单、仪表盘、3D 模型、实时监控 - 直接嵌在对话里。这是 MCP 协议最重要的一次扩展。

MCPMCP AppsAI Agent

合作伙伴

CompeteMap — 英国及爱尔兰学生竞赛一站式搜索

数学、编程、科学、写作等各类竞赛信息汇总,支持按年龄和科目筛选,再也不错过报名截止日。

准备开始了吗?

先简单说明目标,我会给出最合适的沟通方式。