Kavo
An open-source library that auto-generates complete REST, GraphQL, and MCP APIs from your existing ORM entities.
🔗 Visit KavoDescription
Every app that stores data eventually needs an API — a way for a website, mobile app, or another program to create, read, update, and delete that data over the network. Writing that API by hand for every table in your database is repetitive: the same list/filter/sort/paginate logic, over and over. Kavo automates that repetition — you describe your data once, and it builds the API around it.
Kavo is an open-source TypeScript library that turns your existing database entities (from TypeORM, Prisma, Mongoose, or MikroORM) into complete REST and GraphQL APIs by adding a single decorator to each entity class. It generates filtering with a full operator grammar (equals, greater-than, contains, is-null, and more), multi-field sorting, pagination, nested relationship loading, and per-operation data shapes so you can control exactly what a "create" request looks like versus a "list" response. It also exposes realtime updates over Server-Sent Events and ships an MCP (Model Context Protocol) integration, so AI coding agents like Claude or Codex can call your generated API as a tool. It's free and open source under Apache-2.0, aimed at TypeScript/NestJS teams who want to stop hand-writing boilerplate CRUD endpoints.
💬 Our review
The short version: if you're tired of writing the same CRUD controller logic for every entity in a TypeORM or Prisma project, Kavo's one-decorator approach removes most of that boilerplate without locking you into a new database layer.
Its real strength against hand-rolled NestJS controllers or a heavier framework like AdminJS is scope: it doesn't replace your ORM, it sits on top of the one you already use, and the filtering/sorting/pagination grammar is more complete than what most teams bother hand-writing. The MCP integration is a genuinely current-feature choice — as more teams wire AI agents into their backend, having auto-generated tool-callable endpoints out of the box is a real time-saver most competitors don't offer yet. The trade-off is maturity and community size: this is a young project from a small team, so you're trusting a decorator-driven code-generation layer with less production mileage than, say, hand-written NestJS resolvers or an established admin-panel generator. Best for TypeScript teams building internal tools or MVPs who want speed over full control; less suited to teams with unusual, highly custom API shapes.
💰 Pricing
📊 Global score
🤖 AI-enriched data
Apache-2.0, aucun coût
Pros
API REST/GraphQL générée depuis un seul décorateur
Filtrage/tri/pagination complets prêts à l'emploi
Intégration MCP native pour agents IA
Compatible TypeORM, Prisma, Mongoose, MikroORM
Cons
Projet jeune, communauté et retours de production limités
Génération de code = moins de contrôle fin que des contrôleurs écrits à la main
Pas adapté aux API avec des formes de données très personnalisées
