AI agents lose everything between sessions. Qoopia gives them persistent memory, shared context, and a unified knowledge base through the Model Context Protocol.
📝
Universal Notes
One table for everything: tasks, deals, contacts, memories, decisions, knowledge, context. Each note has a type, metadata, tags, and full-text search. No schema migrations when your needs change.
🔍
Full-Text Search
FTS5 with unicode61 tokenizer across all notes and session messages. recall() finds anything in milliseconds. Prefix matching, diacritics removal, workspace-scoped.
💬
Session History
Agents save conversation messages, write summaries, search across sessions. session_recent('latest') restores full context in one call. Cross-session search included.
🔗
MCP Native
Built on @modelcontextprotocol/sdk. Streamable HTTP transport, stateless mode. Works with Claude.ai, Claude Code, or any MCP client. OAuth 2.0 PKCE for remote connections.
👥
Multi-Agent
Multiple agents share one database. Each has its own API key, permissions, and audit trail. Steward agents manage other agents. Activity log tracks who did what.
🔒
Secure by Default
API key auth (SHA-256) + OAuth 2.0 PKCE. Rate limiting. CORS allowlist. Secret guard prevents API keys from leaking into notes. Workspace isolation.
⚡
Minimal & Fast
Three dependencies: @modelcontextprotocol/sdk, zod, ulid. Runs on Bun. No ORM, no framework, no build step. ~4,700 lines of TypeScript. Starts in under a second.
💾
Self-Hosted
Your data stays on your machine. One SQLite file, no cloud, no vendor lock-in. Daily automated backups with rotation. Runs anywhere Bun runs.
🔄
V2 Compatible
Migrating from V2? The compat layer maps old CRUD tools (list, get, create, update, delete) to universal notes. Zero downtime migration with included scripts.