项目简介

FastApps旨在简化ChatGPT插件或自定义动作的开发。它提供了一个Python后端框架和React前端集成,让开发者能够快速构建可供LLM调用的工具(Tools)和展示的资源(Resources),实现丰富、交互式的对话体验。框架内置对MCP协议、类型安全、CLI工具和ngrok集成的支持。

主要功能点

  • 工具(Tools)定义与执行: 使用Python定义业务逻辑,并通过Pydantic自动生成工具的输入Schema,供LLM理解和调用。
  • 资源(Resources)托管与渲染: 自动将React前端组件打包成HTML资源,通过MCP协议提供给LLM客户端进行渲染,实现丰富UI展示。
  • MCP协议支持: 完全遵循Model Context Protocol (MCP) 规范,确保与ChatGPT等LLM客户端的无缝通信。
  • 内置身份验证: 支持OAuth 2.1协议,可配置全局或针对单个工具的认证策略,保障数据安全。
  • 开发效率工具: 提供CLI命令行工具,简化项目初始化、组件创建和本地开发服务器的启动(包含ngrok隧道,方便外部访问)。
  • 类型安全: Python后端使用Pydantic进行数据验证,前端使用TypeScript增强类型安全。

安装步骤

  1. 创建虚拟环境(推荐):
    python -m venv venv
    # macOS/Linux
    source venv/bin/activate
    # Windows
    venv\Scripts\activate
  2. 安装FastApps并初始化项目:
    pip install fastapps
    fastapps init my-app
    cd my-app
  3. 安装项目依赖:
    pip install -r requirements.txt
    npm install
  4. 创建你的第一个组件:
    fastapps create my-widget
    这将生成两个文件:'server/tools/my_widget_tool.py'(后端逻辑)和'widgets/my-widget/index.jsx'(前端UI)。

服务器配置(供MCP客户端配置信息)

MCP客户端需要配置与FastApps MCP服务器连接的信息。以下是JSON格式的配置示例及其注释:

{
  "name": "MyFastAppsServer",             // 服务器的显示名称,可自定义
  "command": "python",                    // 启动FastApps服务器的命令
  "args": [                               // 启动命令的参数列表
    "server/main.py"
  ],
  "workingDirectory": "/path/to/your/my-app", // **重要**: FastApps项目的根目录,确保MCP客户端在该目录中执行命令
  "capabilities": {                       // 服务器支持的能力声明(FastApps默认支持)
    "supportsCustomResources": true,      // 支持自定义资源
    "supportsAuth": true,                 // 支持身份验证
    "supportsToolCalls": true,            // 支持工具调用
    "supportsResourceTemplates": true     // 支持资源模板
  }
}

请注意:

  • 在实际部署或本地开发时,MCP客户端还需要MCP服务器的公共可访问URL来建立连接。
  • 当您使用'fastapps dev'命令启动本地服务器时,它会提供一个ngrok公共URL(例如 'https://xyz.ngrok.io')。MCP客户端的实际端点通常是这个公共URL加上'/mcp',例如 'https://xyz.ngrok.io/mcp'。

基本使用方法

  1. 编辑组件代码: 根据你的需求修改'server/tools/my_widget_tool.py'(Python后端逻辑)和'widgets/my-widget/index.jsx'(React前端UI)。
  2. 构建前端组件:
    npm run build
  3. 启动开发服务器并提供公共访问(推荐):
    fastapps dev
    首次运行会提示你输入ngrok Auth Token(免费获取地址:'https://dashboard.ngrok.com/get-started/your-authtoken')。启动后,它会显示一个公共URL,例如 'https://xyz.ngrok.io'。
  4. 在ChatGPT中测试: 将'fastapps dev'命令输出的公共URL(例如 'https://xyz.ngrok.io')加上 '/mcp'(即 'https://xyz.ngrok.io/mcp')添加到ChatGPT的设置 > 连接器中,即可在对话中测试你的自定义组件。

信息

分类

开发者工具