Generate Express.js backend projects with ORMs, auth, payments, and DevOps
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
BackGen ships a built-in MCP (Model Context Protocol) server that AI assistants (Claude, Cursor, GitHub Copilot, VS Code) can use to scaffold projects on your behalf.
Run via CLI:
Or configure your AI tool's MCP client:
Available MCP tools:
| Tool | Description |
|---|---|
init_project | Scaffold a new production-ready backend project with chosen ORM, preset, and plugins |
add_plugin | Install a plugin (jwt, clerk, stripe, s3, ratelimit, ci-github, dependabot, codeql, docker-registry, release) |
remove_plugin | Remove a previously installed plugin |
generate_resource | Generate a CRUD resource with fields, relations, validation, and Swagger |
generate_seed | Generate a database seed file for a resource |
generate_factory | Generate a test factory for a resource |
doctor | Validate an existing BackGen project for configuration issues |
list_plugins | List all available plugins with descriptions |
list_presets | List all available domain presets |
project_info | Show project metadata from the manifest |
Then just ask: "Scaffold a SaaS backend with Prisma, JWT auth, and Stripe payments"
BackGen is a CLI tool that generates complete Express.js backend projects on Prisma, Drizzle, or Mongoose β with authentication, multi-tenant infrastructure, production hardening, Docker, and testing β all working out of the box.
Swagger docs at http://localhost:3000/docs in under 60 seconds. Pick your ORM, keep everything else.
init time, switch later via the manifestsaas-core preset ships Organizations, Memberships, Invitations, RBAC, tenant-scoped queries/health + /ready, error envelopebackgen add.backgenrc.json tracks ORM, plugins, versions, and ownership for upgrade/rollbackbackgen init [name]Generate a new backend project.
Output:
.backgenrc.json manifest (records project.orm + plugins)No auth by default β choose your auth provider with backgen add.
backgen add [plugin]Install a plugin. Interactive multi-select if no argument.
Available Plugins:
| Plugin | Category | Description |
|---|---|---|
jwt | auth | JWT authentication with refresh tokens |
clerk | auth | Clerk auth-as-a-service (conflicts with jwt) |
stripe | payment | Stripe checkout, webhooks, customers |
s3 | storage | AWS S3 upload, download, presigned URLs |
ratelimit | production | Per-IP rate limiting with Redis-ready store |
ci-github | devops | GitHub Actions CI pipeline (lint, typecheck, test, build, optional deploy) |
dependabot | devops | Automated dependency updates via Dependabot |
codeql | devops | CodeQL security analysis on push and schedule |
docker-registry | devops | Docker image build and publish to GHCR |
release | devops | Semantic release with npm publish and GitHub releases |
Conflict detection: jwt and clerk cannot be installed together.
Generate a complete domain in one command. Each preset creates multiple resources with relations, auto-installs JWT auth, and wires everything together.
Patient, Doctor, Appointment, Prescription, MedicalRecord β appointments between patients and doctors, prescriptions linked to patients, medical records per patient.
Organization, Team, Membership, Subscription, Invoice β organizations with teams and memberships, subscriptions with invoices.
Category, Product, Cart, Order, OrderItem, Payment β products in categories, carts with items, orders with line items and payments.
Contact, Company, Deal, Activity β companies with contacts, deals tracked through pipeline, activity logging.
Course, Lesson, Enrollment, Progress, Certificate β courses with lessons, student enrollments, progress tracking, certificates.
backgen remove [plugin]Remove a plugin. Interactive multi-select if no argument. Supports devops shorthand to remove all devops plugins.
backgen generate resource <name> [fields...]Generate a CRUD resource module.
Generated files:
Field types: string, number, boolean, date, datetime
Relations: doctor:Doctor (belongsTo), patients:Patient (hasMany)
backgen generate seed <resource>Generate seed data for development.
Output: prisma/seeds/product.ts (Prisma), db/seeds/product.ts (Drizzle), or seeds/product.ts (Mongoose)
backgen generate factory <resource>Generate a test factory.
Output: src/factories/product.factory.ts
Usage:
backgen generate route [name]Generate a custom route module with a complete controller, service, validation, types, and route file -- including Swagger annotations. Routes are automatically registered in app.ts with the REGISTER_ROUTES marker.
Use this when you need a custom endpoint that doesn't fit the CRUD pattern (e.g., dashboards, reports, webhooks, custom actions). For standard CRUD, use generate resource instead.
Generated files:
Key differences from generate resource:
/api/<name> with full Swagger docsbackgen generate migration [name]Generate a database migration (ORM-aware).
backgen syncReconcile .backgenrc.json with the project. Regenerates missing plugin files.
backgen mcpStart BackGen as an MCP server over stdio. Used by AI assistants (Claude, Cursor, VS Code) to scaffold projects programmatically.
This is the same server exposed via the npx @ibrahimkhaled19/backgen backgen-mcp binary. It registers all 10 MCP tools listed in the AI-Ready section.
backgen healthShow system health information.
Displays:
backgen doctorCheck project health with ownership integrity diagnostics.
Checks:
backgen upgradeUpgrade a generated project to the latest template version. Creates a backup, then applies pending migrations sequentially.
What happens:
generatedVersion from .backgenrc.json.backgen/backups/pre-<version>/generatedVersion in manifestbackgen rollbackRestore a project to its pre-upgrade state from the most recent backup.
What happens:
.backgen/backups/backgen rotate-secretsRotate JWT secrets in the project's .env file. Generates cryptographically secure 256-bit random hex values for JWT_SECRET and JWT_REFRESH_SECRET, backs up the current .env to .env.backup, and writes new values.
All existing tokens are immediately invalidated on next server restart -- users must re-login.
What happens:
crypto.randomBytes.env saved to .env.backup.envEvery plugin implements the BackGenPlugin interface:
Plugins can:
.backgenrc.json tracks plugins, versions, generated version, and file ownership:
Ownership levels:
| Level | Description | Upgrade behavior |
|---|---|---|
framework | BackGen owns fully | Safe to overwrite |
framework-editable | Generated but user may customize | Smart merge via migration |
shared | Generated skeleton, user extends (e.g. docker-compose) | Migration-aware update |
user | User owns entirely | Never touched |
277+ tests covering:
| Layer | Technology |
|---|---|
| CLI | Commander.js |
| Prompts | Inquirer.js |
| Templates | Handlebars |
| Spinner | Ora |
| Colors | Chalk |
| Testing | Vitest |
| Linting | ESLint 9 (flat config) |
| Language | TypeScript (strict) |
| Layer | Technology |
|---|---|
| Framework | Express.js |
| Language | TypeScript (strict) |
| Database | PostgreSQL |
| ORM | Prisma / Drizzle / Mongoose |
| Validation | Zod |
| Auth | JWT or Clerk |
| Payments | Stripe |
| Storage | AWS S3 |
| Docs | Swagger/OpenAPI |
| Logging | Winston + Morgan |
| Testing | Vitest |
| Deployment | Docker |
| Tool | ORM Choice | Auth | Plugin System | Presets | Upgrade Engine | Docs Site |
|---|---|---|---|---|---|---|
| BackGen | Prisma, Drizzle, Mongoose | JWT, Clerk | β 7+ plugins | 5 domains | β Backup + rollback | β |
| NestJS CLI | No (fixed NestJS) | Built-in | β Modules | β | β | β |
| Express Generator | No (fixed plain JS) | β | β | β | β | β |
| T3 Stack | Prisma | NextAuth | β | β | β | β |
| AdonisJS | Lucid ORM | Built-in | β Ace | β | β | β |
| LoopBack | Built-in | Built-in | β | β | β | β |
Key differentiators:
| Version | Focus | Status |
|---|---|---|
| V1 | Foundation | Done |
| V2 | Plugin System | Done |
| V3 | Resource Generator | Done |
| V4 | Domain Presets | Done |
| V4.5 | SaaS Essentials | Done |
| V4.6 | Production Hardening | Done |
| V4.6.1 | Base Hardening Default-On | Done |
| V5 | Multi-ORM (Prisma, Drizzle, Mongoose) | Done |
| V6 | DevOps & Infrastructure | Done |
| V6.1 | Ownership Tracking & Doctor --fix | Done |
| V6.2 | Upgrade Engine & Migration Runner | Done |
| V6.3 | Backups & Rollback | Done |
| V6.4 | Plugin Migrations | Done |
| V7 | Upgrade Polish & Diffing | In Progress |
| V8 | Schema-First Development | Planned |
| V9 | Enterprise Features | Planned |
| V10 | Plugin Authoring SDK | Planned |
| V11 | Marketplace | Planned |
| V12 | AI Context Layer | Planned |
See docs/ROADMAP.md for details.
MIT
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/backgen)<a href="https://allmcps.com/mcp/backgen"><img src="https://allmcps.com/api/badge/backgen?style=directory" alt="Backgen on AllMCPs" /></a>