article
README
🚀 基于Qdrant持久化的MCP内存服务器
此MCP服务器借助Qdrant向量数据库,实现了基于知识图谱的语义搜索功能,为用户提供强大且高效的搜索体验。
🚀 快速开始
此MCP服务器提供了一个基于知识图谱的语义搜索功能实现,使用Qdrant向量数据库作为支撑。你可参考后续的安装配置步骤,快速搭建并使用该服务。
✨ 主要特性
- 🌟 基于图的知识表示,支持实体及其关系,能更全面地存储和呈现知识。
- 💾 文件持久化(memory.json),确保数据的稳定性和可恢复性。
- 🔍 使用Qdrant向量数据库的语义搜索,实现高效的内容检索。
- 🧠 OpenAI嵌入式模型进行语义相似度计算,提升搜索的准确性。
- 🔒 支持HTTPS协议及反向代理兼容性,保障数据传输安全。
- 🐳 Docker环境下的轻松部署支持,简化部署流程。
📦 安装指南
本地安装
- 安装依赖:
npm install
- 构建服务端:
npm run build
Docker部署
- 构建Docker镜像:
docker build -t mcp-qdrant-memory .
- 使用环境变量运行容器:
docker run -d \
-e OPENAI_API_KEY=your-openai-api-key \
-e QDRANT_URL=https://your-qdrant-server \
-e QDRANT_API_KEY=your-qdrant-api-key \
-e QDRANT_COLLECTION_NAME=your-collection-name \
--name mcp-memory-server \
mcp-qdrant-memory
💻 使用示例
工具接口
- createEntity(entityData: object): Promise
创建并存储实体数据。 - getEntities(query?: string): Promise<Entity[]>
根据可选查询参数获取实体列表,默认返回所有实体。 - updateEntity(entityId, entityData: object): Promise
更新指定实体的属性数据。 - deleteEntity(entityId: string): Promise
删除特定实体及其相关关系。
基础用法
// 创建两个实体
await createEntity({ id: "1", name: "Alice", age: 30 });
await createEntity({ id: "2", name: "Bob", age: 25 });
// 查询所有实体
const entities = await getEntities();
console.log("所有实体:", entities);
// 更新某个实体
await updateEntity("1", { age: 31 });
const alice = await getEntity("1");
console.log("Alice 更新后年龄:", alice.age); // 输出: 31
// 删除一个实体
await deleteEntity("2");
const remainingEntities = await getEntities();
console.log("剩余实体:", remainingEntities); // 输出: [ { id: "1", name: "Alice", age: 31 } ]
📚 详细文档
环境变量配置
以下为必需的环境变量:
# OpenAI API密钥用于生成嵌入
OPENAI_API_KEY=your-openai-api-key
# Qdrant服务器URL(支持HTTP和HTTPS)
QDRANT_URL=https://your-qdrant-server
# Qdrant API密钥(若启用了身份验证)
QDRANT_API_KEY=your-qdrant-api-key
# 使用的Qdrant集合名称
QDRANT_COLLECTION_NAME=your-collection-name
教育与文档
如需深入理解该系统的内部机制或进行二次开发,建议参考以下资源:
- 官方文档
MCP内存服务器文档 - 技术博客系列
- 知识图谱构建的最佳实践
- Qdrant在语义搜索中的应用
- 高可用性架构设计
- 在线教程
如何使用MCP内存服务器搭建知识检索系统
贡献指南
欢迎社区贡献,参与改进此项目:
- 代码仓库地址
git clone https://github.com/yourusername/mcp-memory-server.git - 问题反馈与建议 请在GitHub Issues区提交您遇到的问题或提出功能建议。
🔧 技术细节
- 数据持久化:所有实体及其关系均存储于
memory.json文件中,确保服务重启后数据不丢失。 - 搜索机制:使用Qdrant向量数据库实现高效的语义搜索功能,支持文本相似度匹配和内容检索。
- 错误处理:集成完善的事物回滚机制,在网络波动或服务异常时保证数据一致性。
📄 许可证
本项目遵循MIT开源协议,允许自由使用、修改和分发。
⚠️ 重要提示
在使用该服务前,请确保正确配置环境变量,特别是OpenAI和Qdrant的API密钥,以保证服务的正常运行。
💡 使用建议
在进行开发和部署时,建议参考官方文档和技术博客系列,以更好地理解系统的内部机制和最佳实践。同时,及时在GitHub Issues区反馈问题和提出建议,有助于项目的持续改进。
扫码联系在线客服