项目简介
这是一个完整的、可部署到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数据库: 作为数据存储后端。
安装步骤
- 克隆仓库:
git clone https://github.com/chipgpt/full-stack-saas-mcp.git cd full-stack-saas-mcp - AWS账户配置:
- 确保已配置AWS SSO和AWS CLI。
- 确保您的域名已在Route 53中设置,并获取Hosted Zone ID。
- 创建IAM用户并配置访问密钥/秘密密钥。
- 其他服务账户配置:
- 安装Docker(用于本地PostgreSQL)。
- 拥有一个生产PostgreSQL数据库(例如Digital Ocean管理型数据库),或将其添加到SST堆栈中。
- 获取Mailgun API Key。
- 获取Stripe API Key。
- 环境变量设置:
- 复制 '.env.example' 文件到 '.env.development' 和 '.env.production',并根据您的实际配置填充所有必要的环境变量(如 'AUTH_SECRET', 'DATABASE_URL', 'AWS_HOSTED_ZONE_ID', 'MAILGUN_API_KEY', 'STRIPE_API_KEY' 等)。
- 全局搜索 'chipgpt' (不区分大小写) 并替换为您的项目名称。
- 登录AWS SSO:
npm run sso - 安装依赖:
npm install - 启动本地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。
基本使用方法
- 本地部署:
此命令会启动本地的Next.js应用、OAuth服务器和MCP服务器。npx sst dev- MCP服务器默认URL: 'http://localhost:3333/mcp'
- 配置Cognito用户池域名:
首次启动新环境后,您需要在AWS控制台的Amazon Cognito中为用户池设置一个域名。
- 登录AWS控制台 > Amazon Cognito > 用户池 > 选择您的用户池 > 域名 > 设置域名并选择"Hosted UI (classic)"。
- 云端部署(生产环境):
此命令会将整个SaaS堆栈部署到AWS。首次部署后,同样需要配置Cognito用户池域名。npm run deploy:production - MCP Inspector:
您可以使用官方的MCP Inspector工具来与本地或部署后的MCP服务器进行交互和测试。
npx @modelcontextprotocol/inspector
信息
分类
网页与API