项目简介
'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 客户端连接,请遵循以下步骤:
- 克隆仓库:
git clone https://github.com/lastmile-ai/openai-apps-sdk.git cd openai-apps-sdk - 设置 Python 环境:
确保您已安装 Python 3.9 或更高版本。建议创建并激活虚拟环境:
python -m venv venv # macOS/Linux: source venv/bin/activate # Windows: .\venv\Scripts\activate - 安装依赖:
虽然仓库未直接提供 'requirements.txt',但根据代码,您需要安装 'mcp-python-sdk'、'mcp-agent' 和 'pydantic' 等包。请分别进入 'pizzaz_server_python' 和 'solar-system_server_python' 目录安装:
(注意:'mcp-python-sdk[fastmcp]' 会安装 'fastmcp' 模块。)# 进入 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客户端使用)
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 服务器交互:
- 启动 MCP 客户端: 启动您的 MCP 兼容客户端(例如支持 MCP 的 ChatGPT 或其他 LLM 应用)。
- 建立连接: 客户端会根据上述配置信息,尝试启动并连接到 MCP 服务器进程。
- 自然语言交互: 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,并将焦点置于指定行星。
- 渲染交互式内容: 服务器会返回相应的 UI 小部件资源和结构化内容,客户端负责在用户界面中渲染这些小部件,从而实现 LLM 驱动的交互式体验。
信息
分类
AI与计算