rag存储器mcp
](https://www.npmjs.com/package/rag-memory-mcp) ](https://www.npmjs.com/package/rag-memory-mcp) ](https://github.com/ttommyth/rag-memory-mcp/blob/main/LICENSE)  ](https://github.com/ttommyth/rag-memory-mcp/commits/main)
高级MCP服务器 RAG启用内存 通过知识图谱 矢量搜索 能力。该服务器通过语义搜索、文档处理和混合检索扩展了基本的内存概念,以实现更智能的内存管理。
灵感来源: 知识图谱存储服务器 来自模型上下文协议项目。
注: 此服务器设计为与MCP客户端(例如,Claude Desktop、VS Code)一起在本地运行,并需要本地文件系统访问数据库存储。
✨ 主要特点
- 🧠 知识图谱记忆:持久的实体、关系和观察
- 🔍 矢量搜索:使用句子变换器进行语义相似性搜索
- 📄 文档处理:RAG支持文档分块和嵌入
- 🔗 混合搜索:将向量相似性与图遍历相结合
- ⚡ SQLite后端:使用sqlite-vec进行矢量操作的快速本地存储
- 🎯 实体提取:从文档中自动提取术语
工具
该服务器通过模型上下文协议(MCP)提供全面的内存管理:
📚 文档管理
storeDocument:存储包含元数据的文档以供处理chunkDocument:使用可配置参数创建文本块embedChunks:生成用于语义搜索的向量嵌入extractTerms:从文档中提取潜在实体术语linkEntitiesToDocument:创建明确的实体文档关联deleteDocuments:删除文档和相关数据listDocuments:查看包含元数据的所有存储文档
🧠 知识图谱
createEntities:创建具有观察和类型的新实体createRelations:建立实体之间的关系addObservations:向现有实体添加上下文信息deleteEntities:删除实体及其关系deleteRelations:删除特定关系deleteObservations:从实体中删除具体意见
🔍 搜索与检索
hybridSearch:结合向量相似性和图遍历的高级搜索searchNodes:按名称、类型或观察内容查找实体openNodes:检索特定实体及其关系readGraph:获得完整的知识图谱结构
📊 分析
getKnowledgeGraphStats:关于知识库的综合统计
使用场景
此服务器非常适合需要智能内存和文档理解的场景:
- 研究和文件:存储、处理和智能检索研究论文
- 知识库建设:从文档中构建相互关联的知识
- 会话记忆:通过语义理解记住聊天会话中的上下文
- 内容分析:从大型文档集合中提取并关联概念
- 智能辅助:根据存储的知识提供情境感知的响应
客户端配置
本节解释如何配置MCP客户端以使用 rag-memory-mcp 服务器。
使用Claude桌面/光标
将以下配置添加到您的 claude_desktop_config.json (克劳德桌面)或 mcp.json (光标):
{
"mcpServers": {
"rag-memory": {
"command": "npx",
"args": ["-y", "rag-memory-mcp"]
}
}
}具体版本:
{
"mcpServers": {
"rag-memory": {
"command": "npx",
"args": ["-y", "rag-memory-mcp@1.0.0"]
}
}
}使用自定义数据库路径:
{
"mcpServers": {
"rag-memory": {
"command": "npx",
"args": ["-y", "rag-memory-mcp"],
"env": {
"MEMORY_DB_PATH": "/path/to/custom/memory.db"
}
}
}
}使用VS代码
将以下配置添加到您的用户设置(JSON)文件中,或 .vscode/mcp.json:
{
"mcp": {
"servers": {
"rag-memory-mcp": {
"command": "npx",
"args": ["-y", "rag-memory-mcp"]
}
}
}
}核心概念
实体
实体是知识图中的主要节点。每个实体都有:
- 唯一名称(标识符)
- 实体类型(例如,“PERSON”、“CONCEPT”、“TECHNOLOGY”)
- 观察结果列表(上下文信息)
例子:
{
"name": "Machine Learning",
"entityType": "CONCEPT",
"observations": [
"Subset of artificial intelligence",
"Focuses on learning from data",
"Used in recommendation systems"
]
}关系
关系定义了实体之间的有向连接,描述了它们如何交互:
例子:
{
"from": "React",
"to": "JavaScript",
"relationType": "BUILT_WITH"
}观察
观察是关于实体的离散信息:
- 以字符串形式存储
- 附属于特定实体
- 可以独立添加或删除
- 应该是原子性的(每次观察一个事实)
文档和矢量搜索
文件通过以下方式处理:
- 存储:带有元数据的原始文本
- 组块:拆分成可管理的部分
- 嵌入:转换为矢量表示
- 链接:与相关实体建立联系
这使得 混合搜索 它结合了:
- 向量相似度(语义匹配)
- 图遍历(概念关系)
环境变量
MEMORY_DB_PATH:SQLite数据库文件的路径(默认值:memory.db在服务器目录中)
开发设置
本节面向希望修改或贡献服务器的开发人员。
先决条件
- Node.js:检查
package.json为了版本兼容性 - npm:用于包管理
安装(开发人员)
- 克隆存储库:
git clone https://github.com/ttommyth/rag-memory-mcp.git
cd rag-memory-mcp- 安装依赖项:
npm install建筑
npm run build运行(开发)
npm run watch # For development with auto-rebuild开发命令
- 构建:
npm run build - 手表:
npm run watch - 准备:
npm run prepare
用法示例
以下是构建和查询知识库的典型工作流程:
// 1. Store a document
await storeDocument({
id: "ml_intro",
content: "Machine learning is a subset of AI...",
metadata: { type: "educational", topic: "ML" }
});
// 2. Process the document
await chunkDocument({ documentId: "ml_intro" });
await embedChunks({ documentId: "ml_intro" });
// 3. Extract and create entities
const terms = await extractTerms({ documentId: "ml_intro" });
await createEntities({
entities: [
{
name: "Machine Learning",
entityType: "CONCEPT",
observations: ["Subset of artificial intelligence", "Learns from data"]
}
]
});
// 4. Search with hybrid approach
const results = await hybridSearch({
query: "artificial intelligence applications",
limit: 10,
useGraph: true
});系统提示建议
为了获得最佳的内存利用率,请考虑使用以下系统提示:
You have access to a RAG-enabled memory system with knowledge graph capabilities. Follow these guidelines:
1. **Information Storage**:
- Store important documents using the document management tools
- Create entities for people, concepts, organizations, and technologies
- Build relationships between related concepts
2. **Information Retrieval**:
- Use hybrid search for comprehensive information retrieval
- Leverage both semantic similarity and graph relationships
- Search entities before creating duplicates
3. **Memory Maintenance**:
- Add observations to enrich entity context
- Link documents to relevant entities for better discoverability
- Use statistics to monitor knowledge base growth
4. **Processing Workflow**:
- Store → Chunk → Embed → Extract → Link
- Always process documents completely for best search results贡献
欢迎投稿!请遵循标准开发实践,并确保在提交pull请求之前通过所有测试。
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
内置于:TypeScript、SQLite、SQLite-vec、拥抱人脸变换器、模型上下文协议SDK
