返回博客2025年3月27日1 分钟阅读

OpenAI Agents SDK 支持 MCP:入门指南

摘要

今天发现 OpenAI 的 Agents SDK 已经支持 MCP 了!这真是个好消息。对于我们这些需要让 AI 与各种工具交互的开发者来说,这无疑是个福音。MCP(模型上下文协议)本质上就是一种标准化的方式,让 AI 模型能够与外部工具和数据源进行交互。 简单来说,MCP 就像是 AI 应用的 USB-C 接口。官方文档里有个挺形象的比喻: > 就像 US...

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 连接 如果工具列表不会变,...

2026年5月9日

Cloudflare 给 agent 发了张能刷的卡

Cloudflare 这周让 agent 能自己开账号、注册域名、付费、部署。听起来像把控制权交了出去,但其实没有 - 它把控制点从 agent 的执行边缘挪到了协议层。这是个完全不一样的 agent 安全哲学,也是把 agent 当成 first-class 客户类别的开始。

最近一封 · Sample

用 AI 玩转英超 - 我把自己玩 FPL 的工作流写成了一个 Agent Skill

Fantasy Premier League 每周一次决策,每次都要看一堆分散在不同网站上的数据:球员状态、对手赛程难度、转会成本、队长候选人。我把这套工作流整理成了一个 skill,叫 fpl-copilot - 数据本地 SQLite,阵容用 Markdown 文件持久化,每个 GW 的分析输出成自包含的 HTML 报告。Claude Code 和 Codex 都能装。

—— william

Letters

来信

里面装的是

  • 新文章 — 写完一篇就寄一封,不攒货
  • 这周读到的、看到的、好用的工具
  • 正在折腾的实验,附带翻车记录

约莫 1–2 周一封 · 随时退订

合作伙伴

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

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

准备开始了吗?

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