Security
Security model
Demo subscription access
The app uses one database-backed demo user. Free, Premium and Pro plan changes are stored in the production database and are clearly labeled as a course demo flow, not real payment processing.
Server-side entitlement checks
Skill manifest APIs check the current demo user plan on the server. Frontend lock labels are not trusted for access.
MCP risk labels
MCP entries show risk level, permissions, status and risk notes. Unknown MCP servers can read files, run tools or expose private data if permissions are too broad.
Secrets handling
The repository includes `.env.example` only. Tokens and private `.env` files must stay out of git.
Future production improvements
Replace demo user with real auth, use Postgres, add real billing webhooks, audit logs, rate limits and scoped MCP sandbox enforcement.