MCP DuckDB Knowledge Graph Memory Server
MCP DuckDB 知识图谱内存服务器
官方知识图谱内存服务器的分叉版本。
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 DuckDB 知识图谱内存服务器:
npx -y @smithery/cli install @IzumiSy/mcp-duckdb-memory-server --client claude手动安装
否则,请在claude_desktop_config.json中手动添加@IzumiSy/mcp-duckdb-memory-server ( MEMORY_FILE_PATH是可选的)
{
"mcpServers": {
"graph-memory": {
"command": "npx",
"args": [
"-y",
"@izumisy/mcp-duckdb-memory-server"
],
"env": {
"MEMORY_FILE_PATH": "/path/to/your/memory.data"
}
}
}
}该路径上存储的数据是 DuckDB 数据库文件。
Docker
建造
docker build -t mcp-duckdb-graph-memory .跑步
docker run -dit mcp-duckdb-graph-memoryRelated MCP server: Knowledge Graph Memory Server
用法
使用下面的示例指令
Follow these steps for each interaction:
1. User Identification:
- You should assume that you are interacting with default_user
- If you have not identified default_user, proactively try to do so.
2. Memory Retrieval:
- Always begin your chat by saying only "Remembering..." and search relevant information from your knowledge graph
- Create a search query from user words, and search things from "memory". If nothing matches, try to break down words in the query at first ("A B" to "A" and "B" for example).
- Always refer to your knowledge graph as your "memory"
3. Memory
- While conversing with the user, be attentive to any new information that falls into these categories:
a) Basic Identity (age, gender, location, job title, education level, etc.)
b) Behaviors (interests, habits, etc.)
c) Preferences (communication style, preferred language, etc.)
d) Goals (goals, targets, aspirations, etc.)
e) Relationships (personal and professional relationships up to 3 degrees of separation)
4. Memory Update:
- If any new information was gathered during the interaction, update your memory as follows:
a) Create entities for recurring organizations, people, and significant events
b) Connect them to the current entities using relations
b) Store facts about them as observations动机
该项目通过用 DuckDB 替换其后端来增强原始 MCP 知识图谱内存服务器。
为什么选择 DuckDB?
最初的 MCP 知识图谱内存服务器使用 JSON 文件作为数据存储,并执行内存搜索。虽然这种方法对于小型数据集非常有效,但也带来了一些挑战:
性能:随着数据集的增长,内存搜索性能会下降
可扩展性:处理大量实体和关系时,内存使用量会显著增加
查询灵活性:复杂查询和条件搜索难以实现
数据完整性:确保事务和 CRUD 操作的原子性具有挑战性
选择 DuckDB 来解决以下挑战:
快速查询处理:DuckDB 针对分析查询进行了优化,即使处理大型数据集也能表现良好
SQL 接口:标准 SQL 可用于轻松执行复杂查询
事务支持:支持事务处理以维护数据完整性
索引功能:允许创建索引以提高搜索性能
嵌入式数据库:在应用程序内工作,无需外部数据库服务器
实现细节
本实现采用DuckDB作为后端存储系统,重点关注两个方面:
数据库结构
知识图谱存储在关系数据库结构中如下图所示:
erDiagram
ENTITIES {
string name PK
string entityType
}
OBSERVATIONS {
string entityName FK
string content
}
RELATIONS {
string from_entity FK
string to_entity FK
string relationType
}
ENTITIES ||--o{ OBSERVATIONS : "has"
ENTITIES ||--o{ RELATIONS : "from"
ENTITIES ||--o{ RELATIONS : "to"这种模式设计允许有效地存储和检索知识图谱组件,同时维护实体、观察和关系之间的关系。
模糊搜索实现
该实现将 SQL 查询与 Fuse.js 结合起来,实现灵活的实体搜索:
DuckDB SQL 查询从数据库中检索基础数据
Fuse.js 在检索到的数据上提供模糊匹配功能
这种混合方法允许结构化查询和灵活的文本匹配
搜索结果包括完全匹配和部分匹配,按相关性排序
发展
设置
pnpm install测试
pnpm test执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn improved implementation of persistent memory using a local knowledge graph with a customizable --memory-path. This lets Claude remember information about the user across chats.10346884MIT
- AlicenseBqualityFmaintenanceA persistent memory implementation using a local knowledge graph that lets Claude remember information about users across conversations.96MIT
- Alicense-qualityCmaintenanceA persistent memory system using a local knowledge graph that enables Claude to remember information about users across chats, with advanced search, graph traversal, and filtering capabilities for entities, relations, and observations.MIT
- Alicense-qualityFmaintenanceA persistent memory server for Claude Code that captures session context and tool outputs to inject relevant history into future sessions. It enables long-term recall through semantic search and automatic context management, allowing for more consistent and context-aware coding interactions.10253ISC
Related MCP Connectors
Persistent memory and knowledge graph for AI assistants — keyword + vector + graph search.
One memory, every AI: Claude, ChatGPT, Perplexity, Gemini, Cursor, OpenClaw, Hermes, any MCP client.
Hosted memory for AI agents that learns and forgets — one key across Claude, Cursor & ChatGPT.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/IzumiSy/mcp-duckdb-memory-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server