Memex Twos MCP
转变你的 二 应用程序导出到Claude的可查询知识库中。
 
这是什么?
Memex Twos MCP是一款 模型上下文协议 该服务器允许您通过Claude使用自然语言从Twos生产力应用程序查询您的个人“事物”历史。
不要手动搜索成千上万的东西,问问克劳德:
- “去年夏天,我对家居装修有什么看法?”
- “给我看看我和爱丽丝计划的一切”
- “查找标记为#work from January的内容”
特性
- 所有内容的全文搜索(FTS5)
- 用于时间分析的日期范围查询
- 人员和标签过滤
- 模式分析构建块
- 自动数据整理(删除重复项,修复质量问题)
- 通过Claude Code进行可选的人工智能语义分析
- 本地优先隐私:您的数据保留在您的计算机上
- 面向初学者的交互式设置向导
快速开始
1.导出您的Twos数据
在Twos应用程序中:设置->导出-> 带时间戳的Markdown
重要提示: 您必须选择“带时间戳的Markdown”(不是纯Markdown)。解析器需要时间戳来提取日期和组织数据。
2.运行安装向导
git clone https://github.com/yourusername/memex-twos-mcp.git
cd memex-twos-mcp
./setup_wizard.sh /path/to/Twos-Export.md就是这样! 向导将:
- 创建虚拟环境(如果需要)
- 安装依赖项
- 将导出转换为JSON
- 清理和整理您的数据(删除重复项,修复质量问题)
- 将清理后的数据加载到SQLite
- 生成Claude桌面配置
可选: 指定自定义Claude配置位置:
./setup_wizard.sh /path/to/Twos-Export.md /path/to/claude_desktop_config.json备选方案: 直接运行Python向导以进入交互模式:
python scripts/setup_wizard.py
# Or with explicit paths:
python scripts/setup_wizard.py --export-file /path/to/Twos-Export.md --claude-config /path/to/claude_desktop_config.json要全局覆盖Claude配置自动检测,请设置 MEMEX_CLAUDE_CONFIG.
3.配置Claude
重新启动Claude Desktop并尝试: “我的任务数据库中有什么?”
Windows用户: 关闭Claude Desktop窗口有时不会退出该过程。如果“重新启动”后MCP配置未加载,请通过任务管理器(Ctrl+Shift+Esc)完全终止Claude→ 找到“克劳德”→ 结束任务),然后重新启动应用程序。
需求
必要的
- Python 3.10或更高版本
- Twos应用程序,可导出数据
- Claude Desktop(用于使用MCP服务器)
可选(用于AI功能)
从三家LLM提供商中选择一家进行人工智能数据整理和实体分类:
- LM工作室 (本地/免费)-推荐给注重隐私的用户
- 克劳德代码CLI (订阅)-使用您的Claude订阅配额
- 无烟煤API (每个代币付费)-直接API访问
注: AI功能是可选的。MCP服务器仅适用于基本梳理。
LLM配置
使用YAML配置文件配置首选提供程序(推荐):
- 复制示例配置:
cp .llm_config.yaml.example .llm_config.yaml- 编辑
.llm_config.yaml使用您的提供商设置:
# For LM Studio (local, free, private)
default_provider: lmstudio
providers:
lmstudio:
endpoint: http://localhost:1234
# For Claude CLI (uses subscription)
# default_provider: claude-cli
# For Anthropic API (pay-per-token)
# default_provider: anthropic-api
# providers:
# anthropic-api:
# api_key: sk-ant-api03-...- 你准备好了! 脚本将使用您配置的提供程序
--ai-analysis或--ai-classify旗帜。
重要提示: 配置文件被gitignored,因此您的API密钥保持私有。
安装LM Studio(推荐)
对于本地免费AI处理:
- 下载LM工作室: https://lmstudio.ai/
- 加载模型 (例如,拉玛、米斯特拉尔)
- 启动本地服务器 (默认端口1234)
- 配置: 集
endpoint: http://localhost:1234在.llm_config.yaml
优点:
- 100%本地,无数据发送到外部服务器
- 免费使用
- 无需订阅或API费用
- 离线工作
安装Claude Code CLI(替代方案)
如果您更喜欢使用Claude订阅:
- 安装Claude Code命令行界面:
npm install -g @anthropic/claude-code
# or follow: https://code.claude.com/docs/quickstart- 验证安装:
claude --version- 配置: 集
default_provider: claude-cli在.llm_config.yaml
使用Claude CLI时:
- 使用您的Claude订阅配额(与Claude Desktop相同)
- 处理时间:典型数据集2-5分钟
- 需要互联网连接
- 所有数据都保持在本地(Claude Code在您的计算机上运行)
无烟煤API(备选方案)
对于API的直接访问:
- 获取API密钥: https://console.anthropic.com/
- 配置: 添加
api_key到.llm_config.yaml
注: 按代币付费定价适用。
安装spaCy NER(可选,推荐)
为了准确提取人员,减少80%的误报:
pip install -e ".[ner]"
python -m spacy download en_core_web_sm为什么使用NER?
- 使用NER: 准确识别真实姓名(约90%的精度)
- 没有NER: 使用正则表达式回退,容易出现误报(动词如“Set”、“Plan”,月份如“March”、“May”)
用途:
# With NER (recommended, default)
python3 src/convert_to_json.py data/raw/twos_export.md -o data/processed/twos_data.json
# Without NER (faster but less accurate)
python3 src/convert_to_json.py data/raw/twos_export.md -o data/processed/twos_data.json --no-ner示例:
- 《遇见爱丽丝》→ NER提取“爱丽丝”✅ | 正则表达式提取“Alice”✅
- “设置提醒”→ NER未提取任何内容✅ | 正则表达式提取“Set”❌
- “三月会议”→ NER未提取任何内容✅ | 正则表达式提取“March”❌
安装语义搜索(可选)
对于结合词汇(BM25)和语义(向量)搜索的混合搜索:
pip install sentence-transformers sqlite-vec
# Download embedding model (~90MB)
python -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('all-MiniLM-L6-v2')"为什么要使用语义搜索?
- 仅限词汇: 匹配精确的关键字-“医生预约”找到“医生”和“预约”
- 语义: 了解概念-“体检”还包括“医生预约”、“牙医就诊”
- 更适合“搬家”、“健康问题”、“工作项目”等概念性查询
用途:
# Load data with embeddings (default)
python3 scripts/load_to_sqlite.py data/processed/twos_data_cleaned.json
# Disable embeddings (faster loading)
MEMEX_DISABLE_EMBEDDINGS=1 python3 scripts/load_to_sqlite.py data/processed/twos_data_cleaned.json
# Migrate existing database to add embeddings
python3 scripts/migrate_add_embeddings.py data/processed/twos.db在克劳德桌面中:
# Keyword search (exact matches)
"Search for the exact word 'doctor'"
# Semantic search (understands meaning) - automatically selected for conceptual queries
"Find health-related things from last year" # Finds "doctor", "dentist", "checkup", etc.演出
- 嵌入生成:在\<30秒内生成约10K个东西(CPU)
- 混合搜索:中位数\<200ms(10K个东西)
- 存储空间:每件约1.5KB(10K件约15MB)
增量摄入
为了在添加新数据或进行更改时更快地更新:
# First load (full rebuild)
python3 scripts/load_to_sqlite.py data/processed/twos_data_cleaned.json
# Subsequent updates (incremental - only new/changed things)
python3 scripts/load_to_sqlite.py data/processed/twos_data_cleaned.json --mode=append
# Or use shorthand
python3 scripts/load_to_sqlite.py data/processed/twos_data_cleaned.json --incremental
# Sync mode (insert new, update changed, delete removed)
python3 scripts/load_to_sqlite.py data/processed/twos_data_cleaned.json --mode=sync为什么要使用增量模式?
- 完全重建: 3秒内完成10K,30秒内完成100K
- 增量: 在约0.3秒内完成100件新事物(速度提高10倍)
- 只有处理改变的事物,保留不变事物的嵌入
- 三种模式:
- append (默认增量):仅插入新内容,最安全的添加方式 - sync:插入新内容、更新已更改、删除已删除(完全同步) - rebuild:全部删除并重新生成(默认行为)
迁移现有数据库:
python3 scripts/migrate_add_incremental.py data/processed/twos.db它是如何工作的:
- 内容哈希检测更改(时间戳+内容+section_header)
- 仅更新已更改的内容,保留现有嵌入
- 导入审核跟踪跟踪中的所有更改
imports桌子 - FTS索引保持自动同步
演出
- 添加100个新事物(总共10K):~0.3秒(比重建快10倍)
- 更新100件事(总共10K):~0.5秒(比重建快6倍)
- 非常适合日常更新或小型数据刷新
查询示例
- “给我看看去年12月的所有事情”
- “今年我和鲍勃有什么计划?”
- “查找有关医生预约的信息”
- “显示所有标记为#emergency的内容”
- “我最常见的任务主题是什么?”
- “给我一个数据库健康检查”
快速健康检查
要验证您的配置是否指向正确的数据库:
python3 scripts/db_count.py这将打印数据库路径、总事务计数和任何可用的负载元数据。
手动工作流程
如果您更喜欢分步控制而不是安装向导:
基本工作流程(无人工智能)
# 1. Install dependencies
pip install -r requirements.txt
# 2. Convert Twos export to JSON
python3 src/convert_to_json.py data/raw/twos_export.md -o data/processed/twos_data.json
# 3. Groom data (remove duplicates, fix issues)
python3 scripts/groom_data.py
# 4. Load to SQLite
python3 scripts/load_to_sqlite.py data/processed/twos_data_cleaned.json
# 5. Configure Claude Desktop (add MCP server config)
# See MCP_SETUP.md for configuration details高级工作流(带AI)
# 1-2. Same as basic (install deps, convert to JSON)
# 3. Groom data WITH AI semantic analysis
python3 scripts/groom_data.py --ai-analysis
# 4. Classify and normalize entities
python3 scripts/classify_entities.py --ai-classify --apply-mappings
# 5. Load normalized data to SQLite
python3 scripts/load_to_sqlite.py data/processed/twos_data_cleaned_normalized.json
# 6. Configure Claude Desktop工作流比较
| 功能 | 基本 | 高级(AI) |
|---|---|---|
| 重复删除 | ✅ 完全重复 | ✅ 精确+语义 |
| 损坏的引用修复 | ✅ | ✅ |
| 实体分类 | ❌ | ✅ 人/地点/动词 |
| 案例规范化 | ❌ | ✅ |
| 模式检测 | ❌ | ✅ |
| 查询准确性 | 良好 | 优秀 |
| 设置时间 | 2分钟 | 5-10分钟 |
| 需要克劳德代码 | 否 | 是 |
建议: 从基本工作流程开始,如果你想要更好的实体过滤,升级到人工智能。
文档
运作原理
Twos Export (MD)
↓
Parser (convert_to_json.py)
↓
JSON (twos_data.json)
↓
Data Grooming (groom_data.py)
↓
Cleaned JSON (twos_data_cleaned.json)
↓
Entity Classification (classify_entities.py) [optional]
↓
Normalized JSON (twos_data_cleaned_normalized.json)
↓
SQLite Database (load_to_sqlite.py)
↓
MCP Server (server.py)
↓
Claude Desktop步骤说明:
- 解析器 -从Markdown中提取事物、人物、标签、时间戳
- 梳理 -删除重复项、修复损坏的引用、检测问题
- 实体分类 (可选)-对人、地点和动词进行分类,对名字进行规范化
- SQLite -使用全文搜索(FTS5)和索引查询存储数据
- MCP服务器 -公开Claude的查询工具(搜索、日期范围、过滤器)
- 克劳德桌面版 -任务历史记录的自然语言界面
数据整理
安装向导包括默认运行的自动数据清理:
Python自动修复(快速,免费):
- 删除完全重复的内容(1分钟内相同的内容)
- 修复了损坏的父任务引用
- 检测正常化机会
- 生成详细的变更报告
可选AI分析:
- 语义模式检测和主题分类
- 增强的重复识别
- 模式改进建议
- 使用Claude Code订阅配额(选择加入
--ai-analysis)
所有更改都记录到 docs/grooming-reports/ 并且原始数据永远不会被修改。对于手动梳理或调音:
# Basic grooming (always recommended)
python scripts/groom_data.py data/processed/twos_data.json
# With AI semantic analysis
python scripts/groom_data.py data/processed/twos_data.json --ai-analysis
# Tuning options
python scripts/groom_data.py --duplicate-window 14 # More aggressive duplicate detection看 DATA_GROOMING_PROMPT.md 了解详情。
实体分类
解析器从任务中提取“people”,但经常将动词、地点和常用词误分类为people(例如,“New”、“Put”、“Seattle”)。实体分类解决了这个问题:
快速工作流
# 1. Extract entities and review summary
python scripts/classify_entities.py
# 2. AI classification (requires Claude Code)
python scripts/classify_entities.py --ai-classify
# 3. Apply classifications to create normalized data
python scripts/classify_entities.py --apply-mappings
# 4. Load normalized data
python scripts/load_to_sqlite.py data/processed/twos_data_cleaned_normalized.json它的作用
- 提取物 所有具有频率计数的唯一人员/标签
- 分类 实体分为:人、地点、项目、动词、其他(人工智能或手动)
- 正常化 案例变体(例如,“Alice”和“Alice”→ “爱丽丝”)
- 过滤器 来自people领域的非人实体
- 蜜饯 原始数据(创建新的规范化文件)
无AI(跳过实体分类)
如果你没有克劳德代码,你可以跳过实体分类:
# Just load the cleaned data directly
python scripts/load_to_sqlite.py data/processed/twos_data_cleaned.jsonMCP服务器可以工作,但像“与爱丽丝的事情”这样的查询可能包含错误匹配(例如,句子开头的动词被误分类为人)。
注: 实体分类是可选的,但建议用于提高查询准确性。计划在未来的版本中手动导入/导出CSV。
隐私和安全
- 所有数据处理都在本地进行
- 没有任何内容上传到外部服务器
- MCP连接是本地的(stdin/stdout)
贡献
欢迎捐款。看 贡献.md.
许可证
MIT许可证。看 许可证.
支持
- 报告bug:使用GitHub问题模板
- 请求功能:使用GitHub问题模板
- 阅读文档: MCP_SETUP.md
Memex Twos MCP-常见问题
我需要知道如何编码吗?
不!有一个安装向导可以引导您完成所有操作。你需要熟练地运行一些终端命令,但这很简单。如果你能从Twos导出并复制粘贴命令,那就很好了。
要求是什么?
- Python 3.10+(大多数系统已经有了这个)
- Claude Desktop(用于使用MCP服务器)
- Twos导出文件
- *可选:* Claude Code CLI,如果你想要AI驱动的数据整理和实体分类(提高准确性)
我的数据是私有的吗?
100%.所有东西都留在你的机器上-除了Claude Desktop查询其API时(与任何Claude对话相同),没有任何东西被上传到外部服务器。MCP服务器通过stdin/stdout在本地运行。
什么是“实体分类”?
Twos解析器有时会将句首动词和地名误分类为人(例如,“New York”→ 名为“新”或“把钥匙收起来”的人→ 名为“Put”的人)。实体分类使用AI来过滤这些变量并规范化名称变体。它是可选的,但会使“与爱丽丝的事情”这样的查询更加准确。
您可以使用AI运行它(需要Claude Code,需要2-3分钟)或完全跳过它。服务器以任何方式工作。
安装需要多长时间?
- 基本设置(无AI功能):约2分钟
- AI修饰和实体分类的完整设置:约7-10分钟
AI步骤是可选的,如果你想快速开始,可以稍后运行。
我可以运行什么类型的查询?
以下是我尝试过的一些例子:
- “我对去年夏天的装修有什么看法?”
- “向我展示我用\[人名\]计划的一切”
- “查找标记为#work from January的内容”
- “我第一次提到地下室项目是什么时候?”
- “给我一份所有与承包商相关的事情的时间表”
基本上,你可以在Twos中手动搜索任何东西,但克劳德现在可以通过对话来完成,并在几个月内拼凑出线索。
它与Twos API或实时同步一起工作吗?
不,它使用Markdown导出。您从Twos导出,运行转换器,并将其加载到SQLite中。如果你想稍后更新它,只需再次导出并重新运行加载程序。不是实时的,但非常适合回顾和分析。
我能看到一个它工作的例子吗?
我不想发布带有个人数据的截图,但如果人们感兴趣,我很乐意分享示例查询/结果。README中也有一些示例查询。
哇,这是你自己做的吗?
不,这个项目是Claude Code和Codex多次迭代的结果,并得到了Gemini CLI和Perplexity的一点帮助。
我知道如何构建它和我想要的数据流,人工智能在实现和调试方面做了繁重的工作。
