内存mcp服务器
用于便携式LLM存储器的MCP服务器。将其连接到Claude Desktop、Claude.ai或任何兼容MCP的客户端,以便每次对话都可以访问您的个人存储配置文件。
你的事实,你的机器,你的控制。没有云,没有账户,没有遥测。
它做什么
此MCP服务器充当 单个本地存储 任何提供者都可以读写。当你告诉克劳德一些关于你自己的事情时,它会存储在本地。当您稍后打开ChatGPT(一旦它支持MCP)时,该上下文已经存在。
v1.0亮点:
- 重复检测 --令牌相似性匹配可防止冗余事实的累积
- 完整事实编辑 --更新任何已保存事实的内容、类别、标签和置信度
- 自动上下文MCP资源 --客户可以订阅
memory://profile用于自动上下文注入 - 静态AES-256-GCM加密 --set
MEMORY_MCP_PASSPHRASE加密您的商店文件 - 导入时解决冲突 --使用跳过、覆盖或合并策略进行往返导入/导出
- 保留和到期 --事实可以携带
expires_at日期;陈旧事实审查暴露旧条目 - 评分令牌搜索 --搜索结果按标记重叠相关性排序
- 提供者归因 --跟踪哪个LLM提供商贡献了每个事实
- 自定义类别 --添加、编辑或删除12个内置类别之外的模式类别
- 类别可见性控制 --将类别标记为隐藏,以将其从上下文注入中排除
- 更改日志审核跟踪 --每个突变都记录在仅可追加的日志中
- 批量操作 --在一次通话中确认所有待处理、删除所有已拒绝或清除类别
- 按类别MCP资源 --浏览
memory://category/{name}用于特定类别的配置文件 - 写入速率限制 --可配置的节流阀,防止写入失控
这是一个伴侣 LLM内存提取器 浏览器扩展,提供了一种通过MCP而不是DOM抓取的替代捕获路径。
它与浏览器扩展程序的关系
浏览器扩展程序捕获对话 事后 通过观看页面。这个MCP服务器翻转了模型——LLM本身存储事实 在谈话中 通过工具调用。两者都输入兼容的内存存储。
| 浏览器扩展 | MCP服务器 | |
|---|---|---|
| 捕获方法 | DOM抓取 | LLM工具调用 |
| 适用于 | Web UI(Claude、ChatGPT等) | 任何MCP客户端(Claude Desktop等) |
| 提取 | 捕获后单独进行LLM传递 | 对话期间内联 |
| 应用程序支持 | 仅限浏览器 | 桌面应用程序、移动设备(随着MCP的普及) |
| 需要用户操作 | 打开/关闭捕获 | 只需连接一次 |
快速开始
1.建造
git clone https://github.com/dataforaction-tom/memory-mcp-server
cd memory-mcp-server
npm install
npm run build2.连接到克劳德桌面
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上, %APPDATA%\Claude\claude_desktop_config.json 在Windows上):
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/absolute/path/to/memory-mcp-server/dist/index.js"]
}
}
}要启用静态加密,请添加一个环境变量:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/absolute/path/to/memory-mcp-server/dist/index.js"],
"env": {
"MEMORY_MCP_PASSPHRASE": "your-secret-key-here"
}
}
}
}3.HTTP传输(远程访问)
要将内存mcp服务器与Mistral Le Chat、OpenAI或Google Gemini Enterprise一起使用, 在HTTP模式下运行它:
# Local development
memory-mcp-server --http
# Custom port
memory-mcp-server --http --port 8080
# Remote deployment (all interfaces + auth)
MEMORY_MCP_API_KEY=your-secret-key memory-mcp-server --http --host 0.0.0.0环境变量
| 变量 | 描述 |
|---|---|
MEMORY_MCP_API_KEY | HTTP身份验证的承载令牌(可选——远程部署所需) |
MCP_PORT | HTTP端口(默认值:3000,被覆盖 --port) |
MCP_HOST | 绑定地址(默认值:127.0.0.1,被覆盖 --host) |
从平台连接
Mistral Le Chat: 添加带有URL的自定义连接器 https://your-server.example.com/mcp 并选择“HTTP承载令牌”身份验证。
OpenAI: 使用URL配置为远程MCP服务器 https://your-server.example.com/mcp 以及你的持票人代币。
谷歌双子座企业版: 使用流式HTTP URL添加为自定义MCP服务器 https://your-server.example.com/mcp.
注: 对于远程部署,使用反向代理(Caddy、nginx、Cloudflare Tunnel)终止HTTPS。服务器使用纯HTTP。
4.使用它
连接后,Claude可以访问 23工具 跨多个工作流,以及 2 MCP资源 用于自动上下文注入。
工作流程草案(推荐)
工作流程草案将“收集”和“保存”分开——事实在对话过程中积累在内存中,只有在你准备好的时候才会被持久化。这反映了浏览器扩展程序的工作方式(捕获->查看->确认)。
| 工具 | 它做什么 |
|---|---|
memory_create_facts | 在对话中积累草稿事实(尚未保存) |
memory_review_draft_facts | 显示此会话收集的所有草稿 |
memory_edit_draft_fact | 保存前编辑草稿 |
memory_discard_draft_facts | 删除特定草稿或清除所有草稿 |
memory_save_all_facts | 将草稿提交到持久存储 |
示例流程:
- 交谈中,克劳德打来电话
memory_create_facts当它学习东西时 - 接近尾声时,你说“你对我有什么了解?”
- 克劳德打电话来
memory_review_draft_facts并显示列表 - 你说“删除关于X的那个,保存其余的”
- 克劳德打电话来
memory_discard_draft_facts然后memory_save_all_facts
直接存储(跳过草稿)
当您不需要审查步骤时,可以快速进行一次性保存:
| 工具 | 它做什么 |
|---|---|
memory_store_fact | 立即保存一个事实 |
memory_store_facts | 立即保存多个事实 |
查询和管理
| 工具 | 它做什么 |
|---|---|
memory_search | 搜索现有事实(按标记相关性评分) |
memory_get_context | 加载上下文的完整内存配置文件 |
memory_update_fact | 确认、拒绝或编辑事实(内容、类别、标签、置信度) |
memory_delete_fact | 永久删除事实 |
memory_merge_document | 将事实合并到叙述性文档中 |
memory_get_document | 检索内存文档 |
memory_list_documents | 列出所有内存文档 |
memory_get_schema | 查看提取类别和提示 |
memory_update_schema | 添加、更新或删除架构类别 |
memory_export | 导出为markdown或JSON格式 |
memory_import | 从JSON导出导入(跳过、覆盖或合并冲突) |
memory_bulk_update | 批量确认待定、删除拒绝或清除类别 |
memory_stats | 仪表板统计信息 |
维护和见解
| 工具 | 它做什么 |
|---|---|
memory_review_stale | 揭露可能需要重新确认的旧事实 |
memory_provider_stats | 提供者归因细分(谁贡献了什么) |
memory_changelog | 查看最近的突变(审计跟踪) |
MCP资源
| 资源URI | 它提供了什么 |
|---|---|
memory://profile | 完整内存配置文件——订阅自动上下文注入 |
memory://category/{name} | 针对目标上下文的每个类别配置文件 |
示例提示
- “不用说我是英格兰东北部的一名顾问”
- “凭记忆,你对我的作品了解多少?”
- “将我的完整内存配置文件导出为markdown”
- “在我的记忆中搜索有关TechFreedom的任何信息”
- “存储这些事实:我使用Next.js,我更喜欢Tailwind,我部署在Vercel上”
- “在这次谈话中,你了解到了关于我的哪些事实?”
- “保存你收集到的关于我的一切”
- “放下关于我的位置的那一个,把剩下的都存起来”
- “向我展示可能过时的陈旧事实”
- “哪些供应商对我的记忆做出了贡献?”
- “显示最近更新的更改日志”
- “批量确认所有未决事实”
- “导入导出的内存备份”
存储
万物皆有生命 ~/.memory-mcp/store.json --您可以检查、备份、通过git同步或共享单个JSON文件。没有数据库,没有本机依赖关系,没有编译步骤。
启用加密时(MEMORY_MCP_PASSPHRASE),存储文件使用AES-256-GCM加密。更改日志单独存储在 ~/.memory-mcp/changelog.json.
数据模型
事实 是关于用户的原子语句:
{
"id": "uuid",
"content": "Runs a consultancy called The Good Ship",
"category": "work",
"confidence": 0.9,
"source_provider": "claude",
"status": "confirmed",
"tags": ["consulting", "organisation"],
"expires_at": null
}文件 是将事实综合成可读文本的叙述性档案——每个类别一个,有版本,有不同的可追踪历史。
模式 定义了12个内置类别(以及您添加的任何自定义类别),并使用提取提示来指导LLM查找什么。
更新日志 使用时间戳和元数据记录每个突变(添加、更新、删除、导入、批量操作)。
分类
| 类别 | 它涵盖了什么 |
|---|---|
| 工作 | 角色、雇主、项目、技能、工作模式 |
| 个人 | 姓名、地点、家庭、关系 |
| 技术 | 语言、工具、框架、架构偏好 |
| 偏好 | 喜欢、不喜欢、沟通方式 |
| 目标 | 当前目标、愿望 |
| 健康 | 状况、运动、饮食、幸福 |
| 价值观 | 信仰、原则、原因 |
| 社交 | 朋友、社区、网络 |
| 财务状况、支出、目标 | |
| 旅行 | 旅行历史、计划旅行 |
| 教育 | 资格、学习兴趣 |
| 背景 | 当前形势,最重要的是什么 |
可以在运行时通过以下方式添加自定义类别 memory_update_schema.
建筑
┌─────────────────────────────────┐
│ Claude Desktop / claude.ai │
│ (or any MCP-compatible client) │
└──────────────┬──────────────────┘
│ MCP (stdio or HTTP)
┌──────────────▼──────────────────┐
│ memory-mcp-server v1.0 │
│ │
│ 23 tools + 2 resources for │
│ storing, searching, merging, │
│ importing, and exporting memory│
├─────────────────────────────────┤
│ MemoryStore (JSON file-based) │
│ AES-256-GCM encryption (opt.) │
│ ~/.memory-mcp/store.json │
├─────────────────────────────────┤
│ ChangeLog (append-only audit) │
│ ~/.memory-mcp/changelog.json │
└─────────────────────────────────┘路线图
- \[x\] 用于可浏览内存配置文件的MCP资源
- \[x\] 从浏览器扩展的IndexedDB导出导入
- \[x\] 静态加密(AES-256-GCM)
- \[x\] 通过MCP工具进行模式定制
- \[x\] 多提供者写入的冲突解决
- \[x\] 具有标记相似性的重复检测
- \[x\] 完整的事实编辑(内容、类别、标签)
- \[x\] 自动启动对话的上下文资源
- \[x\] 保留和到期
- \[x\] 评分令牌搜索
- \[x\] 提供者归因
- \[x\] 类别可见性控制
- \[x\] 更改日志审核跟踪
- \[x\] 批量操作
- \[x\] 按类别MCP资源
- \[x\] 写入速率限制
- \[x\] 远程/多客户端场景的HTTP传输
- \[\]可共享内存链接(如My memory v2)
- \[\]带有共享表单集成的Android配套应用程序
发展
npm run dev # watch mode
npm run build # compile TypeScript
npm start # run the server
npm test # run the test suite许可证
麻省理工学院
