带认证、数据库和计费功能的现代Todo MCP服务器
一个完整的 模型上下文协议(MCP) 这个服务器展示了现代网页开发实践,包括身份验证、计费和数据库集成。非常适合初学者学习全栈开发!
这个项目的作用
这个项目创建了一个 Todo管理系统 你可以通过它进行交互 Cursor AI (或任何与MCP兼容的客户端)。它包括:
- 真实验证 与Kinde一起
- 计费系统 带有免费层级限制
- 数据库存储 使用 Neon PostgreSQL
- 人工智能集成 通过MCP协议
- 网页界面 用于身份验证
关键特性
- 5个免费任务(或“5个免费待办事项”) 对于新用户
- 升级为付费版 用于无限数量的任务
- 真实身份验证 使用谷歌/社交账号登录
- 数据库持久化 使用 PostgreSQL
- AI聊天集成 通过光标
- 会话管理 使用安全的cookies
架构概述
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Cursor AI │ │ MCP Server │ │ Kinde Auth │
│ (Your Chat) │◄──►│ (This Project) │◄──►│ (Authentication)│
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Neon Database │
│ (PostgreSQL) │
└──────────────────┘先决条件
在开始之前,你需要:
- Node.js (版本18或更高)
- 一个霓虹灯数据库 账户(免费)
- 一个Kinde账户 (免费)
- Cursor 集成开发环境 (IDE) (用于MCP集成)
快速入门指南
步骤1:克隆并安装
# Clone the repository
git clone
cd todo-mcp-server
# Install dependencies
npm install步骤2:设置环境
# Run the setup script
chmod +x setup.sh
./setup.sh这会产生一个 .env 带有占位符值的文件。
步骤3:设置Neon数据库(免费)
- 首选 neon.tech 翻译成中文是“霓虹科技”(或根据具体语境可译为“霓彩科技”等,但“霓虹科技”更为常见)
- 创建一个免费账户
- 创建一个新的数据库
- 复制您的连接字符串
- 更新您的
.env文件:
DATABASE_URL=postgresql://your-connection-string-here步骤4:设置Kinde身份验证(免费)
- 首选 kinde.com 翻译成中文可以是“金德网”(注:这里的“金德”是根据“kinde”的音译,实际翻译可能因品牌或网站的具体含义而有所不同,但通常我们会采用音译的方式)。不过,需要注意的是,直接翻译网址时,通常保留原网址的形式,即“kinde.com”,因为网址是全球通用的,不需要翻译。但如果要为网址加上一个中文解释或名称,可以像上面那样进行音译或意译
- 创建一个免费账户
- 创建一个新的应用程序
- 复制您的凭据
- 更新您的
.env文件:
KINDE_ISSUER_URL=https://your-domain.kinde.com
KINDE_CLIENT_ID=your_client_id
KINDE_CLIENT_SECRET=your_client_secret第五步:初始化数据库
# Set up database tables
npm run setup-db步骤6:构建并运行
# Build the project
npm run build
# Start the MCP server
npm start项目结构
mcp-todo-rebuild/
├── src/
│ ├── server.ts # Main MCP server
│ ├── kinde-auth-server.ts # Authentication web server
│ └── setup-db.ts # Database setup script
├── dist/ # Compiled JavaScript
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── .env # Environment variables (create this)
└── README.md # This file它是如何工作的
1. MCP 服务器 (src/server.ts)
- 处理像“创建待办事项”、“列出待办事项”这样的AI聊天指令
- 管理用户认证和计费
- 连接到数据库以实现数据持久化
2. 认证服务器 (src/kinde-auth-server.ts)
- 提供网页界面用于登录/登出
- 使用 Kinde 处理 OAuth 流程
- 自动创建用户数据库记录
3. 数据库设置 (src/setup-db.ts)
- 创建必要的数据库表
- 为性能建立索引
- 初始化用户和待办事项模式
如何使用
1. 启动服务器
# Terminal 1: Start MCP server
npm start
# Terminal 2: Start auth server
npm run auth-server2. 配置光标
将此添加到您的Cursor MCP配置中(~/.cursor/mcp.json):
{
"mcpServers": {
"todo-mcp-server": {
"command": "node",
"args": ["dist/server.js"],
"cwd": "/path/to/your/project",
"env": {
"DATABASE_URL": "your_database_url",
"KINDE_ISSUER_URL": "your_kinde_issuer",
"KINDE_CLIENT_ID": "your_client_id",
"KINDE_CLIENT_SECRET": "your_client_secret",
"JWT_SECRET": "your_jwt_secret",
"NODE_ENV": "development"
}
}
}
}3. 在Cursor聊天中使用
配置完成后,您可以在 Cursor 中使用这些命令:
login # Get authentication URL
save_token: # Save your login token
list todos # View your todos
create todo # Create a new todo
update todo # Update an existing todo
delete todo # Delete a todo
logout # Log out认证流程
- 输入“login” 在Cursor聊天中
- 点击网址 打开认证页面
- 使用Google登录 (或其他提供商)
- 复制你的令牌 来自成功页面
- 使用“save_token” 在Cursor中的命令
- 开始创建待办事项吧!
计费系统
- 免费层级/免费套餐每个用户5个总计
- 付费层级/付费等级无限待办事项(通过Kinde门户升级)
- 自动追踪系统自动追踪使用情况
- 升级URL在达到限制时提供
数据库模式
用户表
CREATE TABLE users (
id SERIAL PRIMARY KEY,
user_id TEXT UNIQUE NOT NULL,
name TEXT,
email TEXT,
subscription_status TEXT DEFAULT 'free',
plan TEXT DEFAULT 'free',
free_todos_used INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);全体成员桌
CREATE TABLE todos (
id SERIAL PRIMARY KEY,
user_id TEXT NOT NULL,
title TEXT NOT NULL,
description TEXT,
completed BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);开发命令
# Development
npm run dev # Run MCP server in development
npm run auth-server # Run auth server in development
# Database
npm run setup-db # Set up database tables
# Production
npm run build # Build for production
npm start # Run production server配置
环境变量
创建一个 .env 包含这些变量的文件:
# Database
DATABASE_URL=postgresql://user:pass@host:port/db
# Kinde Authentication
KINDE_ISSUER_URL=https://your-domain.kinde.com
KINDE_CLIENT_ID=your_client_id
KINDE_CLIENT_SECRET=your_client_secret
# Security
JWT_SECRET=your_secret_key
# Environment
NODE_ENV=development故障排除
常见问题
- “未找到身份验证令牌”
- 确保您已登录并保存了您的令牌 - 检查认证服务器是否正在运行
- “数据库连接失败”
- 验证您的 DATABASE_URL 是否正确 - 确保你已经运行过 npm run setup-db
- “Kinde 认证失败”
- 检查您的Kinde凭据 .env - 在Kinde仪表板中验证您的重定向URL
- “在 Cursor 中未找到 MCP 服务器”
- 更新后重启光标(或:光标管理器) mcp.json - 检查服务器是否正在运行 npm start
调试模式
以调试日志模式运行:
DEBUG=* npm run dev学习资源
你将学到什么
- MCP协议人工智能助手如何与工具交互
- OAuth 2.0现代认证流程
- PostgreSQL(通常简称为PG)数据库设计与查询
- TypeScript类型安全的JavaScript开发
- Express.js网络服务器开发
- 会话管理用户状态持久化
关键概念
- 模型上下文协议(MCP)人工智能工具集成标准
- OAuth 流程无需密码的安全认证
- JWT 令牌安全的用户身份验证
- 数据库关系用户-待办事项关系
- 计费集成免费增值商业模式
下一步行动
一旦你理解了这个项目,你就可以:
- 添加更多功能类别、截止日期、共享
- 改进用户界面更优化的认证网页界面
- 添加真实计费Stripe集成
- 部署在Vercel、Railway或AWS上托管
- 比例尺(或规模、尺度)添加缓存,实现负载均衡
做出贡献
这是一个学习项目!请随意:
- 报告错误
- 提出改进建议
- 添加新功能
- 创建教程
许可证
MIT 许可证 - 欢迎自由用于学习和项目!
需要帮助吗?
如果你遇到难题:
- 查看上面的故障排除部分
- 验证所有环境变量是否已设置
- 确保所有服务都在运行
- 检查控制台中的错误信息
记住:这是一个旨在教授现代网页开发概念的学习项目。慢慢来,多做实验,不要犹豫,大胆探索代码!

