{{项目名称}}
{{PROJECT_DESCRIPTION}}
快速开始
- 安装依赖项
npm install- 设置环境变量
cp .env.example .env
# Edit .env with your configuration- 初始化数据库
npm run db:init这将创建具有所有必要表、函数和索引的PostgreSQL数据库。
- 启动开发服务器
npm run dev- 为生产而建
npm run build
npm start数据库设置
此模板使用PostgreSQL。您必须设置一个连接字符串,并通过init脚本初始化整个模式。
1) 配置连接字符串
选项A——互动式(推荐):
npm run db:init系统将提示您 DATABASE_URL (例如: postgresql://postgres:postgres@localhost:5432/mcpresso).脚本会将其写入 .env 并运行模式设置。
选项B——手动:
- 复制env文件:
cp .env.example .env - 编辑
.env并设置:
DATABASE_URL=postgresql://USER:PASS@HOST:5432/DB- 初始化完整架构:
node scripts/init-db.js2) 数据库结构
初始化脚本创建以下表:
- 用户 -具有UUID主键的用户帐户(电子邮件、用户名、hashed_password、作用域、配置文件)
- oauth_客户端 -OAuth客户端注册表(重定向URI、作用域、授权类型)
- oauth_授权_代码 -授权码(带PKCE字段)
- oauth_access_tokes -过期访问令牌
- oauth_refresh_tokes -刷新过期令牌
- 笔记 -示例资源(用户编写的笔记)
数据库功能
- ✅ 带UUID主键的PostgreSQL -可扩展且安全
- ✅ 外键约束 -维护数据完整性
- ✅ 优化指标 -快速查找常见查询
- ✅ 自动时间戳 -创建/更新了带有触发器的跟踪
- ✅ OAuth集成 -会话和令牌管理
- ✅ 数据库函数和触发器 -自动更新_at维护
数据库要求
- PostgreSQL 12+,带UUID扩展名
- 中的连接字符串
DATABASE_URL环境变量 - 生产部署的SSL支持
特性
- 使用PostgreSQL进行OAuth2.1身份验证
- 用户管理和会话
- 带有作者关系的笔记资源
- TypeScript支持
- 开发和生产建设
- 环境变量配置
- Docker支持Docker编写
项目结构
src/
├── server.ts # Main server file
├── auth/ # OAuth configuration
│ └── oauth.ts
├── resources/ # MCP resources
│ ├── schemas/ # Resource schemas
│ │ └── Note.ts # Note data model
│ └── handlers/ # Resource handlers
│ └── note.ts # Notes with author relationships
└── storage/ # Database layer
└── postgres-storage.ts环境变量
| 变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
| 端口 | 服务器端口 | 编号 | 3000 |
| SERVER_URL | 服务器的基本URL | 是 | - |
| JWT_SECRET | JWT令牌的密钥 | 是 | - |
| DATABASE_URL | PostgreSQL连接字符串 | 是 | - |
| NODE_ENV | 环境模式 | 否 | 开发 |
JWT秘密
为令牌签名生成安全的JWT密钥。
选项A——脚本(使用 openssl 引擎盖下):
npm run secret:generate选项B——手动(使用openssl):
JWT_SECRET=$(openssl rand -hex 64)
echo "JWT_SECRET=$JWT_SECRET" >> .env # or replace existing JWT_SECRET in .env对这个值保密。旋转它将使现有令牌无效。
发展
npm run dev-使用热重新加载启动开发服务器npm run build-为生产而建npm run typecheck-无建筑类型检查npm run db:init-交互式数据库设置(提示输入连接字符串并初始化完整架构)npm run secret:generate-生成安全的JWT密钥npm run user:create-创建新用户帐户
创建测试用户
数据库初始化后 JWT_SECRET 设置后,创建用户:
npm run user:create "John Doe" "john@example.com" "strongpassword"该脚本在插入之前验证唯一性并对密码进行哈希运算。
Docker部署
此模板包括Docker支持:
# Build and run with Docker Compose
docker-compose up --build
# Or build manually
npm run docker:build
npm run docker:run许可证
麻省理工学院
