项目简介

'openai-apps-sdk' 仓库包含了两个具体的 ChatGPT 应用程序的服务器端实现:Pizzaz(披萨)和 Solar System(太阳系)。这些应用程序遵循 Model Context Protocol (MCP) 开放标准,旨在展示如何将 AI 应用程序(如 ChatGPT)与外部系统进行集成,特别是与带有交互式UI的工具和资源。通过这些示例,开发者可以了解如何构建 MCP 服务器以向大型语言模型提供上下文信息、调用外部功能和渲染定制化的UI界面。

主要功能点

  • 资源托管与管理: 提供HTML小部件作为可访问资源,供LLM客户端(如ChatGPT)按需渲染和展示,实现丰富的交互式用户体验。
  • 工具注册与执行: 定义并注册可由LLM通过自然语言指令调用的工具,例如显示披萨地图、披萨轮播图,或将太阳系视图聚焦到特定行星。
  • 与UI小部件交互: 特别支持将UI驱动的工具和资源暴露给ChatGPT,实现LLM与丰富用户界面的无缝连接。
  • 上下文服务: 以标准化方式向LLM客户端提供应用程序的特定上下文和功能,增强LLM的应用能力。

安装步骤

该仓库主要展示了已部署的 MCP 服务器示例,并提供了服务器代码供参考。如果您希望在本地运行这些示例作为 MCP 服务器,并让您的 MCP 客户端连接,请遵循以下步骤:

  1. 克隆仓库:
    git clone https://github.com/lastmile-ai/openai-apps-sdk.git
    cd openai-apps-sdk
  2. 设置 Python 环境: 确保您已安装 Python 3.9 或更高版本。建议创建并激活虚拟环境:
    python -m venv venv
    # macOS/Linux:
    source venv/bin/activate
    # Windows:
    .\venv\Scripts\activate
  3. 安装依赖: 虽然仓库未直接提供 'requirements.txt',但根据代码,您需要安装 'mcp-python-sdk'、'mcp-agent' 和 'pydantic' 等包。请分别进入 'pizzaz_server_python' 和 'solar-system_server_python' 目录安装:
    # 进入 Pizzaz 服务器目录并安装依赖
    cd pizzaz_server_python
    pip install "mcp-python-sdk[fastmcp]" mcp-agent pydantic
    cd ..
    
    # 进入 Solar System 服务器目录并安装依赖
    cd solar-system_server_python
    pip install "mcp-python-sdk[fastmcp]" mcp-agent pydantic
    cd ..
    (注意:'mcp-python-sdk[fastmcp]' 会安装 'fastmcp' 模块。)

服务器配置(供MCP客户端使用)

MCP 客户端需要配置服务器的连接信息。以下是示例 JSON 配置,用于连接到这些 MCP 服务器:

Pizzaz MCP 服务器配置示例:

{
  "name": "pizzaz-mcp-server-instance",
  "command": ["python", "pizzaz_server_python/main.py"],
  "args": [],
  "serverName": "pizzaz-python"
}
  • 'name': 客户端为此服务器连接定义的唯一名称,可根据实际情况自定义。
  • 'command': 启动 MCP 服务器进程的命令。这里指定使用 'python' 运行 'pizzaz_server_python/main.py'。请确保路径正确,指向您本地克隆的仓库中的文件。
  • 'args': 传递给启动命令的额外参数(此处为空)。
  • 'serverName': 服务器在其能力声明中广播的名称(由服务器代码中的 'FastMCP(name="...", ...)' 定义)。

Solar System MCP 服务器配置示例:

{
  "name": "solar-system-mcp-server-instance",
  "command": ["python", "solar-system_server_python/main.py"],
  "args": [],
  "serverName": "pizzaz-python"
}
  • 'name': 客户端为此服务器连接定义的唯一名称。
  • 'command': 启动 MCP 服务器进程的命令。这里指定使用 'python' 运行 'solar-system_server_python/main.py'。
  • 'args': 传递给启动命令的额外参数(此处为空)。
  • 'serverName': 根据仓库代码,Solar System 服务器的 'serverName' 也被设置为 '"pizzaz-python"'。

基本使用方法

配置好 MCP 客户端后,您可以与这些 MCP 服务器交互:

  1. 启动 MCP 客户端: 启动您的 MCP 兼容客户端(例如支持 MCP 的 ChatGPT 或其他 LLM 应用)。
  2. 建立连接: 客户端会根据上述配置信息,尝试启动并连接到 MCP 服务器进程。
  3. 自然语言交互: LLM 可以通过自然语言指令调用服务器注册的工具和访问资源。
    • 对于 Pizzaz 服务器,您可以尝试诸如“Show Pizza Map”、“Show Pizza Carousel”或“Show Pizza Video”等指令,LLM 将调用相应的工具并返回 UI 小部件。
    • 对于 Solar System 服务器,您可以尝试“Focus on Mars”、“Show Solar System and focus on Earth”等指令,LLM 将调用工具并展示太阳系UI,并将焦点置于指定行星。
  4. 渲染交互式内容: 服务器会返回相应的 UI 小部件资源和结构化内容,客户端负责在用户界面中渲染这些小部件,从而实现 LLM 驱动的交互式体验。

信息

分类

AI与计算