A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
MCP server implementing a complete todo management system with OAuth authentication, freemium billing model, and Postgre
A complete Model Context Protocol (MCP) server that demonstrates modern web development practices with authentication, billing, and database integration. Perfect for beginners learning full-stack development!
This project creates a Todo Management System that you can interact with through Cursor AI (or any MCP-compatible client). It includes:
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Cursor AI │ │ MCP Server │ │ Kinde Auth │
│ (Your Chat) │◄──►│ (This Project) │◄──►│ (Authentication)│
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Neon Database │
│ (PostgreSQL) │
└──────────────────┘
Before you start, you'll need:
# Clone the repository
git clone <your-repo-url>
cd todo-mcp-server
# Install dependencies
npm install
# Run the setup script
chmod +x setup.sh
./setup.sh
This creates a .env file with placeholder values.
.env file:DATABASE_URL=postgresql://your-connection-string-here
.env file: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
# 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
src/server.ts)src/kinde-auth-server.ts)src/setup-db.ts)# Terminal 1: Start MCP server
npm start
# Terminal 2: Start auth server
npm run auth-server
Add this to your Cursor MCP configuration (~/.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"
}
}
}
}
Once configured, you can use these commands in Cursor:
login # Get authentication URL
save_token: <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
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
Create a .env file with these variables:
# 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
"No authentication token found"
"Database connection failed"
npm run setup-db"Kinde authentication failed"
.env"MCP server not found in Cursor"
mcp.jsonnpm startRun with debug logging:
DEBUG=* npm run dev
Once you understand this project, you can:
This is a learning project! Feel free to:
MIT License - feel free to use this for learning and projects!
If you get stuck:
Remember: This is a learning project designed to teach modern web development concepts. Take your time, experiment, and don't hesitate to explore the code!
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
MCP server integration for DaVinci Resolve Studio
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba