返回市场
MCP内存SQLite服务器

MCP内存SQLite服务器

作者:spences1010 星标更新:2025-11-24

项目介绍

mcp-memory-sqlite

一个用于AI助手的个人知识图谱和记忆系统,使用优化了文本搜索的SQLite。非常适合给Claude(或其他兼容MCP的AI)提供跨对话的持久记忆!

为什么使用这个?

给你的AI助手添加记忆!此工具让Claude(或其他AI助手)能够记住实体、概念及其关系。适用于:

  • 📚 个人知识管理 - 构建自己的知识图谱
  • 🤖 AI助手记忆 - 帮助Claude记住关于你的项目、偏好和上下文的重要信息
  • 🔗 关系追踪 - 连接想法、人物、项目和概念
  • 🔍 智能文本搜索 - 使用灵活的相关性排名文本搜索查找信息

特性

  • 100%本地及私密:所有数据都存储在你的机器上
  • 简单设置:开箱即用,与Claude Desktop兼容
  • 灵活文本搜索:不区分大小写的模糊匹配搜索,处理不同的命名约定
  • 相关性排名:结果按名称匹配 > 类型匹配 > 观察匹配优先排序
  • 智能去重:自动防止重复关系
  • 上下文优化:专门设计以提高LLM上下文效率,无不必要的数据膨胀
  • 简单API:创建、搜索和管理知识图谱的直观工具

快速开始

对于Claude Desktop用户(推荐):

在你的Claude Desktop配置中添加以下内容:

{
	"mcpServers": {
		"memory": {
			"command": "npx",
			"args": ["-y", "mcp-memory-sqlite"]
		}
	}
}

就这样!Claude现在可以在对话之间记住事情了。

安装

如果你想在自己的项目中使用它:

npm install mcp-memory-sqlite
# 或
pnpm add mcp-memory-sqlite

配置

可选:通过环境变量自定义数据库位置:

  • SQLITE_DB_PATH:存储数据的位置(默认:./sqlite-memory.db

MCP工具

create_entities

创建或更新带有观察值的实体。

参数:

  • entities:实体对象数组
    • name(字符串):唯一的实体标识符
    • entityType(字符串):实体的类型/类别
    • observations(字符串数组):观察值字符串数组

示例:

{
	"entities": [
		{
			"name": "Claude",
			"entityType": "AI Assistant",
			"observations": [
				"由Anthropic创建",
				"专注于帮助、无害和诚实"
			]
		}
	]
}

search_nodes

使用文本搜索和相关性排名搜索实体及其关系。

参数:

  • query(字符串):要搜索的文本
  • limit(数字,可选):返回的最大结果数(默认:10,最大:50)

示例:

{
	"query": "AI Assistant",
	"limit": 5
}

文本搜索特性:

  • 不区分大小写:搜索忽略大小写差异
  • 灵活匹配:自动处理间距、下划线和连字符的变化
    • "JavaScript框架"将匹配"javascript_framework"
    • "web-development"将匹配"web_development"或"web development"
  • 跨搜索:实体名称、实体类型和所有观察值
  • 相关性排名:结果按匹配发生的位置优先排序(名称 > 类型 > 观察)

read_graph

获取最近的实体及其关系(默认返回最后10个实体)。

参数:

create_relations

创建实体之间的关系。重复的关系(相同的源、目标和类型)将被自动忽略。

参数:

  • relations:关系对象数组
    • source(字符串):源实体名称
    • target(字符串):目标实体名称
    • type(字符串):关系类型

示例:

{
	"relations": [
		{
			"source": "Claude",
			"target": "Anthropic",
			"type": "created_by"
		}
	]
}

注意:如果你尝试多次创建相同的关系,只有第一次会被存储。这可以防止知识图谱中的重复关系。

delete_entity

删除实体及其关联的所有数据(观察值和关系)。

参数:

  • name(字符串):要删除的实体名称

delete_relation

删除实体之间的特定关系。

参数:

  • source(字符串):源实体名称
  • target(字符串):目标实体名称
  • type(字符串):关系类型

get_entity_with_relations

获取实体及其所有关系和直接连接的实体。非常适合探索围绕特定概念的知识图谱。

参数:

  • name(字符串):要检索的实体名称

返回:

  • entity:请求的实体
  • relations:此实体作为源或目标的所有关系
  • relatedEntities:与此实体相连的所有实体

示例:

{
	"name": "Claude"
}

与Claude Desktop一起使用

添加到你的Claude Desktop配置中:

最小配置(使用默认./sqlite-memory.db):

{
	"mcpServers": {
		"memory": {
			"command": "npx",
			"args": ["-y", "mcp-memory-sqlite"]
		}
	}
}

带自定义数据库路径:

{
	"mcpServers": {
		"memory": {
			"command": "npx",
			"args": ["-y", "mcp-memory-sqlite"],
			"env": {
				"SQLITE_DB_PATH": "/path/to/your/memory.db"
			}
		}
	}
}

数据库模式

该工具使用纯SQLite进行快速可靠的存储:

表格

  • entities:存储实体元数据(名称、类型、创建时间)
  • observations:存储与实体相关的观察值
  • relations:存储实体之间的关系(具有唯一约束以防止重复)

所有查询都使用优化的SQLite索引进行快速文本搜索和关系遍历。

开发

# 安装依赖
pnpm install

# 构建
pnpm run build

# 在开发模式下运行
pnpm run dev

# 运行测试
pnpm test

工作原理

底层使用:

  • SQLite 进行快速可靠的本地存储
  • better-sqlite3 进行Node.js集成
  • 优化的文本搜索 具有相关性排名和模糊匹配

你的数据存储在一个.db文件中 - 没有云,没有外部服务,完全私密。

许可证

MIT

致谢

使用以下构建: