OpenAI与MCP集成工具

通过Model Context Protocol (MCP)将OpenAI API与自定义工具集成,实现AI模型动态调用后端服务功能。

  • by Robinson777-prog
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 robinson777-prog/mcp-server

使用说明

OpenAI与MCP的集成

本节演示如何将模型上下文协议(MCP)与OpenAI的API集成,以创建一个系统,使OpenAI可以访问和使用MCP服务器提供的工具。

概述

此示例显示了如何:

  1. 创建一个公开知识库工具的MCP服务器
  2. 将OpenAI连接到此MCP服务器
  3. 允许OpenAI在响应用户查询时动态使用这些工具

连接方法

此示例使用 stdio传输 用于客户端和服务器之间的通信,这意味着:

  • 客户端和服务器在同一进程中运行
  • 客户端直接将服务器作为子进程启动
  • 不需要单独的服务器进程

如果你想将客户端和服务器拆分为单独的应用程序(例如,在不同的机器上运行服务器),你需要使用 SSE(服务器发送事件)传输 相反。有关设置SSE连接的详细信息,请参阅 简单的服务器设置 部分。

数据流说明

  1. 用户查询:用户向系统发送查询(例如,“我们公司的假期政策是什么?”)
  2. OpenAI API:OpenAI从MCP服务器接收查询和可用工具
  3. 工具选择:OpenAI根据查询决定使用哪些工具
  4. MCP客户端:客户端接收OpenAI的工具调用请求并将其转发给MCP服务器
  5. MCP服务器:服务器执行所请求的工具(例如,检索知识库数据)
  6. 响应流:工具结果通过MCP客户端流回OpenAI
  7. 最终响应:OpenAI生成包含工具数据的最终响应

OpenAI如何执行工具

OpenAI的函数调用机制通过以下步骤与MCP工具配合使用:

  1. 工具注册:MCP客户端将MCP工具转换为OpenAI的函数格式
  2. 工具选择:OpenAI根据用户查询决定使用哪些工具
  3. 工具执行:MCP客户端执行所选工具并返回结果
  4. 上下文集成:OpenAI将工具结果纳入其响应中

MCP的作用

MCP是AI模型和后端系统之间的标准化桥梁:

  • 标准化:MCP为AI模型与工具交互提供了一致的接口
  • 抽象:MCP抽象了后端系统的复杂性
  • 安全:MCP允许您精确控制哪些工具和数据暴露给AI模型
  • 灵活性:您可以在不更改AI集成的情况下更改后端实现

实现细节

服务器(server.py)

MCP服务器公开了一个 get_knowledge_base 从JSON文件中检索问答对的工具。

客户(client.py)

客户:

  1. 连接到MCP服务器
  2. 将MCP工具转换为OpenAI的函数格式
  3. 处理OpenAI和MCP服务器之间的通信
  4. 处理工具结果并生成最终响应

知识库(data/kb.json)

包含可通过MCP服务器查询的有关公司政策的问答对。

运行示例

  1. 确保已安装所需的依赖项
  2. 在中设置OpenAI API密钥 .env 文件
  3. 运行客户端: python client.py

注意:使用本例中使用的stdio传输,您不需要单独运行服务器,因为客户端会自动启动它。