e8bb4f5a415bdba866beef19983d86a95a6ec5ec
Jenna MCP
Full-stack management console for Jenna that runs entirely on Bun. The app bundles a React dashboard (Mantine UI) with an Elysia API for managing JWT-secured API keys and service credentials backed by PostgreSQL via Prisma.
Features
- Protected dashboard with JWT cookie/session handling and seeded demo account.
- API key lifecycle management (create, list, delete) with long-lived signed tokens.
- Credential vault for storing connection details required by downstream tools.
- Auto-generated OpenAPI & Swagger UI exposed at
/docs. - Prisma/PostgreSQL data layer with reusable seed script.
Tech Stack
- Bun ≥ 1.2.23 (runtime, bundler, and package manager)
- React 19, Vite-style Bun dev server, Mantine UI, SWR & Valtio
- Elysia 1.4 API framework with
@elysiajs/jwtand Swagger plugin - Prisma ORM targeting PostgreSQL
Getting Started
-
Install dependencies
bun install -
Create your environment file
Copy the snippet below into.env(adjust values to your setup):DATABASE_URL="postgresql://USER:PASSWORD@localhost:5432/jenna_mcp" JWT_SECRET="replace-with-a-strong-secret" BUN_PUBLIC_BASE_URL="http://localhost:3000" -
Apply the Prisma schema & generate the client
bunx prisma migrate dev --name init bunx prisma generate -
Seed demo data (optional but helpful for local logins)
bun run seedThis creates a
bip@bip.com / bipuser. -
Start the app
bun devThe server listens on
http://localhost:3000and serves both the API and React UI. Swagger docs are available athttp://localhost:3000/docs. -
Production build
bun run build bun startbun run buildemits the browser bundle todist/andbun startruns the API/UI in production mode.
Useful Commands
bun run build– Bundle the client for production.bun start– Run the API/UI in production mode.bunx prisma studio– Inspect your database through Prisma Studio.
Project Structure
src/index.tsx– Bun entry point that wires the Elysia server and serves the React app.src/pages/**– React pages for auth, dashboard, API key & credential management.src/server/**– Elysia routes, middlewares, and Prisma helpers.prisma/schema.prisma– Database schema for users, API keys, and credentials.prisma/seed.ts– Seed script for demo data.
Authentication Notes
- The dashboard uses cookie-based JWTs issued by
/auth/login. - Programmatic requests can send
Authorization: Bearer <token>orx-tokenheaders. - Protected API routes are nested under
/api/**.
Troubleshooting
- Ensure
JWT_SECRETis set before starting the server; the API throws on startup if it is missing. - If Prisma complains about missing client files, rerun
bunx prisma generate. - When updating the schema, rerun
bunx prisma migrate devfollowed bybun run seedif you need fresh fixtures.
Description
Languages
TypeScript
99.1%
CSS
0.4%
Shell
0.4%