MCP协议示例

一个基于Flask和OpenAI的MCP协议实现示例,展示了如何创建MCP服务器和客户端,通过OpenAI的功能调用能力执行加法运算。

  • by rgolabs
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 wubbyweb/MCP-template

使用说明

MCP Hello World示例

该项目演示了使用Flask服务器和OpenAI集成的模型上下文协议(MCP)的简单实现。它展示了如何创建一个提供数字添加功能的MCP服务器和一个可以通过OpenAI的函数调用功能使用此功能的客户端。

组件

服务器(server.py)

  • 基于Flask的MCP服务器,实现:
    • 一个简单的加法函数(add_numbers)
    • 用于功能列表和执行的MCP协议端点
    • 加法函数的JSON模式定义
    • 继续运行 http://localhost:8080

客户(client.py)

  • 与OpenAI的API和MCP服务器集成
  • 演示:
    • 从MCP服务器获取可用功能
    • 将MCP函数转换为OpenAI函数规范
    • 通过OpenAI的聊天完成进行函数调用
    • 处理和显示结果

先决条件

  • Python 3.x
  • OpenAI API密钥

安装

  1. 克隆存储库
  2. 安装依赖项:
pip install -r requirements.txt

配置

  1. 设置您的OpenAI API密钥:
export OPENAI_API_KEY="your-api-key-here"

用法

  1. 启动MCP服务器:
python server.py
  1. 在单独的终端中,运行客户端:
python client.py

客户将:

  1. 连接到MCP服务器
  2. 获取可用函数
  3. 与OpenAI的模型开始对话
  4. 通过添加两个数字(42和17)演示函数调用
  5. 显示结果

项目结构

.
├── README.md           # Project documentation
├── requirements.txt    # Python dependencies
├── server.py          # MCP server implementation
└── client.py          # OpenAI client implementation

依赖项

  • python-dotenv:环境变量管理
  • openai:OpenAI API客户端
  • flask:Web服务器框架
  • requests:HTTP客户端库

输出示例

运行客户端时,您将看到:

  1. 可用MCP功能列表
  2. 模型决定使用加法函数
  3. 函数执行结果
  4. 模型的最终响应

贡献

请随时提交问题和增强请求!