关于 OpenAI Integration with MCP
一个示例集成,让 OpenAI 调用 MCP 服务中的工具,面向构建工具调用应用的开发者。它演示知识库查询和 stdio 通信,并说明客户端与服务分离时可使用 SSE。
主要功能
- 01提供知识库查询工具
- 02将 MCP 工具转换为 OpenAI 函数
- 03转发工具调用及结果
- 04演示 stdio 通信
适用场景
- 01基于公司政策问答处理查询
- 02构建可调用 MCP 工具的 OpenAI 应用
- 03了解通过 stdio 传递工具调用
MCP 相关
示例服务提供 `get_knowledge_base`,客户端连接服务并向 OpenAI 转发工具及结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
使用 MCP 与 OpenAI 集成
本节演示如何将模型上下文协议(MCP)与 OpenAI 的 API 集成,创建一个系统,让 OpenAI 能够访问和使用 MCP 服务提供的工具。
概述
本示例展示如何:
- 创建一个提供知识库工具的 MCP 服务
- 将 OpenAI 连接到此 MCP 服务
- 让 OpenAI 在回答用户查询时动态使用这些工具
连接方式
本示例使用 stdio 传输 在客户端和服务端之间通信,这意味着:
- 客户端和服务端在同一进程中运行
- 客户端直接将服务端作为子进程启动
- 无需单独的服务端进程
如果你想将客户端和服务端拆分为独立应用(例如,在另一台机器上运行服务端),则需要改用 SSE(服务器发送事件)传输。有关如何设置 SSE 连接的详情,请参阅简单服务端设置一节。
数据流说明
- 用户查询:用户向系统发送查询(例如,“我们公司的休假政策是什么?”)
- OpenAI API:OpenAI 接收查询以及 MCP 服务提供的可用工具
- 工具选择:OpenAI 根据查询决定使用哪些工具
- MCP 客户端:客户端接收 OpenAI 的工具调用请求,并将其转发给 MCP 服务
- MCP 服务:服务端执行请求的工具(例如,检索知识库数据)
- 响应流:工具结果经由 MCP 客户端返回给 OpenAI
- 最终响应:OpenAI 将工具数据整合到最终响应中
OpenAI 如何执行工具
OpenAI 的函数调用机制通过以下步骤使用 MCP 工具:
- 工具注册:MCP 客户端将 MCP 工具转换为 OpenAI 的函数格式
- 工具选择:OpenAI 根据用户查询决定使用哪些工具
- 工具执行:MCP 客户端执行选定的工具并返回结果
- 上下文整合:OpenAI 将工具结果整合到响应中
MCP 的作用
MCP 充当 AI 模型与后端系统之间的标准化桥梁:
- 标准化:MCP 为 AI 模型与工具交互提供一致的接口
- 抽象化:MCP 隐藏后端系统的复杂性
- 安全性:MCP 允许你精确控制向 AI 模型公开哪些工具和数据
- 灵活性:你可以更改后端实现,而无需更改 AI 集成
实现详情
服务端(server.py)
MCP 服务提供一个 get_knowledge_base 工具,用于从 JSON 文件中检索问答对。
客户端(client.py)
客户端:
- 连接到 MCP 服务
- 将 MCP 工具转换为 OpenAI 的函数格式
- 处理 OpenAI 与 MCP 服务之间的通信
- 处理工具结果并生成最终响应
知识库(data/kb.json)
包含有关公司政策的问答对,可通过 MCP 服务查询。
运行示例
- 确保已安装所需依赖项
- 在
.env文件中设置 OpenAI API 密钥 - 运行客户端:
python client.py
注意:本示例使用 stdio 传输,因此无需单独运行服务端,客户端会自动启动它。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。