OpenAI 的 Agents SDK 现在可以连接使用MCP了

专区直通车>>>juejin.cn/aicoding

The 模型上下文协议(简称 MCP)是一种为LLM提供工具和上下文的方法。从 MCP 文档中:

MCP 是一个开放协议,标准化了应用程序向LLMs提供上下文的方式。想象一下,MCP 就像 AI 应用程序的 USB-C 端口。就像 USB-C 提供了一种标准化的方式将设备连接到各种外设和配件一样,MCP 提供了一种标准化的方式将 AI 模型连接到不同的数据源和工具。

Agents SDK 支持 MCP。这使得您可以使用广泛的 MCP 服务器为您的代理提供工具。

MCP 服务器

目前,MCP 规范定义了两种类型的服务器,基于它们使用的传输机制:

  1. stdio 服务器作为您应用程序的子进程运行。您可以将其视为"本地"运行。
  2. HTTP over SSE 服务器运行在远程。您可以通过 URL 连接到它们。

您可以使用 MCPServerStdio 和 MCPServerSse 类来连接这些服务器。

例如,这是如何使用 官方 MCP 文件系统服务器的示例。

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

使用 MCP 服务器

MCP 服务器可以添加到代理中。每次运行代理时,代理 SDK 都会调用 MCP 服务器上的 list_tools()。这使得LLM了解 MCP 服务器的工具。当LLM从 MCP 服务器调用一个工具时,SDK 会调用该服务器上的 call_tool()。

ini 复制代码
agent=Agent(
    name="Assistant",
    instructions="Use the tools to achieve the task",
    mcp_servers=[mcp_server_1, mcp_server_2]
)

缓存

每次运行代理时,它都会调用 MCP 服务器上的 list_tools()。如果服务器是远程服务器,这可能会导致延迟。为了自动缓存工具列表,可以将 cache_tools_list=True 传递给 MCPServerStdio 和 MCPServerSse。只有在确定工具列表不会更改时,才应执行此操作。

如果您想刷新缓存,可以在服务器上调用 invalidate_tools_cache()。

端到端示例

查看完整的示例代码:examples/mcp。

跟踪

跟踪会自动捕获 MCP 操作,包括:

  1. 调用 MCP 服务器列出工具
  2. 函数调用相关的 MCP 信息
相关推荐
坐吃山猪12 分钟前
Python22-PostMan调试MCP
测试工具·postman·mcp
Danny转行做跨境20 小时前
AI 搜索时代选品数据采集: MCP 与爬虫实战对比
跨境电商·mcp·sorftime
壹米饭1 天前
手搓 MCP 到最简 Agent,我都做了什么?
agent·ai编程·mcp
Sakura_j_h_1 天前
从零写一个 MCP stdio Server:用 Python 校验博客文章格式
开发语言·python·自动化·ai工具·mcp·json-rpc
xrlfreedom1 天前
MCP 面试高频考点:企业内网统一管理多个 MCP Server,Tools 权限与审计怎么落地?
tools·mcp·最小权限与审计日志·typescript mcp sdk
风雨中的小七1 天前
解密Prompt系列73. 爆改对话框:揭秘 Intelligent UI 的动态界面魔法
llm·agent·mcp
正在走向自律2 天前
AI Agent 落地这一年:从“能跑起来”到“敢放出去”
大数据·人工智能·ai agent·智能体·mcp·a2a
VIP_CQCRE2 天前
视频任务显示‘已提交’之后:别让异步生成变成黑盒
异步任务·工作流·ai视频·mcp
xrlfreedom2 天前
MCP 面试高频考点:为团队沉淀可复用 Prompts 工作流,Tools、Resources、RAG 怎么分工?
tools·resources·mcp·rag 知识库
vjmap2 天前
MCP 实战:在 WorkBuddy 里一句话让 AI 生成红军长征地图动画(唯杰 AI 地图动画 MCP 接入教程)
aigc·gis·mcp