MCP Memory Server with Qdrant Persistence

MCP Memory Server with Qdrant Persistence

利用 Qdrant 通过语义搜索促进知识图谱表示,支持 OpenAI 嵌入以实现语义相似性,并支持强大的 HTTPS 集成以及基于文件的图谱持久化。

AI记忆系统
数据库交互
AI集成系统
访问服务器

README

基于 Qdrant 持久化的 MCP 内存服务器

smithery badge

此 MCP 服务器提供了一个知识图谱实现,该实现具有由 Qdrant 向量数据库驱动的语义搜索功能。

特性

  • 基于图的知识表示,包含实体和关系
  • 基于文件的持久化 (memory.json)
  • 使用 Qdrant 向量数据库进行语义搜索
  • 使用 OpenAI 嵌入进行语义相似度计算
  • 支持 HTTPS,兼容反向代理
  • 支持 Docker,易于部署

环境变量

以下环境变量是必需的:

# 用于生成嵌入的 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

设置

本地设置

  1. 安装依赖项:
npm install
  1. 构建服务器:
npm run build

Docker 设置

  1. 构建 Docker 镜像:
docker build -t mcp-qdrant-memory .
  1. 使用所需的环境变量运行 Docker 容器:
docker run -d \
  -e OPENAI_API_KEY=your-openai-api-key \
  -e QDRANT_URL=http://your-qdrant-server:6333 \
  -e QDRANT_COLLECTION_NAME=your-collection-name \
  -e QDRANT_API_KEY=your-qdrant-api-key \
  --name mcp-qdrant-memory \
  mcp-qdrant-memory

添加到 MCP 设置:

{
  "mcpServers": {
    "memory": {
      "command": "/bin/zsh",
      "args": ["-c", "cd /path/to/server && node dist/index.js"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
        "QDRANT_API_KEY": "your-qdrant-api-key",
        "QDRANT_URL": "http://your-qdrant-server:6333",
        "QDRANT_COLLECTION_NAME": "your-collection-name"
      },
      "alwaysAllow": [
        "create_entities",
        "create_relations",
        "add_observations",
        "delete_entities",
        "delete_observations",
        "delete_relations",
        "read_graph",
        "search_similar"
      ]
    }
  }
}

工具

实体管理

  • create_entities: 创建多个新实体
  • create_relations: 创建实体之间的关系
  • add_observations: 向实体添加观察
  • delete_entities: 删除实体及其关系
  • delete_observations: 删除特定观察
  • delete_relations: 删除特定关系
  • read_graph: 获取完整的知识图谱

语义搜索

  • search_similar: 搜索语义上相似的实体和关系
    interface SearchParams {
      query: string;     // 搜索查询文本
      limit?: number;    // 最大结果数(默认值:10)
    }
    

实现细节

服务器维护两种形式的持久化:

  1. 基于文件 (memory.json):

    • 完整的知识图谱结构
    • 快速访问完整图谱
    • 用于图谱操作
  2. Qdrant 向量数据库:

    • 实体和关系的语义嵌入
    • 启用相似性搜索
    • 自动与文件存储同步

同步

当实体或关系被修改时:

  1. 更改被写入 memory.json
  2. 使用 OpenAI 生成嵌入
  3. 向量存储在 Qdrant 中
  4. 两个存储系统保持一致

搜索过程

搜索时:

  1. 查询文本被转换为嵌入
  2. Qdrant 执行相似性搜索
  3. 结果包括实体和关系
  4. 结果按语义相似度排序

使用示例

// 创建实体
await client.callTool("create_entities", {
  entities: [{
    name: "Project",
    entityType: "Task",
    observations: ["A new development project"]
  }]
});

// 搜索相似的概念
const results = await client.callTool("search_similar", {
  query: "development tasks",
  limit: 5
});

HTTPS 和反向代理配置

服务器支持通过 HTTPS 和反向代理连接到 Qdrant。 这在以下情况下特别有用:

  • 在 Nginx 或 Apache 等反向代理后面运行 Qdrant
  • 使用自签名证书
  • 需要自定义 SSL/TLS 配置

使用反向代理进行设置

  1. 配置您的反向代理(使用 Nginx 的示例):
server {
    listen 443 ssl;
    server_name qdrant.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:6333;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  1. 更新您的环境变量:
QDRANT_URL=https://qdrant.yourdomain.com

安全注意事项

服务器实现了强大的 HTTPS 处理,具有:

  • 自定义 SSL/TLS 配置
  • 正确的证书验证选项
  • 连接池和保持活动状态
  • 自动重试和指数退避
  • 可配置的超时

排除 HTTPS 连接故障

如果您遇到连接问题:

  1. 验证您的证书:
openssl s_client -connect qdrant.yourdomain.com:443
  1. 测试直接连接:
curl -v https://qdrant.yourdomain.com/collections
  1. 检查任何代理设置:
env | grep -i proxy

贡献

  1. Fork 仓库
  2. 创建一个功能分支
  3. 进行更改
  4. 提交 pull request

许可证

MIT

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
AIO-MCP Server

AIO-MCP Server

🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。

精选
本地
Knowledge Graph Memory Server

Knowledge Graph Memory Server

为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。

精选
本地
Hyperbrowser

Hyperbrowser

欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:

精选
本地
https://github.com/Streen9/react-mcp

https://github.com/Streen9/react-mcp

react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。

精选
本地
MCP Atlassian

MCP Atlassian

适用于 Atlassian Cloud 产品(Confluence 和 Jira)的 Model Context Protocol (MCP) 服务器。此集成专为 Atlassian Cloud 实例设计,不支持 Atlassian Server 或 Data Center 部署。

精选
any-chat-completions-mcp

any-chat-completions-mcp

将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。

精选