使用说明

项目简介

本项目是OpenAI Agents SDK的学习示例仓库的一部分,专注于演示Model Context Protocol (MCP) 服务器的实现。其中 'server.py' 文件实现了一个基于 FastMCP 框架的简易MCP服务器。该服务器旨在展示如何利用 OpenAI Agents SDK 构建 MCP 服务器,并提供工具注册和 Server-Sent Events (SSE) 传输支持,以便与 MCP 客户端进行交互。

主要功能点

  • MCP服务器实现: 基于 'mcp.server.fastmcp' 框架,实现了符合 MCP 协议的服务器端。
  • 工具注册: 通过装饰器 '@mcp.tool()' 简单地将 Python 函数注册为 MCP 工具,方便 LLM 客户端调用。
  • 示例工具: 内置了 'add' (加法计算), 'get_secret_word' (获取随机秘密词), 'get_current_weather' (获取城市天气) 等演示工具,展示工具的功能。
  • SSE传输: 支持 Server-Sent Events (SSE) 传输协议,用于与 MCP 客户端进行实时的、基于事件的通信。

安装步骤

  1. 环境准备: 确保您的系统已安装 Python 环境。建议使用 Python 3.8 或更高版本。
  2. 克隆仓库: 将本 GitHub 仓库克隆到本地计算机。
    git clone https://github.com/GongRzhe/OpenAI-Agents-SDK-Learn.git
    cd OpenAI-Agents-SDK-Learn
  3. 安装依赖: 在仓库根目录下,运行 pip 命令安装项目所需的 Python 依赖包。
    pip install -r requirements.txt

服务器配置

本 MCP 服务器主要通过命令行启动,无需复杂的配置文件。对于需要连接到此服务器的 MCP 客户端,您需要提供以下配置信息。这些信息通常以 JSON 格式配置在 MCP 客户端中,用于描述如何连接和启动 MCP 服务器。

{
  "server name": "Echo Server",
  "command": "uvx",
  "args": ["run", "server.py"],
  "transport": "sse"
}

配置信息参数注释:

  • 'server name': 服务器的名称,可以自定义,用于在客户端标识不同的 MCP 服务器连接。例如 "Echo Server"。
  • 'command': 启动 MCP 服务器的命令。本示例使用 'uvx' 运行 'server.py' 文件。请确保您已安装 'uvx', 'uvx' 是一个快速的 Python 包安装器和运行器,这里用于启动 Python 服务器脚本。
  • 'args': 传递给启动命令的参数列表。对于本示例,参数是 '["run", "server.py"]',指示 'uvx' 运行 'server.py' 文件。
  • 'transport': MCP 服务器使用的传输协议。这里配置为 'sse',表示使用 Server-Sent Events 协议进行通信。

注意: MCP 客户端需要根据以上配置信息,使用 'uvx run server.py' 命令在后台启动 'server.py',并使用 SSE 协议与服务器建立连接。客户端无需手动配置端口和主机名,这些已在 'server.py' 中预设 (host="localhost", port=8001)。

基本使用方法

  1. 启动服务器: 打开终端,进入仓库根目录,运行以下命令启动 MCP 服务器。 请确保已安装 'uvx' ('pop install uvx')
    uvx run server.py
    服务器默认会在 'http://localhost:8001/sse' 启动并监听 SSE 连接。
  2. 运行 MCP 客户端: 使用仓库中提供的 'v9_mcp_sse.py' 或其他兼容 MCP 协议的客户端代码连接到服务器。'v9_mcp_sse.py' 示例代码演示了如何通过 SSE 传输协议与本服务器进行交互,并调用服务器提供的 'add', 'get_weather', 'get_secret_word' 等工具。 例如,运行 'v9_mcp_sse.py':
    python v9_mcp_sse.py
    客户端将发送请求到服务器,并显示服务器返回的结果,例如工具的执行结果。

通过以上步骤,您可以快速搭建并运行本示例 MCP 服务器,体验 MCP 协议在实际应用中的工作流程。

信息

分类

开发者工具