语义记忆服务器

MCP语义记忆服务器为Claude和MCP兼容客户端提供持久化记忆和语义搜索功能,支持本地存储和智能检索。

  • by GFYURI
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 GFYURI/mcp-semantic-memory

使用说明

🧠 MCP语义记忆服务器

具有语义搜索功能的持久内存,适用于Claude和MCP兼容客户端

给你的AI助手 持久存储器 这在谈话之间幸存下来。保存一次上下文,永远智能地检索它。

✨ 特性

  • 🔍 语义搜索 -通过意义而不仅仅是关键字来寻找记忆
  • 💾 SQLite存储 -快速、可靠、可扩展
  • 👤 用户简介 -结构化配置文件(姓名、职业、技术栈等)
  • 🏠 100%本地 -没有外部API,所有处理都在您的机器上
  • ⚡ 快速 -支持全MiniLM-L6-v2嵌入(约50ms搜索)
  • 🔒 私人 -您的数据永远不会离开您的计算机

🎯 问题与解决方案

问题: 克劳德在谈话之间什么都忘了。你不断地重新解释你的背景、项目、偏好和技术栈。

解决方案: 该MCP服务器为Claude提供了具有智能语义搜索的持久内存。保存信息一次,克劳德会在相关时自动检索。

示例

// Save once
save_memory("project-info", "Working on an e-commerce site with Next.js and Stripe")

// Days later, in a new conversation
User: "How do I add payments to my project?"
Claude: *searches memory* "Since you're using Stripe in your e-commerce project..."

🚀 快速开始

安装

# Clone the repository
git clone https://github.com/GFYURI/mcp-semantic-memory.git
cd mcp-semantic-memory

# Install dependencies (pnpm recommended)
pnpm install
# or: npm install

配置

添加到您的MCP客户端配置中(例如,Claude Desktop):

窗户: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "semantic-memory": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-semantic-memory/index.js"]
    }
  }
}

示例(Windows):

{
  "mcpServers": {
    "semantic-memory": {
      "command": "node",
      "args": ["C:\\Users\\YourName\\mcp-semantic-memory\\index.js"]
    }
  }
}

首次运行

  1. 重新启动MCP客户端(例如,Claude Desktop)
  2. 服务器将在首次使用时下载嵌入模型(~25MB)
  3. 开始保存记忆!

📚 可用工具

内存管理

save_memory(id, text, metadata?)

通过语义嵌入保存内存。

save_memory({
  id: "my-cat",
  text: "My cat's name is Mia, she's orange and very playful",
  metadata: { category: "personal", type: "pet" }
})

search_memory(query, n_results?, threshold?)

通过语义相似性搜索记忆。

search_memory({
  query: "what's my pet's name?",
  n_results: 5,      // optional, default: 5
  threshold: 0.3     // optional, default: 0.3 (0-1 scale)
})

get_memory(id)

按ID检索特定内存。

delete_memory(id)

永久删除内存。

list_all_memories()

列出所有存储的内存(按上次更新排序)。

用户简介

get_user_bio()

获取用户的完整个人资料。

set_user_bio(data)

创建或更新用户简介。所有字段都是可选的。

set_user_bio({
  nombre: "Angel",
  ocupacion: "Student",
  ubicacion: "Santiago, Chile",
  tecnologias: ["Python", "JavaScript", "Node.js"],
  herramientas: ["VS Code", "Docker", "pnpm"],
  idiomas: ["Spanish", "English"],
  timezone: "America/Santiago",
  mascotas: ["Mia (cat)"]
})

update_user_bio(field, value)

更新传记中的单个字段。

update_user_bio({
  field: "tecnologias",
  value: ["Python", "JavaScript", "TypeScript"]
})

🎨 用例

面向开发者

  • 记住你的技术栈和项目背景
  • 常见问题的存储解决方案
  • 跟踪配置和偏好

对于学生

  • 保存学习笔记和学习进度
  • 记住作业截止日期和要求
  • 跟踪研究主题和来源

给每个人

  • 个人喜好和兴趣
  • 重要日期和事件
  • 跨会话的对话上下文

🔧 运作原理

语义搜索

传统关键字搜索:

Query: "what's my pet's name?"
Memory: "My cat Mia is orange"
Result: ❌ No matches (different words)

语义搜索:

Query: "what's my pet's name?"
Memory: "My cat Mia is orange"
Result: ✅ 78% similarity (understands meaning)

技术细节

  • 嵌入: 全迷你LM-L6-v2(384尺寸)
  • 储存: 具有优化索引的SQLite
  • 搜索: 向量间的余弦相似度
  • 演出 每次保存约50-100ms,在100个内存中搜索约200ms

📊 数据库模式

-- Memories table
CREATE TABLE memories (
  id TEXT PRIMARY KEY,
  text TEXT NOT NULL,
  embedding TEXT NOT NULL,  -- JSON array of 384 floats
  metadata TEXT,            -- JSON object
  created_at TEXT NOT NULL,
  updated_at TEXT NOT NULL
);

-- User biography table
CREATE TABLE user_bio (
  id INTEGER PRIMARY KEY CHECK (id = 1),
  nombre TEXT,
  ocupacion TEXT,
  ubicacion TEXT,
  tecnologias TEXT,  -- JSON array
  herramientas TEXT, -- JSON array
  idiomas TEXT,      -- JSON array
  timezone TEXT,
  mascotas TEXT,     -- JSON array
  created_at TEXT NOT NULL,
  updated_at TEXT NOT NULL
);

🆚 与备选方案的比较

功能 此MCP @modelcontextprotocol/服务器内存
语义搜索 ✅ ❌
用户简介 ✅ ❌
存储 SQLite 内存中
坚持 ✅ 磁盘 ❌ 仅RAM
可扩展性 1000个内存 有限
搜索速度 快速(索引) 不适用

🛠️ 发展

# Install dependencies
pnpm install

# Run locally
node index.js

# Test with MCP inspector
npx @modelcontextprotocol/inspector node index.js

📝 需求

  • Node.js>=18.0.0
  • ~100MB磁盘空间(型号+依赖关系)
  • MCP兼容客户端(Claude Desktop、LM Studio等)

🐛 故障排除

第一轮需要30-60秒

正在下载嵌入模型(~25MB)。后续运行是即时的。

sharp 在Windows上安装失败

pnpm rebuild sharp
# or
pnpm install --force

数据库已锁定

关闭其他连接 memory.db 或重新启动MCP客户端。

内存未加载

检查MCP配置中的绝对路径是否正确。

🤝 贡献

欢迎投稿!请随意:

  • 报告错误
  • 建议功能
  • 提交拉取请求
  • 改进文档

📄 许可证

MIT许可证-您可以在自己的项目中自由使用!

🙏 致谢

⭐ 明星历史

如果你觉得这很有用,可以考虑给它一颗星!它帮助其他人发现项目。


由以下材料制成❤️ 对于MCP社区

报告错误 · 请求功能