备忘录i
记住你曾经进行过的每一次谈话。
    
Memorei是一个开源的MCP服务器,它为AI助手提供了一个可搜索的个人通信历史记忆。到目前为止,它已连接到13个平台——Discord、WhatsApp、Telegram、Signal、iMessage、Gmail、Slack、Instagram等——接收您的消息,并使用结合关键字和语义向量搜索的混合搜索引擎对其进行索引。任何支持 模型上下文协议 然后,你可以像问问题一样自然地查询你的记忆。
它解决的问题是: 每个人工智能助手在每次对话开始时都不知道你是谁,你讨论了什么,或者对你来说什么很重要。Memorei改变了这一点,它将你多年的个人对话变成了一个活生生的、可搜索的知识库——在你的人工智能需要的时候出现。
"What's my friend's favorite restaurant?"
"What did my sister say she wanted for her birthday?"
"How many times have I asked Dory to send that link again?"你的AI现在可以回答这些问题了。没有Memorei,它不能。
______________________________________________________________________
它也是一个平台
Memorei不仅仅是一个内存服务器,任何应用程序都可以在其上构建。我们最喜欢的两个:
- 电影戒指 --根据你的朋友在永远不会停止的群聊中实际谈论的内容对电影进行排名。
- 联系人档案 --从您的对话中构建自己的个人CRM。无需输入数据。
______________________________________________________________________
主要特点
- 本地优先 --所有数据都保存在计算机上的单个SQLite文件中
- 13来源和计数 --WhatsApp、Discord、Telegram、Slack、Matrix、iMessage、Signal、Gmail、Instagram、Mastodon等
- MCP本地 --通过模型上下文协议公开的19个工具,可供任何MCP客户端使用
- 混合搜索 --BM25关键词搜索+向量语义搜索,融合了互序融合
- 无强制云 --默认嵌入模型通过ONNX完全脱机运行
- CLI+Docker —
pip install memoreei你不到一分钟就要跑了
______________________________________________________________________
支持的来源
| 来源 | 类型 | 状态 |
|---|---|---|
WhatsApp.txt 导出) | 文件导入 | ✅ 稳定 |
| Discord(机器人程序API) | 实时同步 | ✅ 稳定 |
| 不一致数据包(GDPR导出) | 文件导入 | ✅ 稳定 |
| 电报(机器人程序API) | 实时同步 | ✅ 稳定 |
| Slack(Web API) | 实时同步 | ✅ 稳定 |
| 矩阵(客户端-服务器API) | 实时同步 | ✅ 稳定 |
| Mastodon(REST API) | 实时同步 | ✅ 稳定 |
| Gmail(IMAP) | 实时同步 | ✅ 稳定 |
| Instagram DM(GDPR导出) | 文件导入 | ✅ 稳定 |
| Facebook Messenger(GDPR导出) | 文件导入 | ✅ 稳定 |
| 短信备份和还原XML | 文件导入 | ✅ 稳定 |
| 通用JSON/JSON行 | 文件导入 | ✅ 稳定 |
| 通用CSV/TSV | 文件导入 | ✅ 稳定 |
| iMessage(macOS) | 实时同步 | 🧪 Beta |
| 信号桌面 | 实时同步 | 🧪 Beta |
手册注释(add_memory) | MCP工具 | ✅ 稳定 |
文件导入 --从导出文件中一次性或重复摄取。 实时同步 -通过API、基于检查点的增量同步(仅获取新消息)。
______________________________________________________________________
快速开始
pip install memoreei
memoreei setup # interactive — pick connectors, enter credentials
memoreei sync # pull messages from configured sources
memoreei serve # start the MCP server或来源:
git clone https://github.com/CalebChristiansen/Memoreei.git
cd Memoreei
python -m venv .venv && source .venv/bin/activate
pip install -e .连接到您的AI
添加到MCP客户端配置中(例如。 .mcp.json, claude_desktop_config.json,或您的客户端读取MCP服务器定义的任何位置):
{
"mcpServers": {
"memoreei": {
"command": "/path/to/memoreei/.venv/bin/python",
"args": ["-m", "memoreei.server"],
"cwd": "/path/to/memoreei"
}
}
}如果您是通过安装的 pip install memoreei,the memoreei-server 命令也可用:
{
"mcpServers": {
"memoreei": {
"command": "memoreei-server"
}
}
}______________________________________________________________________
MCP工具
所有19个工具均可用于任何连接的MCP客户端。
搜索与检索
search_memory
混合关键字+语义搜索所有摄入的记忆。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
query | 字符串 | 必需的 | 自然语言搜索查询 |
limit | int | 10 | 返回的最大结果数 |
source | string | -- | 按来源筛选,例如。 whatsapp:friends, discord:1234567890 |
participant | string | -- | 按发件人姓名筛选(不区分大小写) |
after | string | -- | ISO日期下限,例如。 2026-01-01 |
before | string | -- | ISO日期上限 |
get_context
获取特定记忆中的周围消息——这对于理解围绕结果的对话至关重要。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
memory_id | 字符串 | 必需的 | 搜索结果中的内存ID(ULID) |
before | int | 5 | 目标前要包含的消息 |
after | int | 5 | 目标后要包含的消息 |
add_memory
手动存储笔记、事实或任何值得记住的内容。自动立即嵌入内容。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
content | 字符串 | 必需的 | 要记住的文本 |
source | 字符串 | "manual" | 来源标签 |
metadata | dict | -- | 可选键值对 |
list_sources
用消息计数清点所有摄入的来源。
{
"whatsapp:friends": 1842,
"discord:1234567890": 391,
"telegram:-100987654321": 227,
"manual": 12
}______________________________________________________________________
文件导入工具
ingest_whatsapp
导入WhatsApp聊天导出 .txt 文件。处理多行消息、媒体占位符和重复数据消除重新导入。
| 参数 | 类型 | 说明 |
|---|---|---|
file_path | string | WhatsApp的路径 .txt 导出文件 |
import_discord_package
导入Discord GDPR数据导出(所有渠道和DM)。接受ZIP文件或解压缩文件夹。
请访问以下网址索取您的数据: Discord设置→ 隐私与安全→ 请求我的所有数据
| 参数 | 类型 | 说明 |
|---|---|---|
package_path | string | 提取文件夹或ZIP文件的路径 |
import_messenger
从GDPR数据下载(JSON格式)导入Facebook Messenger消息。
下载地址: Facebook设置→ 您的信息→ 下载您的信息
| 参数 | 类型 | 说明 |
|---|---|---|
data_path | string | 包含以下内容的已提取文件夹的路径 messages/inbox/ |
import_instagram
从GDPR数据下载(JSON格式)导入Instagram DM。
下载地址: Instagram设置→ 账户中心→ 您的信息→ 下载您的信息
| 参数 | 类型 | 说明 |
|---|---|---|
data_path | string | 包含以下内容的已提取文件夹的路径 your_instagram_activity/ |
import_sms_backup
从Android导入短信/彩信 短信备份还原 XML文件。
| 参数 | 类型 | 说明 |
|---|---|---|
file_path | string | XML备份文件的路径 |
import_json_file
从任何JSON文件导入消息。支持JSON数组、JSON行和包装对象。涵盖谷歌聊天外卖、谷歌环聊、领英数据和自定义格式。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
file_path | 字符串 | 必需的 | JSON或JSON行文件的路径 |
content_field | 字符串 | 必需的 | 包含消息文本的字段名 |
sender_field | string | -- | 发件人名称的字段名 |
timestamp_field | string | -- | 时间戳的字段名(自动检测格式) |
source_label | 字符串 | "json-import" | 导入邮件的标签 |
import_csv_file
从任何CSV或TSV文件导入消息。自动检测分隔符(逗号、制表符、分号)。涵盖LinkedIn导出和任何自定义电子表格格式。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
file_path | 字符串 | 必需的 | CSV/TSV文件的路径 |
content_column | 字符串 | 必需的 | 消息文本的列名 |
sender_column | string | -- | 发件人的列名 |
timestamp_column | string | -- | 时间戳的列名 |
source_label | 字符串 | "csv-import" | 导入邮件的标签 |
______________________________________________________________________
实时同步工具
所有同步工具都使用基于检查点的增量同步——在后续运行中只获取新消息。
sync_discord
通过机器人程序API同步来自Discord频道的消息。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
channel_id | 字符串 | DISCORD_CHANNEL_ID env var | 不一致通道ID |
sync_telegram
通过以下方式同步Telegram机器人收到的消息 getUpdates.Bot必须是目标组的成员或已收到DM。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
chat_id | 字符串 | TELEGRAM_CHAT_ID env var | 聊天ID(正=DM,负=组)。如果省略,则全部同步。 |
sync_matrix
使用Client-Server API同步矩阵室中的消息。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
room_id | 字符串 | MATRIX_ROOM_ID env var | 矩阵房间ID,例如。 !abc123:matrix.org |
sync_slack
通过Web API同步Slack频道的消息(conversations.history).需要机器人令牌 channels:history 和 users:read 范围。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
channel_id | 字符串 | SLACK_CHANNEL_ID env var | 松弛通道ID,例如。 C1234567890 |
sync_email
通过IMAP同步Gmail邮件。使用每个文件夹的UID检查点。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
folder | 字符串 | "INBOX" | IMAP文件夹,例如。 [Gmail]/Sent Mail |
max_emails | int | 200 | 每次同步的最大电子邮件数 |
sync_mastodon
同步Mastodon帖子。公共和标签时间线不需要身份验证。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
instance | 字符串 | MASTODON_INSTANCE env var | 实例URL,例如。 https://fosstodon.org |
hashtag | 字符串 | MASTODON_HASHTAG env var | 不带标签的标签 #,或在公共时间表中省略 |
access_token | 字符串 | MASTODON_ACCESS_TOKEN env-var | OAuth令牌(可选,用于家庭时间线) |
sync_imessage
🧪 Beta版-仅限macOS。需要在系统设置中对终端进行全磁盘访问→ 隐私和安全。
同步来自的iMessage/SMS对话 ~/Library/Messages/chat.db (只读)。
| 参数 | 类型 | 说明 |
|---|---|---|
chat_name | string | 可选--按联系人姓名或标识符筛选(例如。 +1234567890) |
sync_signal
🧪 Beta--需要 pysqlcipher3。必须安装Signal Desktop。同步来自本地加密SQLCipher数据库的Signal Desktop消息。 默认路径: ~/.config/Signal/sql/db.sqlite (Linux), ~/Library/Application Support/Signal/sql/db.sqlite (macOS)。
| 参数 | 类型 | 说明 |
|---|---|---|
conversation_id | string | 可选--按对话ID、姓名或电话号码筛选 |
______________________________________________________________________
实用工具
refresh_memory
触发所有已配置源的立即同步。返回新邮件的计数。
sync_all
同步每个配置的连接器并返回每个源的计数。
______________________________________________________________________
CLI 参考
# Interactive setup — configure connectors, writes to .env
memoreei setup # pick from a list (spacebar to select, enter to confirm)
memoreei setup gmail # configure a specific connector directly
# Start the MCP server (stdio transport, default)
memoreei serve
# Start with SSE transport (for HTTP clients)
memoreei serve --sse --port 8080
# Show DB stats: message counts, sources, last sync times
memoreei status
# Sync all configured sources
memoreei sync
# Sync a specific source
memoreei sync discord
memoreei sync telegram
memoreei sync matrix
memoreei sync slack
memoreei sync email
memoreei sync mastodon
# Search from the terminal
memoreei search "API redesign notes"
memoreei search "printer issue" --limit 5 --source whatsapp:friends
# Import files
memoreei import-whatsapp /path/to/WhatsApp\ Chat.txt
memoreei import-sms /path/to/sms-backup.xml
memoreei import-discord-package /path/to/discord-package.zip
# Show current configuration (tokens masked)
memoreei config______________________________________________________________________
建筑
┌──────────────────────────────────────────────────────────────────────┐
│ Your Data Sources │
│ │
│ File Imports Live Sync (API) │
│ ───────────────────────────── ────────────────────────── │
│ WhatsApp .txt Instagram JSON Discord Telegram │
│ Messenger JSON SMS Backup XML Slack Matrix │
│ Discord ZIP Generic JSON/CSV Gmail Mastodon │
│ iMessage Signal │
└──────────────┬───────────────────────────────┬─────────────────────┘
│ │
▼ ▼
┌──────────────────────────────────────────────────────────────────────┐
│ Memoreei MCP Server │
│ │
│ ┌────────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │
│ │ Connectors │ │ Hybrid Search │ │ MCP Tools │ │
│ │ │ │ │ │ │ │
│ │ 13 sources │ │ FTS5 (BM25) │ │ search_memory │ │
│ │ file + live sync │ │ + vector cosine │ │ get_context │ │
│ │ checkpoint-based │ │ + RRF fusion │ │ add_memory │ │
│ │ dedup on import │ │ │ │ list_sources │ │
│ │ │ └────────┬─────────┘ │ ingest_* │ │
│ │ │ │ │ import_* │ │
│ │ │ │ │ sync_* │ │
│ │ │ ┌────────▼──────────┐ │ refresh_memory │ │
│ │ │ │ SQLite Database │ │ sync_all │ │
│ │ │ │ memories + FTS5 │ └────────┬────────┘ │
│ └────────────────────┘ │ embeddings BLOB │ │ │
│ │ sync checkpoints │ │ │
│ └───────────────────┘ │ │
└────────────────────────────────────────────────────────┼────────────┘
│ │ stdio / SSE
▼
┌─────────────────────┐
│ MCP Clients │
│ │
│ Any AI assistant │
│ that speaks MCP │
└─────────────────────┘______________________________________________________________________
混合搜索的工作原理
Memorei并行运行两次搜索并合并结果:
Query: "that weird API rate limit issue"
│
├──▶ FTS5 BM25 keyword search
│ Matches "API", "rate", "limit" — fast, exact
│ Returns ranked list of IDs
│
└──▶ Vector search (cosine similarity)
Matches "throttling", "429 errors", "backoff"
Returns ranked list of IDs
│
▼
Reciprocal Rank Fusion (RRF)
─────────────────────────────
score(item) = Σ 1 / (60 + rank_i)
i ∈ {keyword_rank, vector_rank}
Items in BOTH result sets are boosted.
Items in only one set still contribute.
Top N returned, then filtered by source/participant/date.为什么选择RRF? 基于排名的融合不需要在不同尺度上进行分数归一化。常数 k=60 是原始论文的标准默认值,在经验上优于加权线性组合。
默认嵌入模型: BAAI/bge-small-en-v1.5 通过FastEmbed——384维矢量,约23 MB ONNX型号,完全离线运行。
______________________________________________________________________
配置
复制 .env.example 到 .env 并填写您要使用的源的凭据。未使用的连接器可以留空。或者干脆跑 memoreei setup 它会带你穿过它。
核心
| 变量 | 默认值 | 描述 |
|---|---|---|
EMBEDDING_PROVIDER | fastembed | fastembed (本地ONNX,无API密钥)或 openai |
OPENAI_API_KEY | -- | 仅在以下情况下需要 EMBEDDING_PROVIDER=openai |
MEMOREEI_DB_PATH | ./memoreei.db | SQLite数据库路径 |
AUTO_SYNC | false | 在服务器启动时启用后台同步循环 |
AUTO_SYNC_INTERVAL | 3600 | 后台同步间隔(秒) |
Discord 的中文翻译是“不和谐”或“纷争”。
| 变量 | 描述 |
|---|---|
DISCORD_BOT_TOKEN | 来自Discord开发者门户的Bot令牌 |
DISCORD_CHANNEL_ID | 的默认通道ID sync_discord |
电报
| 变量 | 描述 |
|---|---|
TELEGRAM_BOT_TOKEN | 来自@BotFather的机器人令牌 |
TELEGRAM_CHAT_ID | 默认聊天ID(正=DM,负=组) |
矩阵
| 变量 | 描述 |
|---|---|
MATRIX_HOMESERVER | 家庭服务器URL,例如。 https://matrix.org |
MATRIX_ACCESS_TOKEN | 用户访问令牌 |
MATRIX_ROOM_ID | 默认房间ID,例如。 !abc123:matrix.org |
Slack
| 变量 | 描述 |
|---|---|
SLACK_BOT_TOKEN | 机器人令牌(xoxb-...),要求 channels:history + users:read |
SLACK_CHANNEL_ID | 默认通道ID,例如。 C1234567890 |
Gmail
| 变量 | 描述 |
|---|---|
GMAIL_EMAIL | Gmail地址 |
GMAIL_APP_PASSWORD | 应用程序密码 (如果启用2FA,则需要) |
长毛象
| 变量 | 默认值 | 描述 |
|---|---|---|
MASTODON_INSTANCE | https://mastodon.social | 实例URL |
MASTODON_HASHTAG | -- | 默认标签(无 #) |
MASTODON_ACCESS_TOKEN | -- | OAuth令牌(可选,用于家庭时间线) |
iMessage(仅限macOS)
| 变量 | 默认值 | 描述 |
|---|---|---|
IMESSAGE_DB_PATH | ~/Library/Messages/chat.db | 覆盖路径 chat.db |
信号桌面
| 变量 | 描述 |
|---|---|
SIGNAL_DB_PATH | 覆盖信号路径 db.sqlite |
SIGNAL_CONFIG_PATH | 覆盖信号路径 config.json |
______________________________________________________________________
隐私
本地优先设计。
- 存储在计算机上单个SQLite文件中的所有数据
- 默认嵌入模型(FastEmbed)通过ONNX完全脱机运行——零网络调用
- OpenAI嵌入是严格选择加入的(
EMBEDDING_PROVIDER=openai) - 无遥测、无分析、无云同步
- 您的消息永远不会以默认配置离开您的计算机
什么需要网络访问:
- 实时同步连接器(Discord、Telegram、Slack、Matrix、Gmail、Mastodon)向这些服务发出API外呼
EMBEDDING_PROVIDER=openai将消息文本发送到OpenAI的API以进行嵌入
这 .env 归档 memoreei.db 在 .gitignore.
______________________________________________________________________
码头工人
docker build -t memoreei .
docker run -v ./data:/data -e MEMOREEI_DB_PATH=/data/memoreei.db memoreei serve或者使用docker编写:
docker-compose up______________________________________________________________________
贡献
看 贡献.md 有关添加新连接器、运行测试和提交pull请求的指南。
______________________________________________________________________
许可证
麻省理工学院
