MNEMOS gives AI assistants long-term memory about you — your goals, decisions, values, relationships, and health — without ever exposing your data to a third party. All memories are encrypted client-side with AES-256-GCM before they leave your browser. Only your wallet can decrypt them.
Connect via MCP and your AI has persistent, structured context across every conversation.
┌─────────────────────────────────────────────────────────────────┐
│ YOUR BROWSER │
│ │
│ Wallet Signs → SHA-256(signature) → AES-256-GCM Key │
│ ↓ │
│ Encrypt(plaintext, key) = ciphertext │
└──────────────────────────────┬──────────────────────────────────┘
│ ciphertext only (never plaintext)
▼
┌─────────────────────────────────────────────────────────────────┐
│ MNEMOS SERVER │
│ │
│ Neon Postgres ← ciphertext + wallet + category + tags │
│ │
│ Server has zero access to plaintext content. │
└──────────────────────────────┬──────────────────────────────────┘
│ MCP protocol
▼
┌─────────────────────────────────────────────────────────────────┐
│ YOUR AI CLIENT │
│ │
│ Claude / Cursor / any MCP-compatible client │
│ ← memories surfaced automatically on every query → │
└─────────────────────────────────────────────────────────────────┘
| # | Module | What It Stores |
|---|---|---|
| 01 | Context | General knowledge, facts, preferences, notes |
| 02 | Relationships | People, contacts, social context, interactions |
| 03 | Goals | Objectives, milestones, aspirations with status tracking |
| 04 | Decisions | Choices made, rationale, outcome tracking |
| 05 | Health | Physical, mental, and wellbeing data over time |
| 06 | API Gateway | Third-party integrations and external data feeds |
| 07 | Principles | Values, beliefs — your personal constitution |
1. wallet.connect() // connect your Ethereum wallet
2. wallet.signMessage(SIGN_MSG) // one-time signature per session
3. SHA-256(signature) → CryptoKey // AES-256-GCM key derived in-browser
4. crypto.encrypt(plaintext, key) // memory encrypted before leaving browser
5. db.write({ ciphertext, wallet, tags }) // only ciphertext reaches the server
6. mcp.recall(query) // AI retrieves relevant memories at runtime
MNEMOS ships a standalone MCP server so any MCP-compatible AI client can access your vault.
npx @mnemos-ai/mcp-server{
"mcpServers": {
"mnemos": {
"command": "npx",
"args": ["-y", "@mnemos-ai/mcp-server"],
"env": {
"MNEMOS_API_URL": "https://mnemosbase.com",
"MNEMOS_API_KEY": "your-api-key-from-vault"
}
}
}
}| Tool | Description |
|---|---|
remember |
Store a new memory in your vault |
recall |
Semantic search across your memories |
forget |
Delete a memory by stream ID |
update_memory |
Update an existing memory |
list_tags |
List all tags in your vault |
list_categories |
List available memory categories |
Language TypeScript 5.x
Framework Next.js 15 (App Router) + React 19
Database Neon Postgres (serverless)
Encryption AES-256-GCM — wallet-derived key — client-side only
Auth EIP-191 wallet signatures (wagmi + viem)
AI Protocol Model Context Protocol (MCP)
Deployment Vercel
Prerequisites: Node.js 18+, Neon Postgres database, Ethereum wallet for testing
git clone https://github.com/cmxdev1/MNEMOS.git
cd MNEMOS
npm install
cp .env.example .env.localFill in .env.local:
DATABASE_URL= # Neon connection string
ENCRYPTION_KEY= # 32-byte hex — openssl rand -hex 32
ANTHROPIC_API_KEY= # optional — enables AI title/tag suggestions
NEXT_PUBLIC_SITE_URL=http://localhost:3000npm run dev # → http://localhost:3000src/
├── app/
│ ├── api/ API routes — memory CRUD, MCP endpoint, enrichment
│ ├── docs/ Documentation pages
│ ├── vault/ Vault dashboard
│ └── waitlist/ Waitlist signup
├── components/
│ ├── vault/ Vault dashboard components
│ ├── home/ Homepage components
│ └── ui/ Shared UI primitives
├── lib/ Core logic — crypto, auth, DB, types
└── providers/ React context providers
mcp/ Standalone MCP server package (@mnemos-ai/mcp-server)
Full docs at mnemosbase.com/docs:
- Getting Started
- Memory Schema
- Memory API
- MCP Setup
- Access Control
- SDK Reference
- Protocol Specification
All memory content is encrypted before it leaves your browser. The server stores only ciphertext and has no access to plaintext — a database compromise exposes nothing readable.
Found a vulnerability? See SECURITY.md. Do not open a public issue.
See CONTRIBUTING.md.
MIT — see LICENSE.