模型控制协议服务器

该项目展示了如何将模型控制协议(MCP)与OpenAI的API集成,使OpenAI能够访问和使用在Docker中运行的MCP服务器暴露的工具。

  • by TomasRodriguez2002
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 tomasrodriguez2002/mcp

使用说明

带Docker的MCP服务器

该项目演示了如何将模型控制协议(MCP)与OpenAI的API集成,使OpenAI能够访问和使用在Docker中运行的MCP服务器所公开的工具。

先决条件

  • Docker已安装在您的系统上
  • Git(克隆存储库)

项目结构

  • server.py:使用工具实现MCP服务器
  • client.py:连接到服务器并调用代理的客户端
  • Dockerfile:构建Docker镜像的说明
  • requirements.txt:项目的Python依赖关系

数据流说明

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

使用Docker运行

第一步:构建Docker镜像

docker build -t mcp-server .

步骤2:运行Docker容器

docker run -p 8050:8050 mcp-server

这将启动Docker容器内的MCP服务器,并在端口8050上公开它。

运行客户端

服务器运行后,您可以在单独的终端中运行客户端:

python client.py

客户端将连接到服务器,列出可用工具,并调用代理来回答查询。

故障排除

如果您遇到连接问题:

  1. 检查服务器是否正在运行:确保Docker容器正在运行 docker ps.

  2. 验证端口映射:确保端口正确映射到 docker ps 或者通过检查输出 docker run 命令。

  3. 检查服务器日志:使用查看服务器日志 docker logs <container_id> 查看是否有任何错误。

  4. 主机绑定:服务器已配置为绑定到 0.0.0.0 而不是 127.0.0.1 以使其可从容器外部访问。如果你仍然有问题,你可能需要检查你的防火墙设置。

  5. 网络问题:如果您在远程计算机上运行Docker,请确保可以从您的客户端计算机访问该端口。

备注

  • 服务器配置为使用SSE(服务器发送事件)传输,并在端口8050上侦听。
  • 客户端连接到服务器 http://localhost:8050/sse.
  • 启动客户端之前,请确保服务器正在运行。