2026-04-21 00:05:25 +02:00

Memento

A smart, AI-powered note-taking app. Like Google Keep, but with notebooks, semantic search, AI agents, and a built-in MCP server.

Lire en francais / Read in French | Full documentation


Features

Notes & Organization

  • Rich text (Notion-like), checklist, Markdown, and plain text notes
  • Notebooks with contextual labels
  • Responsive masonry grid and tabs (OneNote-style) view
  • Image upload, note sharing, archive, and trash
  • 10 pastel color themes + dark mode
  • Note history with version restore
  • Drag-and-drop card reordering

AI & Automation

  • Semantic search powered by embeddings
  • Auto-generated tags and title suggestions
  • Configurable AI agents with custom instructions and scheduling
  • Persistent AI chat conversations
  • Memory Echo - discover hidden connections between notes
  • Batch auto-organization and smart labels
  • AI-generated notebook summaries
  • Visual workflow builder
  • In-app notifications for agent results

Integrations

  • MCP Server with 22 tools - connect Claude Desktop, N8N, or any MCP client
  • REST API for custom integrations
  • RSS feed support
  • Canvas/Lab whiteboard (Excalidraw)

Platform

  • 15 languages (EN, FR, AR, DE, ES, FA, HI, IT, JA, KO, NL, PL, PT, RU, ZH)
  • Progressive Web App (PWA)
  • Reminder system with recurrence
  • Data export/import (JSON)
  • Admin panel for AI providers, SMTP, and settings

Quick Start

The interactive deploy script handles everything - environment config, container build, and startup:

git clone https://github.com/yourusername/Momento.git
cd Momento

# macOS / Linux
./scripts/deploy-docker.sh

# Windows PowerShell
.\scripts\deploy-docker.ps1

The script will ask for your ADMIN_EMAIL (the first user registered with this email gets ADMIN role), AI provider, and other settings. It auto-generates secrets.

Or manually:

cp .env.docker.example .env.docker
# Edit .env.docker: set NEXTAUTH_URL, NEXTAUTH_SECRET, and ADMIN_EMAIL
docker compose up -d

Local Development

git clone https://github.com/yourusername/Momento.git
cd Momento

# macOS / Linux
./scripts/deploy-local.sh

# Windows PowerShell
.\scripts\deploy-local.ps1

Or manually:

cd Momento/memento-note
cp .env.example .env
# Edit .env with your DATABASE_URL, NEXTAUTH_SECRET, ADMIN_EMAIL, etc.
npm install --legacy-peer-deps
npx prisma migrate dev
npm run dev

AI Providers

Memento supports 8 AI providers, configurable independently for tags, embeddings, and chat:

Provider Type Setup
Ollama Local, free docker compose --profile ollama up -d
OpenAI Cloud, paid Set OPENAI_API_KEY
DeepSeek Cloud, paid Set DEEPSEEK_API_KEY
OpenRouter Cloud, paid Set OPENROUTER_API_KEY
Mistral AI Cloud, paid Set MISTRAL_API_KEY
Z.AI Cloud, paid Set ZAI_API_KEY
LM Studio Local, free Set LMSTUDIO_BASE_URL
Custom Any OpenAI-compatible API Set base URL + API key

Example for Ollama:

# .env.docker
AI_PROVIDER_TAGS=ollama
AI_PROVIDER_EMBEDDING=ollama
OLLAMA_BASE_URL="http://ollama:11434"
AI_MODEL_TAGS="granite4:latest"
AI_MODEL_EMBEDDING="embeddinggemma:latest"

All AI settings can also be configured from the admin panel at /admin/settings.


MCP Server

Connect AI agents to your notes via the Model Context Protocol.

// claude_desktop_config.json
{
  "mcpServers": {
    "memento": {
      "command": "docker",
      "args": ["exec", "-i", "memento-mcp", "node", "index.js"]
    }
  }
}

22 tools available - notes CRUD, notebooks, labels, reminders, search, export/import. Each API key is scoped to a user so only their notes are accessible.

For N8N or HTTP clients, use Streamable HTTP mode: http://localhost:3001/mcp with x-api-key header auth.


Tech Stack

Layer Technology
Framework Next.js 16, React 19, TypeScript 5
Styling Tailwind CSS 4, shadcn/ui
Database PostgreSQL 16, Prisma ORM 5
Auth NextAuth.js v5
AI Vercel AI SDK (OpenAI, Ollama, DeepSeek, OpenRouter, Mistral, Z.AI, LM Studio)
MCP @modelcontextprotocol/sdk
Email Nodemailer (SMTP) / Resend

Documentation

For the complete installation, deployment, and configuration guide, see GUIDE.en.md.


Project Structure

Momento/
├── docker-compose.yml        # Multi-container orchestration
├── .env.docker.example       # Docker environment template
├── scripts/                  # Deployment scripts
│   ├── deploy-docker.sh      # Docker deploy (macOS/Linux)
│   ├── deploy-local.sh       # Local deploy (macOS/Linux)
│   ├── deploy-docker.ps1     # Docker deploy (Windows)
│   └── deploy-local.ps1      # Local deploy (Windows)
├── memento-note/             # Next.js application
│   ├── app/                  # App Router (pages, actions, API)
│   ├── components/           # React UI components
│   ├── lib/                  # Business logic (AI, DB, mail, i18n)
│   ├── prisma/               # Schema + migrations
│   ├── locales/              # 15 i18n JSON files
│   └── Dockerfile            # Multi-stage build
├── mcp-server/               # MCP server (22 tools)
│   ├── index.js              # stdio mode
│   ├── index-sse.js          # HTTP Streamable mode
│   ├── tools.js              # Tool definitions
│   ├── auth.js               # API key authentication
│   └── Dockerfile            # Container build
└── n8n-memento-workflow.json # Pre-configured N8N workflow

Environment Variables

See .env.docker.example for the complete list. Key variables:

Variable Required Description
NEXTAUTH_URL Yes Public URL of the app
NEXTAUTH_SECRET Yes JWT secret (openssl rand -base64 32)
ADMIN_EMAIL Yes Email that automatically gets ADMIN role on registration
POSTGRES_PASSWORD Rec. PostgreSQL password (default: memento)
AI_PROVIDER_TAGS No AI provider for tags: ollama, openai, custom
OPENAI_API_KEY If OpenAI Your OpenAI API key

Contributing

Contributions are welcome!


Support

If you find Memento useful, consider supporting its development:

  • Ko-fi - One-time or monthly support
  • GitHub Sponsors - Recurring sponsorship
  • Star the repo - It's free and helps visibility

License

Apache License 2.0 with Commons Clause Restriction.

Free for personal, educational, and non-commercial use. Commercial use requires written permission from the author. See LICENSE for details.

Description
No description provided
Readme 139 MiB
Languages
TypeScript 64.2%
Python 27.4%
JavaScript 4.3%
HTML 1.6%
CSS 1.3%
Other 1.1%