AI记忆服务器

一款基于PostgreSQL和pgvector的AI记忆服务器,提供长期记忆存储、语义搜索和实时更新功能。

  • by 1OOyan
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 1OOyan/mcp-memory

使用说明

MCP内存服务器

该服务器使用mem0原理为人工智能助手实现了长期内存功能,由PostgreSQL和pgvector提供支持,用于高效的向量相似性搜索。

特性

  • PostgreSQL与pgvector用于向量相似性搜索
  • 基于BERT的自动嵌入生成
  • 用于内存操作的RESTful API
  • 语义搜索功能
  • 支持不同类型的记忆(学习、经历等)
  • 基于标签的内存检索
  • 记忆的信心得分
  • 服务器发送事件(SSE)用于实时更新
  • 光标MCP协议兼容

先决条件

  1. 安装了pgvector扩展的PostgreSQL 14+:
# In your PostgreSQL instance:
CREATE EXTENSION vector;
  1. Node.js 16+

设置

  1. 安装依赖项:
npm install
  1. 配置环境变量: 复制 .env.sample 到 .env 并调整值:
cp .env.sample .env

示例 .env 配置:

# With username/password
DATABASE_URL="postgresql://username:password@localhost:5432/mcp_memory"
PORT=3333

# Local development with peer authentication
DATABASE_URL="postgresql:///mcp_memory"
PORT=3333
  1. 初始化数据库:
npm run prisma:migrate
  1. 启动服务器:
npm start

对于自动重新加载的开发:

npm run dev

与光标一起使用

在游标中添加MCP服务器

要将内存服务器添加到Cursor,您需要修改位于以下位置的MCP配置文件 ~/.cursor/mcp.json。将以下配置添加到 mcpServers 对象:

{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": [
        "/path/to/your/memory/src/server.js"
      ]
    }
  }
}

替换 /path/to/your/memory 内存服务器安装的实际路径。

例如,如果将存储库克隆到 /Users/username/workspace/memory,您的配置如下:

{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": [
        "/Users/username/workspace/memory/src/server.js"
      ]
    }
  }
}

需要时,Cursor将自动启动服务器。您可以通过以下方式验证它是否正常工作:

  1. 打开光标
  2. Cursor启动时,内存服务器将自动启动
  3. 您可以通过访问来检查服务器状态 http://localhost:3333/mcp/v1/health

可用的MCP端点

SSE连接

  • 端点: GET /mcp/v1/sse
  • 查询参数:
    • subscribe:以逗号分隔的要订阅的事件列表(可选)
  • 事件:
    • connected:在初始连接时发送
    • memory.created:创建新记忆时发送
    • memory.updated:更新现有内存时发送

内存操作

  1. 创建内存
POST /mcp/v1/memory
Content-Type: application/json

{
  "type": "learning",
  "content": {
    "topic": "Express.js",
    "details": "Express.js is a web application framework for Node.js"
  },
  "source": "documentation",
  "tags": ["nodejs", "web-framework"],
  "confidence": 0.95
}
  1. 搜索记忆
GET /mcp/v1/memory/search?query=web+frameworks&type=learning&tags=nodejs
  1. 列出回忆
GET /mcp/v1/memory?type=learning&tags=nodejs,web-framework

健康检查

GET /mcp/v1/health

响应格式

所有API回复均遵循标准MCP格式:

{
  "status": "success",
  "data": {
    // Response data
  }
}

或者对于错误:

{
  "status": "error",
  "error": "Error message"
}

内存架构

  • id:唯一标识符
  • 类型:记忆类型(学习、经验等)
  • content:实际内存内容(JSON)
  • 来源:记忆从何而来
  • 嵌入:内容的矢量表示(384维)
  • tags:相关标签数组
  • 信心:信心得分(0-1)
  • createdAt:创建内存时
  • updatedAt:上次更新内存的时间