与SQLite集成,提供持久化的知识图谱,以实现跨对话的高效内存管理和关系建模。
概述
优化内存的MCP服务器
该项目用于测试和展示Claude AI的编程能力,以及良好的AI工作流程和提示设计。
这是Python版Memory MCP Server的分支项目(官方版本为Java实现),采用SQLite作为后端数据库。
知识图谱记忆服务器
基于本地知识图谱实现持久化记忆的基础架构,使Claude能够跨对话记住用户信息。
核心概念
实体
实体是知识图谱中的主要节点,每个实体包含:
- 唯一名称(标识符)
- 实体类型(如"person"/"organization"/"event")
- 观察项列表
示例:
json
{
"name": "John_Smith",
"entityType": "person",
"observations": ["能说流利的西班牙语"]
}
关系
关系定义实体间的有向连接,始终以主动语态存储,描述实体间的交互方式。
示例:
json
{
"from": "John_Smith",
"to": "Anthropic",
"relationType": "works_at"
}
观察项
观察项是关于实体的离散信息单元,具有以下特征:
- 以字符串形式存储
- 关联到特定实体
- 可独立添加或删除
- 应保持原子性(每条观察项一个事实)
示例:
json
{
"entityName": "John_Smith",
"observations": [
"能说流利的西班牙语",
"2019年毕业",
"偏好早晨会议"
]
}
API接口
工具集
-
create_entities
- 在知识图谱中批量创建新实体
- 输入:
entities
(对象数组)- 每个对象包含:
name
(字符串):实体标识符entityType
(字符串):类型分类observations
(字符串数组):关联观察项
- 每个对象包含:
- 自动忽略已存在的实体名
-
create_relations
- 批量创建实体间关系
- 输入:
relations
(对象数组)- 每个对象包含:
from
(字符串):源实体名称to
(字符串):目标实体名称relationType
(字符串):主动语态关系类型
- 每个对象包含:
- 自动跳过重复关系
-
add_observations
- 为现有实体添加观察项
- 输入:
observations
(对象数组)- 每个对象包含:
entityName
(字符串):目标实体contents
(字符串数组):新增观察项
- 每个对象包含:
- 返回各实体新增的观察项
- 实体不存在时操作失败
-
delete_entities
- 删除实体及其关联关系
- 输入:
entityNames
(字符串数组) - 级联删除关联关系
- 实体不存在时静默处理
-
delete_observations
- 删除实体特定观察项
- 输入:
deletions
(对象数组)- 每个对象包含:
entityName
(字符串):目标实体observations
(字符串数组):待删除观察项
- 每个对象包含:
- 观察项不存在时静默处理
-
delete_relations
- 删除特定关系
- 输入:
relations
(对象数组)- 每个对象包含:
from
(字符串):源实体名称to
(字符串):目标实体名称relationType
(字符串):关系类型
- 每个对象包含:
- 关系不存在时静默处理
-
read_graph
- 读取完整知识图谱
- 无需输入
- 返回包含所有实体和关系的完整图谱结构
-
search_nodes
- 基于查询检索节点
- 输入:
query
(字符串) - 搜索范围包括:
- 实体名称
- 实体类型
- 观察项内容
- 返回匹配的实体及其关系
-
open_nodes
- 按名称检索特定节点
- 输入:
names
(字符串数组) - 返回:
- 请求的实体
- 请求实体间的关系
- 自动跳过不存在的节点
Claude桌面版集成指南
环境配置
在claude_desktop_config.json中添加以下配置:
Docker方案
json
{
"mcpServers": {
"memory": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp/memory"]
}
}
}
NPX方案
json
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}
系统提示词
记忆功能的提示词需根据使用场景调整,修改提示词可影响模型创建记忆的频率和类型。
以下是聊天个性化场景的示例提示词,可在Claude.ai项目的"Custom Instructions"字段中使用:
每次交互遵循以下步骤:
1. 用户识别:
- 默认与default_user交互
- 若未识别default_user,应主动尝试确认
2. 记忆检索:
- 对话开始时固定显示"Remembering..."并检索知识图谱中的相关信息
- 始终将知识图谱称为你的"memory"
3. 记忆规则:
- 对话过程中注意收集以下类别的新信息:
a) 基础身份(年龄、性别、所在地、职位、教育程度等)
b) 行为特征(兴趣爱好、习惯等)
c) 个人偏好(沟通风格、语言偏好等)
d) 目标规划(目标、志向等)
e) 社交关系(三层以内的个人及职业关系)
4. 记忆更新:
- 若交互中获得新信息,按以下规则更新:
a) 为重复出现的组织、人物和重要事件创建实体
b) 用关系连接当前实体
c) 将相关事实存储为观察项
构建指南
Docker构建:
sh
docker build -t mcp/memory -f src/memory/Dockerfile .
许可协议
本MCP服务器采用MIT许可证授权,允许自由使用、修改和分发软件,需遵守MIT许可证的条款。详见项目仓库中的LICENSE文件。

1panel
mcp-1panel 是为 1Panel 实现的 Model Context Protocol (MCP) 服务器。
Aact mcp
与AACT临床试验数据库集成,支持查询和分析大规模试验数据,适用于研究和医疗应用。
Abap Adt
一个服务器,它将模型上下文协议(MCP)与SAP ABAP系统连接起来,使像Cline这样的工具能够检索ABAP源代码、表结构和其他开发工件。
Adwords Mcp
一个令人尴尬的MCP服务器,向Cursor、Claude和其他客户端的开发者提供广告