项目简介

这是一个完整的、可部署到AWS的全栈SaaS应用后端示例,其核心是基于Model Context Protocol (MCP) 实现的服务器。它提供标准化的上下文信息和功能给LLM(大型语言模型)客户端,包括用户资源管理和工具调用。该项目还集成了OAuth2认证、Stripe支付、Mailgun邮件服务和PostgreSQL数据库。

主要功能点

  • MCP 服务器核心功能:
    • 资源管理: 托管并管理 'user-profile' 等用户相关资源,允许LLM客户端按需访问用户个人信息和上下文。
    • 工具执行: 注册并执行 'get-user-profile'、'update-user-profile' 和 'submit-vault-combination' 等工具,使LLM能够调用外部功能,例如更新用户上下文或尝试解锁虚拟保险库。
    • JSON-RPC通信: 通过JSON-RPC协议与LLM客户端进行标准化通信,支持POST请求进行数据交换,GET请求(SSE)用于实时通知,以及DELETE请求用于会话管理。
  • 安全与认证:
    • OAuth2认证: 集成OAuth2协议,确保LLM客户端通过授权机制安全地访问MCP服务器提供的资源和工具。
    • 会话管理: 使用AWS DynamoDB进行MCP会话缓存,支持会话的创建、检索和删除。
  • 基础设施与部署:
    • 云原生部署: 使用SST(Infrastructure as Code)工具,可自动化部署到AWS ECS上的MCP服务器集群,提供高可用性和可扩展性。
    • Next.js集成: 作为全栈应用的一部分,与Next.js前端和后端API紧密集成,支持Web应用和API服务。
  • 其他集成:
    • Stripe支付: 集成Stripe管理用户订阅和计费。
    • Mailgun邮件: 用于发送欢迎邮件等通知。
    • PostgreSQL数据库: 作为数据存储后端。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/chipgpt/full-stack-saas-mcp.git
    cd full-stack-saas-mcp
  2. AWS账户配置:
    • 确保已配置AWS SSO和AWS CLI。
    • 确保您的域名已在Route 53中设置,并获取Hosted Zone ID。
    • 创建IAM用户并配置访问密钥/秘密密钥。
  3. 其他服务账户配置:
    • 安装Docker(用于本地PostgreSQL)。
    • 拥有一个生产PostgreSQL数据库(例如Digital Ocean管理型数据库),或将其添加到SST堆栈中。
    • 获取Mailgun API Key。
    • 获取Stripe API Key。
  4. 环境变量设置:
    • 复制 '.env.example' 文件到 '.env.development' 和 '.env.production',并根据您的实际配置填充所有必要的环境变量(如 'AUTH_SECRET', 'DATABASE_URL', 'AWS_HOSTED_ZONE_ID', 'MAILGUN_API_KEY', 'STRIPE_API_KEY' 等)。
    • 全局搜索 'chipgpt' (不区分大小写) 并替换为您的项目名称。
  5. 登录AWS SSO:
    npm run sso
  6. 安装依赖:
    npm install
  7. 启动本地PostgreSQL数据库:
    npm run docker:up

服务器配置

MCP客户端通常需要以下信息来连接MCP服务器:

  • 服务器名称 (server name): 'chipgpt-mcp'
  • 服务器地址 (endpoint):
    • 开发环境: 'http://localhost:3333/mcp'
    • 生产环境: 'https://mcp.chipgpt.biz/mcp' (或您自定义的域名)
  • 认证类型 (authType): 'oauth2'

示例JSON配置(用于MCP客户端):

{
  "id": "chipgpt-mcp",
  "name": "ChipGPT MCP",
  "endpoint": "http://localhost:3333/mcp", // 或生产环境地址
  "capabilities": ["resourced", "tools"],
  "authType": "oauth2"
}

参数注释:

  • 'id': MCP服务器的唯一标识符。
  • 'name': MCP服务器的显示名称。
  • 'endpoint': MCP服务器的通信URL。客户端将向此URL发送MCP请求。
  • 'capabilities': 服务器支持的功能,例如 "resourced"(支持资源访问)和 "tools"(支持工具调用)。
  • 'authType': 服务器支持的认证方式,这里是OAuth2。

基本使用方法

  1. 本地部署:
    npx sst dev
    此命令会启动本地的Next.js应用、OAuth服务器和MCP服务器。
    • MCP服务器默认URL: 'http://localhost:3333/mcp'
  2. 配置Cognito用户池域名: 首次启动新环境后,您需要在AWS控制台的Amazon Cognito中为用户池设置一个域名。
    • 登录AWS控制台 > Amazon Cognito > 用户池 > 选择您的用户池 > 域名 > 设置域名并选择"Hosted UI (classic)"。
  3. 云端部署(生产环境):
    npm run deploy:production
    此命令会将整个SaaS堆栈部署到AWS。首次部署后,同样需要配置Cognito用户池域名。
  4. MCP Inspector: 您可以使用官方的MCP Inspector工具来与本地或部署后的MCP服务器进行交互和测试。
    npx @modelcontextprotocol/inspector

信息

分类

网页与API