模型协议 OpenAI 工具集成
一个将模型控制协议(MCP)与OpenAI的API集成的项目,允许OpenAI访问并使用由容器化MCP服务器暴露的工具。
服务介绍
MCP 服务器与 Docker
该项目展示了如何将模型控制协议(MCP)与 OpenAI 的 API 集成,使 OpenAI 能够访问和使用通过 Docker 运行的 MCP 服务器暴露的工具。
前提条件
- 系统上已安装 Docker
- Git(用于克隆仓库)
项目结构
server.py:包含一个工具的 MCP 服务器实现client.py:连接到服务器并调用代理的客户端Dockerfile:构建 Docker 镜像的指令requirements.txt:项目的 Python 依赖项
数据流说明
- 用户查询:用户向系统发送查询(例如,“我们公司的休假政策是什么?”)
- OpenAI API:OpenAI 接收到查询以及来自 MCP 服务器的可用工具
- 工具选择:OpenAI 根据查询决定使用哪些工具
- MCP 客户端:客户端接收 OpenAI 的工具调用请求,并将其转发给 MCP 服务器
- MCP 服务器:服务器执行所请求的工具(例如,检索知识库数据)
- 响应流:工具结果通过 MCP 客户端返回给 OpenAI
- 最终响应:OpenAI 生成包含工具数据的最终响应
使用 Docker 运行
第一步:构建 Docker 镜像
bash
docker build -t mcp-server .
第二步:运行 Docker 容器
bash
docker run -p 8050:8050 mcp-server
这将在 Docker 容器中启动 MCP 服务器,并将其暴露在 8050 端口上。
运行客户端
一旦服务器开始运行,您可以在另一个终端中运行客户端:
bash
python client.py
客户端将连接到服务器,列出可用工具,并调用代理来回答查询。
故障排除
如果您遇到连接问题:
-
检查服务器是否正在运行:确保 Docker 容器正在运行,可以使用
docker ps查看。 -
验证端口映射:确保端口正确映射,可以通过
docker ps或查看docker run命令的输出来确认。 -
检查服务器日志:使用
docker logs <container_id>查看服务器日志,看看是否有任何错误。 -
主机绑定:服务器配置为绑定到
0.0.0.0而不是127.0.0.1,以便从容器外部访问。如果仍然存在问题,可能需要检查您的防火墙设置。 -
网络问题:如果您在远程机器上运行 Docker,请确保该端口可以从您的客户端机器访问。
注意事项
- 服务器配置为使用 SSE(Server-Sent Events)传输,并监听 8050 端口。
- 客户端在
http://localhost:8050/sse连接到服务器。 - 在启动客户端之前,请确保服务器已经运行。