项目简介

该项目是一个完整的 ChatGPT 应用后端实现,它利用 Model Context Protocol (MCP) 向语言模型(LLM)提供标准化的上下文和功能。通过 OAuth2 协议与 Privy.io 进行身份认证,确保安全访问。后端由 Express 和 TypeScript/Bun 构建,支持托管可交互的 React 小组件(Widgets),并提供工具调用能力。

主要功能点

  • MCP 服务器: 核心功能,以 JSON-RPC 协议与 LLM 客户端通信,提供上下文服务。
  • 工具 (Tools): 允许 LLM 调用预定义的外部功能,例如从用户输入中提取意图、发现潜在连接等。
  • 资源 (Resources): 托管和管理可供 LLM 客户端渲染的 UI 小组件(Widgets),这些小组件可以展示复杂信息或提供交互能力。
  • OAuth2 认证: 使用 PKCE 流实现安全的 OAuth2 认证,通过 Privy.io 处理用户身份和会话管理。
  • 会话管理: 服务器负责管理用户会话,确保 LLM 客户端在不同交互中能够维持上下文。
  • 可扩展性: 支持多种传输协议,并允许轻松添加新的工具和 UI 小组件。

安装步骤

  1. 安装 Bun: 如果尚未安装,请通过以下命令安装:
    curl -fsSL https://bun.sh/install | bash
  2. 安装依赖: 在项目根目录运行:
    bun install
  3. 生成 JWT 密钥: 运行以下命令生成用于 JWT 签名的 RSA 密钥对,并将其编码为 Base64 格式,准备用于环境变量:
    openssl genrsa -out private-key.pem 2048
    openssl rsa -in private-key.pem -pubout -out public-key.pem
    
    echo "JWT_PRIVATE_KEY=$(cat private-key.pem | base64)"
    echo "JWT_PUBLIC_KEY=$(cat public-key.pem | base64)"
    
    rm private-key.pem public-key.pem
  4. 配置环境变量: 复制 '.env.example' 文件为 '.env',然后编辑 '.env' 文件,填入您的实际值。
    cp .env.example .env
    # 编辑 .env 文件,请替换括号内内容为您的实际值:
    # PRIVY_APP_ID=(从 Privy.io 控制台获取您的应用ID)
    # PRIVY_APP_SECRET=(从 Privy.io 控制台获取您的应用密钥)
    # JWT_PRIVATE_KEY=(第3步生成的Base64编码的私钥)
    # JWT_PUBLIC_KEY=(第3步生成的Base64编码的公钥)
    # SERVER_BASE_URL=(您的服务器URL,例如本地开发时是 http://localhost:3002)
    # PROTOCOL_API_URL=(您的后端API的URL)
  5. 构建并运行: 重要提示: 首次启动或修改小组件代码时,必须先构建小组件!
    # 首次运行或修改小组件时:构建小组件
    bun run build:widgets
    
    # 启动开发服务器
    bun run dev
    # 或者在生产环境:
    # bun run build
    # bun run start
    服务器默认将在 'http://localhost:3002' 启动。

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

MCP 客户端需要以下信息来连接您的 MCP 服务器。这通常以 JSON 格式配置。

{
  "server_name": "我的ChatGPT应用",
  "command": "bun",
  "args": ["run", "start"],
  "endpoint": "/mcp",
  "base_url": "http://localhost:3002"
}
  • 'server_name': 您的 MCP 服务器的显示名称,您可以自定义。
  • 'command': 启动服务器的命令,通常是 'bun'。
  • 'args': 传递给 'command' 的参数,用于运行生产环境的服务器。在示例中是 '["run", "start"]'。
  • 'endpoint': MCP 协议的 API 路径,默认为 '/mcp'。
  • 'base_url': 您的 MCP 服务器的根 URL。在本地开发时可能是 'http://localhost:3002',部署后则需修改为您的实际公共 URL。

基本使用方法

  1. 在 ChatGPT 中启用开发者模式: 访问 ChatGPT 设置 → Apps & Connectors → Advanced settings,确保 "Developer mode" 已启用。
  2. 创建连接器 (Connector): 在 ChatGPT 设置 → Connectors → Create,填写您的应用名称、描述,并将连接器 URL 设置为您的 MCP 服务器地址(例如 'https://your-server.com/mcp')。
  3. 测试 OAuth 认证流: 在 ChatGPT 中发起新对话,点击 "+" → More → 选择您创建的连接器。您将被重定向到认证页面,通过 Privy.io 登录并授权。成功后,ChatGPT 将收到 OAuth 令牌。
  4. 测试工具调用: 在 ChatGPT 中询问:“显示我的项目” 或 “帮我发现人脉”。ChatGPT 将通过 'extract_intent' 或 'discover_connections' 工具调用您的 MCP 服务器,并在聊天界面中渲染相应的小组件来展示结果。

信息

分类

开发者工具