Mitt Digitala Minne
一个个人知识管理应用程序,您可以在其中保存、组织和搜索记忆——想法、链接、文章、图像、YouTube视频和社交媒体帖子。具有web UI和MCP服务器,可直接通过Claude AI保存内存。
瑞典语用户界面 · 全文搜索 · 人工智能通过MCP供电 · 自托管
______________________________________________________________________
建筑
mittdigitalaminne/
├── web/ # Next.js web app (frontend + API)
├── mcp-server/ # MCP server (Claude AI integration)
├── supabase/
│ └── migrations/ # Database schema (run in order)
└── README.md| 组件 | 技术 | 部署到 |
|---|---|---|
| Web 应用 | Next.js 16、React 19、TailwindCSS 4、Supabase SSR | Vercel |
| MCP服务器 | Node.js、@modelcontextprotocol/sdk、双传输 | Cloudflare Workers(HTTP)+local(stdio) |
| 数据库 | PostgreSQL通过Supabase,瑞典FTS,三元组搜索 | Supabase |
运作原理
- Web用户界面 --浏览、搜索、过滤、创建和编辑记忆
your-app.vercel.app - MCP服务器 --Claude AI可以通过工具调用保存/搜索/管理记忆
- stdio传输 --克劳德桌面(本地) - HTTP传输 --通过Cloudflare Workers(远程)访问Claude.ai
______________________________________________________________________
先决条件
______________________________________________________________________
安装指南
1.克隆并安装
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.创建Supabase项目
- 首选 suabase.com/dashboard 并创建一个新项目
- 注意你的 项目Url 和 API密钥 从“设置”>“API”
- 通过按顺序运行数据库迁移 SQL编辑器:
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- 创建一个 存储桶 对于图像:
- 转到Supabase仪表板中的存储 - 创建一个名为的新bucket memory-images - 设置为 公共
3.配置环境变量
Web 应用 --创建 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服务器 --创建 mcp-server/.env:
SUPABASE_URL=https://YOUR_PROJECT.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key_here您可以在您的Supabase项目中找到这些值 设置>API.
4.在本地运行
# 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______________________________________________________________________
部署
将web应用程序部署到Vercel
cd web
npx vercel --prod在Vercel项目设置中设置这些环境变量:
| 变量 | 值 |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | https://YOUR_PROJECT.supabase.co |
NEXT_PUBLIC_SUPABASE_ANON_KEY | 您的匿名/公钥 |
SUPABASE_SERVICE_ROLE_KEY | 您的服务角色密钥 |
OPENAI_API_KEY | 您的OpenAI API密钥 |
将MCP服务器部署到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您的MCP服务器将在 https://your-worker.your-subdomain.workers.dev.
______________________________________________________________________
连接克劳德AI
选项A:克劳德桌面(本地,标准输入)
添加到您的Claude桌面配置(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"
}
}
}
}先构建 cd mcp-server && npm run build.选项B:Claude.ai(远程,通过Cloudflare Workers进行HTTP)
- 首选 claude.ai/设置/集成
- 添加新的MCP集成:
- 统一资源定位符: https://your-worker.your-subdomain.workers.dev/mcp - 认证:不记名代币( MCP_AUTH_TOKEN 您设置)
- Claude.ai现在可以保存记忆、搜索、添加笔记等。
______________________________________________________________________
MCP工具
MCP服务器公开了Claude可以使用的10个工具:
| 工具 | 说明 |
|---|---|
add_memory | 保存新内存(从URL自动检测YouTube/Linkin/Instagram) |
search_memories | 带过滤器的全文搜索(类型、标签、日期、收藏夹) |
get_memory | 按ID获取特定内存 |
update_memory | 更新标题、摘要、内容、标签、收藏夹状态 |
delete_memory | 删除内存 |
list_tags | 列出所有带有使用次数的标签 |
get_statistics | 仪表板统计数据(按类型计数,最近的活动) |
upload_image | 上传base64编码的图像 |
add_note | 在记忆中添加评论/注释 |
get_notes | 列出记忆中的所有笔记 |
______________________________________________________________________
特性
内容类型
- 7种内容类型:思想、链接、文章、图片、YouTube、领英、Instagram
- 从粘贴的URL中自动检测平台
丰富的预览
- 油管 --带有缩略图和播放按钮覆盖的嵌入式视频播放器
- Instagram --通过以下方式完全嵌入具有动态高度的柱子/卷轴
postMessage - 领英 --带有平台颜色的品牌文本预览
- 文章和链接 --带有favicon和域名的OG图像预览
- 智能标题处理 --长社交媒体标题的自动截断,长度约为120个字符
搜索和筛选
- 瑞典语全文搜索 具有相关性排名(加权:标题>摘要>内容)
- 过滤器 --按内容类型、标签、项目、日期范围、收藏夹、收件箱状态
- 智能空间 --将任何活动筛选器组合另存为侧边栏中的命名空间
组织
- 标签 带有用于分类的颜色
- 项目与收藏 --带有名称、颜色、图标、截止日期和状态(活动/存档)的组相关记忆
- 收件箱 --新的记忆会进入收件箱,直到整理好
- 收藏夹 --明星重要回忆,便于快速访问
AI功能
- AI总结 --文章和帖子的自动摘要
- AI标签建议 --与现有标签匹配的关键字提取
- AI操作面板 --在细节视图中直接使用AI处理记忆(总结、提取关键点、翻译等)
- 相关回忆 --基于共享标签的相似存储器之间的自动连接
Web快照
- 保存网页的HTML快照以供离线阅读
- 在应用程序中的沙盒iframe中查看快照
导出与下载
- 以.txt格式下载 --带有标题、摘要、内容、元数据和标签的干净文本文件
- 以.docx格式下载 --带排版、标题、项目符号列表和元数据的格式化Word文档
- 可从上下文菜单(右键单击卡片)和局部视图工具栏中获得
- 通过长按在手机上工作
上下文菜单(桌面和移动设备)
- 右击 (桌面)或 长压机 存储卡上的(移动,500ms):
- 切换收藏夹 - 添加到项目(包含活动项目的子菜单) - 以.txt格式下载 - 以.docx格式下载 - 打开原始链接 - 删除内存
- 手机触觉反馈(振动API)
- 视口感知定位(菜单保留在屏幕上)
仪表盘
- 统计概述及类型分布图
- 最近的回忆列表
- 重新露面——重新发现可能再次相关的旧记忆
评论线索
- 在任何内存中添加注释/评论
- 每个内存的线程讨论
设计
- “琥珀发光”主题 --暖琥珀色调,内容类型彩色卡片发光
- 字体:仪器系列(标题)+DM Sans(正文)
- 可折叠侧边栏 (72像素折叠,272像素展开)具有本地存储持久性
- 响应式 --适用于台式机和移动设备
- 环境梯度球体 以及装饰性隔断
- 瑞典语UI贯穿始终
______________________________________________________________________
项目结构
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______________________________________________________________________
许可证
麻省理工学院
