OpenAI Agent调用MCP Server实战教程,小白轻松入门大模型开发
我们之前介绍了MCP协议的概念是什么以及如何使用客户端cline调用MCP服务,再到如何自己动手实现MCP Server demo和MCP Client demo,循序渐进基本对MCP已经有了整体的认识。那么,MCP是随着Agent应运而生的,自然而言它最终的使用场景还是要回归AI Agent。至今为止市面上的Agent已然琳琅满目,傻瓜化的编排框架也是层出不穷。然而,想要使用MCP Server
目录
写在前面
我们之前介绍了MCP协议的概念是什么以及如何使用客户端cline调用MCP服务,再到如何自己动手实现MCP Server demo和MCP Client demo,循序渐进基本对MCP已经有了整体的认识。
那么,MCP是随着Agent应运而生的,自然而言它最终的使用场景还是要回归AI Agent。至今为止市面上的Agent已然琳琅满目,傻瓜化的编排框架也是层出不穷。然而,想要使用MCP Server的Agent框架自然也必须支持MCP协议才行。
今天还是以最通俗易懂的形式来介绍一个OpenAI Agent调用MCP Server的简单案例分析,化繁为简帮助大家体验和进一步理解MCP与Agent的结合编码实现。(其实Agent的过程体验我们在《在Cline上调用MCP服务之MCP实践篇》也早就有过交手)
阅读本文默认已经掌握python语法基础。
一、OpenAI Agent调用MCP Server案例
我们参考openai官方的openai-agents-python教程,以实现一个Agent接入天气查询MCP Server的案例来分析理解。
1、MCP 的两种调用方式SSE/stdio
在案例开始之前先来看下MCP的通信方式。
MCP 的两种主要调用方式如下,其核心差异体现在通信机制和应用场景上:
stdio(标准输入/输出)
本地进程通信:通过标准输入输出流实现本地进程间的高效交互,适用于本地部署的大模型与工具的直接集成。
特点:低延迟、无网络依赖,常用于开发调试或单机环境下的快速原型验证。
SSE(Server-Sent Events)
远程实时通信:基于 HTTP 的单向事件流协议,支持云端服务与客户端的长连接通信,适合分布式系统中的工具调用。
特点:
支持服务端主动推送数据(如持续返回计算中间结果)
兼容主流浏览器和 HTTP 生态
内置断线重连机制保障稳定性
两种方式均遵循统一的 JSON-RPC 2.0 消息格式规范,包含请求(Request)、响应(Response)和通知(Notification)三种标准消息类型,确保不同实现间的互操作性。开发者可根据部署环境和性能需求灵活选择:本地工具链优先采用 stdio,云端服务则推荐 SSE 方案。
类似配置体验如下:
stdio:
2、创建并运行一个名为“Weather Server”的服务器实例
注意代码中的相关依赖可以先进行安装,参考官方传送门。
# 导入requests库,用于发送HTTP请求import requests
# 从mcp.server.fastmcp模块导入FastMCP类from mcp.server.fastmcp import FastMCP
# 创建一个FastMCP服务器实例,命名为"Weather Server"# 这里假设mcp.server.fastmcp是一个自定义模块,用于创建和管理服务器
mcp = FastMCP("Weather Server")# 使用mcp.tool()装饰器定义一个工具函数get_current_weather# 这个函数接收一个城市名称作为参数,并返回该城市的当前天气信息@mcp.tool()defget_current_weather(city:str)->str:# 打印调试信息,显示正在查询的城市天气print(f"[debug-server] get_current_weather({city})")# 定义天气API的端点
endpoint ="https://wttr.in"# 使用requests库发送GET请求到天气API,获取指定城市的天气信息# 注意:这里直接将城市名称拼接到URL中,实际使用中应考虑URL编码问题
response = requests.get(f"{endpoint}/{city}")# {endpoint}/{city} => https://wttr.in/泉州# 返回天气API的响应文本,这里假设响应文本是天气信息return response.text
# 如果当前脚本作为主程序运行(而非被导入到其他脚本中)if __name__ =="__main__":# 启动mcp服务器,指定传输方式为sse(Server-Sent Events,服务器发送事件)# 这里假设FastMCP类支持sse作为通信方式
mcp.run(transport="sse")
该段Python代码的主要功能是创建并运行一个名为“Weather Server”的服务器实例,该实例利用自定义的FastMCP类(假定来自mcp.server.fastmcp模块)进行管理。服务器上定义了一个工具函数get_current_weather,用于获取指定城市的当前天气信息。
其中,wttr.in 是开源的一个面向控制台的天气预报服务,支持多种信息展示方式,如面向终端的 ANSI 序列,适用于控制台 HTTP 客户端(如 curl、httpie 或 wget),HTML 格式适用于网页浏览器,以及 PNG 格式适用于图形查看器。
仓库地址:https://gitcode.com/gh_mirrors/wt/wttr.in/
接口爱之初体验如下:
3、创建SSE服务器并通过Agent登记调用
# 导入必要的模块from agents.mcp.server import MCPServerSse # 导入SSE服务器实现import asyncio # Python异步IO库from agents import Agent, Runner, AsyncOpenAI, OpenAIChatCompletionsModel # 导入AI代理相关类from agents.mcp import MCPServer # 导入MCP服务器接口# 定义运行函数,接收MCP服务器实例asyncdefrun(mcp_server: MCPServer):# 创建外部OpenAI客户端实例
external_client = AsyncOpenAI(
api_key="",# OpenAI API密钥
base_url="",# OpenAI API基础URL https://api.openai.com/v1 OpenAI库已内置该URL)# 创建AI代理实例
agent = Agent(
name="Assistant",# 代理名称
instructions="Use the tools to answer the questions.",# 代理指令
mcp_servers=[mcp_server],# 关联的MCP服务器列表
model=OpenAIChatCompletionsModel(# 使用的模型配置
model="gpt-4o",# 模型名称
openai_client=external_client,# 使用的OpenAI客户端),)# 定义测试消息
message ="泉州今天的天气怎么样?"print(f"Running input: {message}")# 打印运行信息# 运行代理并获取结果
result =await Runner.run(starting_agent=agent,input=message)print(result.final_output)# 打印最终输出# 主函数asyncdefmain():# 使用上下文管理器创建SSE服务器实例asyncwith MCPServerSse(
name="SSE Python Server",# 服务器名称
params={"url":"http://localhost:8000/sse",# 服务器URL sse默认是8000},)as server:await run(server)# 运行主逻辑# 程序入口if __name__ =="__main__":try:
asyncio.run(main())# 运行异步主函数finally:
这段代码主要功能是:
创建一个SSE服务器;
配置一个AI代理(使用GPT-4模型);
通过代理处理用户输入(“泉州今天的天气怎么样?”);
输出处理结果。
运行将看到类似效果:
Running input: 泉州今天的天气怎么样?
今天泉州的天气是局部多云,气温大约在28℃,风速为 10 km/h,能见度为 10 km。预计全天无降水。
至此,我们的OpenAI Agent调用MCP Server案例分析结束,主要介绍了如何Agent调用MCP的过程。
二、支持MCP的框架有哪些
以下是支持 MCP 协议的 Agent 框架(部分可能暂不支持MCP,使用前请先进行甄别)及相关工具的表格列表(欢迎补充):
类型 | 名称/工具 | 特点说明 |
---|---|---|
原生支持框架 | CrewAI | 通过 automcp 实现 MCP 协议转换,支持工具交互 |
LangGraph | 微软生态框架,深度集成 MCP 协议,适合复杂协作 | |
Llama Index | 数据连接层使用 MCP 协议优化工具调用精准度 | |
可扩展框架 | OpenAI Agents SDK | 借助 automcp 转换为 MCP 服务器,实现跨平台互操作 |
Pydantic AI | 模块化设计兼容 MCP,支持快速构建符合企业规范的 Agents | |
Spring AI | Java 技术栈通过 MCP Client/Server 架构实现标准化集成 | |
开发平台 | Azure AI Foundry | 原生集成 MCP 协议栈,提供端到端 Agent 开发支持 |
Copilot Studio | 可视化配置 MCP 工具链,降低接入门槛 | |
配套工具 | automcp | 关键协议转换工具,支持 CrewAI/LangGraph 等框架与 MCP 生态无缝对接 |
Java MCP SDK | 提供 Stdio/HTTP SSE 传输层实现,适配企业级安全规范 | |
其他 | Dify | Dify是一个开源(Apache 2.0)的大语言模型(LLM)应用开发平台,融合了后端即服务(Backend as Service, BaaS)和 LLMOps 理念,旨在简化和加速生成式AI应用的创建和部署。它支持多种大型语言模型(如OpenAI的GPT系列、Claude3等),并提供强大的数据集管理功能、可视化的 Prompt 编排以及应用运营工具。支持Docker/K8s,自定义工具和策略。 |
deer-flow | DeerFlow(Deep Exploration and Efficient Research Flow)是一个社区驱动的深度研究框架,它建立在开源社区的杰出工作基础之上。我们的目标是将语言模型与专业工具(如网络搜索、爬虫和 Python 代码执行)相结合,同时回馈使这一切成为可能的社区。 | |
Agentflow v2 | 开源(Apache 2.0),支持Docker部署,自定义节点和MCP | |
n8n | 开源(Fair-Code),支持Docker/K8s,强大的自定义节点和代码集成 | |
Make | 闭源SaaS,支持有限的自定义模块和代码 | |
Zapier | 闭源SaaS,主要通过Code步骤和Webhook实现有限自定义 |
自定义节点和MCP |
| | n8n | 开源(Fair-Code),支持Docker/K8s,强大的自定义节点和代码集成 |
| | Make | 闭源SaaS,支持有限的自定义模块和代码 |
| | Zapier | 闭源SaaS,主要通过Code步骤和Webhook实现有限自定义 |
(注:表格内容基于公开技术文档整理,具体实现需参考各框架官方指南)
零基础如何高效学习大模型?
你是否懂 AI,是否具备利用大模型去开发应用能力,是否能够对大模型进行调优,将会是决定自己职业前景的重要参数。
为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和鲁为民博士系统梳理大模型学习脉络,这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️
【大模型全套视频教程】
教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。
从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。
同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!
深耕 AI 领域技术专家带你快速入门大模型
跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!
【精选AI大模型权威PDF书籍/教程】
精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。
【AI 大模型面试题 】
除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。
【大厂 AI 岗位面经分享(92份)】
【AI 大模型面试真题(102 道)】
【LLMs 面试真题(97 道)】
【640套 AI 大模型行业研究报告】
【AI大模型完整版学习路线图(2025版)】
明确学习方向,2025年 AI 要学什么,这一张图就够了!
👇👇点击下方卡片链接免费领取全部内容👇👇
抓住AI浪潮,重塑职业未来!
科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。
行业趋势洞察:
- 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
- 人才争夺战: 拥有3-5年经验、扎实AI技术功底和真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
- 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。
与其观望,不如行动!
面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。
01 为什么分享这份学习资料?
当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。
因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!
我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。
*02 这份资料的价值在哪里?*
专业背书,系统构建:
-
本资料由我与鲁为民博士共同整理。鲁博士拥有清华大学学士和美国加州理工学院博士学位,在人工智能领域造诣深厚:
-
- 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇。
- 拥有多项中美发明专利。
- 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
-
目前,我有幸与鲁博士共同进行人工智能相关研究。
内容实用,循序渐进:
-
资料体系化覆盖了从基础概念入门到核心技术进阶的知识点。
-
包含丰富的视频教程与实战项目案例,强调动手实践能力。
-
无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考,助力你提升技术能力,向大模型相关岗位转型发展。
抓住机遇,开启你的AI学习之旅!
更多推荐
所有评论(0)