间隔重复知识管理系统

一个结合间隔重复技术的个人知识管理系统,通过与Claude交互实现知识捕获、闪卡创建和复习功能。

  • by coopermayne
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 coopermayne/mcp-personal

使用说明

救生员

一个间隔重复的个人知识系统,主要通过MCP与克劳德一起使用。

这是什么?

Lifelogger通过两个核心概念帮助您捕获和保留知识:

  • 条目原始知识——事实、笔记、概念,任何你想记住的东西
  • 卡片:用于间隔重复的抽认卡,可选择链接到条目

这个想法是使用Claude作为你的界面。聊天时,你可以让克劳德保存有趣的事实,制作抽认卡,并就你所学到的知识对你进行测验。Claude决定如何表达卡片以及何时创建卡片——MCP工具只处理数据库操作和调度。

与克劳德的对话示例

你我刚刚了解到,在地球历史上,大灭绝事件已经发生了5次,而我们现在可能是人类造成的第6次大灭绝。

克劳德:这是一个重要的事实。要我保存这个并创建一些抽认卡吗?

你是的,把它存起来做张卡

克劳德: [调用log_entry,然后调用create_card] 完成!我保存了标记为“科学”和“生态学”的条目,并创建了一张卡片:

  • Q: “地球历史上发生过多少次大灭绝事件?”
  • A: “5,目前可能由人类引起的第6起”

稍后:

你:问我一些问题

克劳德: [调用get_due_card] 这里有一个: 地球历史上发生过多少次大灭绝事件?

你5,我们在6号

克劳德:正确!那是什么感觉——容易、好、难,还是你忘了?

你:很好

克劳德: [通话记录_查看评分=2] 明白了。4天后你会再看到这张卡的。

MCP工具

工具 目的
log_entry 保存知识(内容、标签)
search_entries 按文本/标签查找条目
create_card 制作一张抽认卡(基本/可逆/完形填空)
browse_cards 列出/过滤现有卡片
get_due_cards 获取到期待审核的卡片
record_review 记录评级(0-3),更新时间表

卡片类型

  • 基本的:单向Q→A
  • 可逆的:创建两张卡(A→民宿→A)
  • 完形填空:填写空白样式

评论评分

评级 含义 效果
0(再次) 完全忘记 重置为1天
1(硬) 几乎不记得 间隔×1.2
2(良好) 努力记住 间隔×轻松系数
3(容易) 完美回忆 间隔×容易系数×1.3

调度使用SM-2算法,与Anki基于的算法相同。

设置

1.安装

pip install -e .

2.数据库

设置PostgreSQL并配置连接:

cp .env.example .env
# Edit .env with your DATABASE_URL

运行迁移:

alembic upgrade head

3.配置Claude

添加到您的Claude桌面 claude_desktop_config.json:

{
  "mcpServers": {
    "lifelogger": {
      "command": "python",
      "args": ["-m", "lifelogger.mcp.server"],
      "env": {
        "DATABASE_URL": "postgresql://user:password@localhost:5432/lifelogger"
      }
    }
  }
}

Web界面(可选)

还有一个React前端,用于在Claude之外浏览条目/卡片和进行评论。

# Terminal 1 - Backend
export DATABASE_URL="postgresql://..."
uvicorn lifelogger.api.main:app --port 8000

# Terminal 2 - Frontend
cd frontend && npm install && npm run dev

打开http://localhost:5173

技术栈

  • Python 3.11+、FastAPI、SQLAlchemy、Alembic
  • PostgreSQL
  • MCP Python SDK
  • React+Vite(前端)

项目结构

lifelogger/
├── alembic/              # Database migrations
├── frontend/             # React web UI
├── lifelogger/
│   ├── api/              # FastAPI REST API
│   ├── core/sm2.py       # Spaced repetition algorithm
│   ├── db/               # SQLAlchemy models
│   └── mcp/server.py     # MCP server
└── pyproject.toml