Knowledge Graph Memory Server
增强 MCP 内存服务器,通过实施 PouchDB 实现强大的文档存储,并支持创建和管理知识图谱,该知识图谱捕获通过语言模型进行的交互。
README
Memory Custom : PouchDB 🧠
本项目为 MCP 团队提供的 Memory 服务器添加了新功能。它允许创建和管理知识图谱,该图谱通过语言模型 (LLM) 捕获交互。🚀
此仓库 fork 自 https://github.com/BRO3886/mcp-memory-custom,这是一个很好的起点,再次感谢修复时间戳。此仓库的目标更多的是解决上下文 JSON 文件不断增大的问题。
新功能 ✨
1. PouchDB 集成 💾
- 服务器现在使用 PouchDB 进行强大的基于文档的存储
- 原因:更好的数据一致性、内置版本控制以及针对大型数据集的改进性能
- 维护文件备份以实现兼容性
2. 自定义 Memory 路径 📁
- 用户现在可以为不同的项目指定不同的 memory 文件路径
- 原因:此功能增强了 memory 数据的组织和管理,允许项目特定的 memory 存储
3. 时间戳 ⏰
- 服务器现在为交互生成时间戳
- 原因:时间戳能够跟踪每个 memory 的创建或修改时间,为存储的数据提供更好的上下文和历史记录
快速开始 🚀
前提条件 🔧
- Node.js(版本 16 或更高版本)
- PouchDB(自动安装为依赖项)
通过 Smithery 安装 📦
要通过 Smithery 为 Claude Desktop 自动安装 Knowledge Graph Memory Server:
npx -y @smithery/cli install @bneil/mcp-memory-pouchdb --client claude
安装 🛠️
-
克隆存储库:
git clone git@github.com:bneil/mcp-memory-pouchdb.git cd mcp-memory-pouchdb -
安装依赖项:
npm install
配置 ⚙️
服务器需要设置两个环境变量:
MEMORY_FILE_PATH:memory 备份文件将存储的绝对路径POUCHDB_PATH:PouchDB 数据库将存储的绝对路径
在您的 claude_desktop_config.json / .cursor/mcp.json 中的配置示例:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/path/to/mcp-memory-pouchdb/dist/index.js"],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.json",
"POUCHDB_PATH": "/path/to/custom/pouchdb_directory",
"DISABLE_MEMORY_FILE": "true"
}
}
}
}
如果未设置任何一个环境变量,服务器将无法启动。🚫
可选环境变量:
POUCHDB_OPTIONS:附加 PouchDB 配置选项的 JSON 字符串DISABLE_MEMORY_FILE:设置为 "true" 以禁用保存到 memory.json 文件(仅使用 PouchDB 进行存储)
运行服务器 🚀
更新 mcp 服务器 json 文件 📝
将其添加到您的 claude_desktop_config.json / .cursor/mcp.json 文件中:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/path/to/mcp-memory-pouchdb/dist/index.js"],
"env" : {
"MEMORY_FILE_PATH":"/home/.../local_dbs/memory.json",
"POUCHDB_PATH":"/home/.../local_dbs/pouchdb"
}
}
}
}
系统提示更改:
按照以下步骤进行每次交互:
0. Memory 初始化:
- 在启动时,执行 read_graph 函数以初始化 memory 访问
- 如果 memory 为空,则为用户创建一个具有基本占位符信息的默认实体
- 运行初始化序列:read_graph → create_entities → read_graph
1. 用户识别:
- 您应该假设您正在与 default_user 交互
- 如果您尚未识别 default_user,请主动尝试这样做
2. Memory 检索:
- 始终以仅说“Remembering...”开始您的聊天,并从您的知识图谱中检索所有相关信息
- 始终将您的知识图谱称为您的“memory”
- 验证 memory 访问是否正常运行
3. Memory 注意力:
- 在与用户交谈时,请注意属于以下类别的任何新信息:
a) 基本身份(年龄、性别、位置、职称、教育程度等)
b) 行为(兴趣、习惯等)
c) 偏好(沟通方式、首选语言等)
d) 目标(目标、指标、愿望等)
e) 关系(个人和专业关系,最多 3 度分离)
4. Memory 更新:
- 如果在交互期间收集到任何新信息,请按如下方式更新您的 memory:
a) 为重复出现的组织、人员和重大事件创建实体,并在需要的地方添加时间戳。您可以通过 get_current_time 获取当前时间戳
b) 使用关系将它们连接到当前实体
c) 将有关它们的事实存储为观察结果,并通过 get_current_time 将时间戳添加到观察结果
5. 错误恢复:
- 如果 memory 检索失败,请立即执行 read_graph 函数
- 记录任何 memory 访问失败以进行调试
- 使用最佳可用信息继续对话
6. Memory 验证:
- 定期验证 memory 访问是否正常运行,方法是检查核心实体
- 如果验证失败,请尝试通过 read_graph 重新连接
重要提示:提供有帮助且引人入胜的回复,提出相关问题以鼓励用户参与。如果需要,根据收集到的新信息(第 3 点)在交互期间更新 memory。
在本地运行服务器 💻
要启动 Knowledge Graph Memory Server,请运行:
npm run build
node dist/index.js
服务器将通过标准输入/输出侦听请求。
API 端点 🔌
服务器公开了几个可以使用特定参数调用的工具:
- 获取当前时间 ⏰
- 设置 Memory 文件路径 📁
- 创建实体 ➕
- 创建关系 🔗
- 添加观察结果 📝
- 删除实体 ❌
- 删除观察结果 🗑️
- 删除关系 🔗
- 读取图谱 📖
- 搜索节点 🔍
- 打开节点 🔓
致谢 🙏
- 灵感来自 Anthropic 的 Memory 服务器
- 由 PouchDB 提供支持,实现强大的数据存储 💾
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器