Mittdigitalaminne
Personal knowledge management app with MCP integration for Claude AI. Swedish UI.
Ask AI about Mittdigitalaminne
Powered by Claude Β· Grounded in docs
I know everything about Mittdigitalaminne. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Mitt Digitala Minne
A personal knowledge management app where you save, organize, and search memories β thoughts, links, articles, images, YouTube videos, and social media posts. Features a web UI and an MCP server for saving memories directly via Claude AI.
Swedish UI Β· Full-text search Β· AI-powered via MCP Β· Self-hosted
Architecture
mittdigitalaminne/
βββ web/ # Next.js web app (frontend + API)
βββ mcp-server/ # MCP server (Claude AI integration)
βββ supabase/
β βββ migrations/ # Database schema (run in order)
βββ README.md
| Component | Tech | Deploys to |
|---|---|---|
| Web app | Next.js 16, React 19, TailwindCSS 4, Supabase SSR | Vercel |
| MCP server | Node.js, @modelcontextprotocol/sdk, dual transport | Cloudflare Workers (HTTP) + local (stdio) |
| Database | PostgreSQL via Supabase, Swedish FTS, trigram search | Supabase |
How it works
- Web UI β Browse, search, filter, create, and edit memories at
your-app.vercel.app - MCP server β Claude AI can save/search/manage memories via tool calls
- stdio transport β for Claude Desktop (local)
- HTTP transport β for Claude.ai via Cloudflare Workers (remote)
Prerequisites
- Node.js 20+
- Supabase account (free tier works)
- Vercel account (free tier works) β for web deployment
- Cloudflare account (free tier works) β for MCP deployment
- Claude Desktop or Claude.ai Pro β for MCP usage
Setup Guide
1. Clone and install
git clone https://github.com/Pluggentipsar/mittdigitalaminne.git
cd mittdigitalaminne
# Install dependencies for both packages
cd web && npm install && cd ..
cd mcp-server && npm install && cd ..
2. Create Supabase project
- Go to supabase.com/dashboard and create a new project
- Note your Project URL and API keys from Settings > API
- Run the database migrations in order via the SQL Editor:
supabase/migrations/001_initial_schema.sql
supabase/migrations/002_improved_search.sql
supabase/migrations/003_memory_notes.sql
supabase/migrations/004_new_content_types.sql
supabase/migrations/005_smart_spaces.sql
supabase/migrations/006_inbox.sql
supabase/migrations/007_projects.sql
supabase/migrations/008_snapshots.sql
- Create a storage bucket for images:
- Go to Storage in the Supabase dashboard
- Create a new bucket called
memory-images - Set it to Public
3. Configure environment variables
Web app β create web/.env.local:
NEXT_PUBLIC_SUPABASE_URL=https://YOUR_PROJECT.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key_here
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key_here
OPENAI_API_KEY=your_openai_key_here # For AI features (summarize, tags, etc.)
MCP server β create mcp-server/.env:
SUPABASE_URL=https://YOUR_PROJECT.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key_here
You'll find these values in your Supabase project under Settings > API.
4. Run locally
# Terminal 1: Web app
cd web
npm run dev
# Opens at http://localhost:3000
# Terminal 2: MCP server (for testing)
cd mcp-server
npm run dev
Deployment
Deploy web app to Vercel
cd web
npx vercel --prod
Set these environment variables in your Vercel project settings:
| Variable | Value |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | https://YOUR_PROJECT.supabase.co |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Your anon/public key |
SUPABASE_SERVICE_ROLE_KEY | Your service role key |
OPENAI_API_KEY | Your OpenAI API key |
Deploy MCP server to Cloudflare Workers
cd mcp-server
npm run build
# Set secrets (you'll be prompted for values)
wrangler secret put SUPABASE_URL
wrangler secret put SUPABASE_SERVICE_ROLE_KEY
wrangler secret put MCP_AUTH_TOKEN # Choose a strong random token
# Deploy
npm run worker:deploy
Your MCP server will be available at https://your-worker.your-subdomain.workers.dev.
Connect Claude AI
Option A: Claude Desktop (local, stdio)
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"mitt-digitala-minne": {
"command": "node",
"args": ["C:/path/to/mittdigitalaminne/mcp-server/dist/index.js"],
"env": {
"SUPABASE_URL": "https://YOUR_PROJECT.supabase.co",
"SUPABASE_SERVICE_ROLE_KEY": "your_service_role_key"
}
}
}
}
Build first with
cd mcp-server && npm run build.
Option B: Claude.ai (remote, HTTP via Cloudflare Workers)
- Go to claude.ai/settings/integrations
- Add a new MCP integration:
- URL:
https://your-worker.your-subdomain.workers.dev/mcp - Authentication: Bearer token (the
MCP_AUTH_TOKENyou set)
- URL:
- Claude.ai can now save memories, search, add notes, etc.
MCP Tools
The MCP server exposes 10 tools that Claude can use:
| Tool | Description |
|---|---|
add_memory | Save a new memory (auto-detects YouTube/LinkedIn/Instagram from URL) |
search_memories | Full-text search with filters (type, tags, dates, favorites) |
get_memory | Get a specific memory by ID |
update_memory | Update title, summary, content, tags, favorite status |
delete_memory | Delete a memory |
list_tags | List all tags with usage counts |
get_statistics | Dashboard statistics (counts by type, recent activity) |
upload_image | Upload a base64-encoded image |
add_note | Add a comment/note to a memory |
get_notes | List all notes for a memory |
Features
Content Types
- 7 content types: Thought, Link, Article, Image, YouTube, LinkedIn, Instagram
- Auto-detection of platform from pasted URLs
Rich Previews
- YouTube β embedded video player with thumbnail and play button overlay
- Instagram β full embed of posts/reels with dynamic height via
postMessage - LinkedIn β branded text preview with platform colors
- Articles & Links β OG image previews with favicon and domain
- Smart title handling β auto-truncation of long social media titles at ~120 chars
Search & Filtering
- Swedish full-text search with relevance ranking (weighted: title > summary > content)
- Filters β by content type, tags, project, date range, favorites, inbox status
- Smart Spaces β save any active filter combination as a named space in the sidebar
Organization
- Tags with colors for categorization
- Projects & collections β group related memories with name, color, icon, deadline, and status (active/archived)
- Inbox β new memories land in inbox until organized
- Favorites β star important memories for quick access
AI Features
- AI summarization β automatic summary of articles and posts
- AI tag suggestions β keyword extraction matched against existing tags
- AI actions panel β process memories with AI directly in the detail view (summarize, extract key points, translate, etc.)
- Related memories β automatic connections between similar memories based on shared tags
Web Snapshots
- Save HTML snapshots of web pages for offline reading
- View snapshots in a sandboxed iframe within the app
Export & Download
- Download as .txt β clean text file with title, summary, content, metadata, and tags
- Download as .docx β formatted Word document with typography, headings, bullet lists, and metadata
- Available from both the context menu (right-click on cards) and the detail view toolbar
- Works on mobile via long-press
Context Menu (Desktop & Mobile)
- Right-click (desktop) or long-press (mobile, 500ms) on memory cards:
- Toggle favorite
- Add to project (submenu with active projects)
- Download as .txt
- Download as .docx
- Open original link
- Delete memory
- Haptic feedback on mobile (vibration API)
- Viewport-aware positioning (menu stays on screen)
Dashboard
- Statistics overview with type distribution chart
- Recent memories list
- Resurfacing β rediscover old memories that may be relevant again
Comment Threads
- Add notes/comments to any memory
- Threaded discussion per memory
Design
- "Amber Glow" theme β warm amber accents with content-type colored card glows
- Fonts: Instrument Serif (headings) + DM Sans (body text)
- Collapsible sidebar (72px collapsed, 272px expanded) with localStorage persistence
- Responsive β works on desktop and mobile
- Ambient gradient orbs and decorative dividers
- Swedish UI throughout
Project Structure
web/
βββ src/
β βββ app/
β β βββ api/ # API routes
β β β βββ memories/ # CRUD + notes + related
β β β βββ projects/ # Projects CRUD + member management
β β β βββ spaces/ # Smart Spaces CRUD
β β β βββ suggest-tags/ # AI tag suggestions
β β β βββ resurface/ # Memory resurfacing
β β β βββ unfurl/ # URL metadata + article extraction
β β β βββ statistics/ # Dashboard stats
β β β βββ tags/ # Tag management
β β β βββ upload/ # Image upload
β β βββ dashboard/ # Dashboard page
β β βββ inkorg/ # Inbox page
β β βββ lagg-till/ # Create memory page
β β βββ minnen/ # Memory list + detail + edit pages
β β βββ projekt/ # Project list + detail pages
β β βββ taggar/ # Tag management page
β βββ components/
β β βββ memories/ # MemoryCard, MemoryGrid, CardContextMenu, AiActionsPanel
β β β βββ previews/ # YouTubePreview, InstagramEmbed, SocialPreview, LinkPreview
β β βββ projects/ # AddToProjectDialog, ProjectCard
β β βββ spaces/ # SaveSpaceDialog
β β βββ dashboard/ # Stats, charts, recent list, resurfacing
β β βββ filters/ # FilterBar (type, tags, project, search, save space)
β β βββ layout/ # Sidebar navigation + spaces
β β βββ contexts/ # SidebarContext
β β βββ ui/ # MarkdownContent, SnapshotViewer
β βββ hooks/ # SWR data hooks (memories, tags, spaces, projects, suggestions)
β βββ lib/ # Supabase clients, types, utils, export utilities, stopwords
mcp-server/
βββ src/
β βββ server.ts # MCP server factory (shared logic)
β βββ index.ts # stdio entry point (Claude Desktop)
β βββ worker.ts # Cloudflare Workers entry (Claude.ai)
β βββ tools/ # Individual tool handlers
β βββ utils/ # URL detection, tag helpers
β βββ db/ # Supabase client factory
βββ wrangler.toml # Cloudflare Workers config
βββ tsconfig.json
supabase/
βββ migrations/
βββ 001_initial_schema.sql # Core tables, FTS, RLS
βββ 002_improved_search.sql # Enhanced search with tags in FTS
βββ 003_memory_notes.sql # Comment/notes table
βββ 004_new_content_types.sql # YouTube, LinkedIn, Instagram types
βββ 005_smart_spaces.sql # Smart Spaces (saved filters)
βββ 006_inbox.sql # Inbox flag for memories
βββ 007_projects.sql # Projects & memory_projects tables
βββ 008_snapshots.sql # Snapshot HTML storage
License
MIT
