使用说明
MCP内存服务器
该服务器使用mem0原理为人工智能助手实现了长期内存功能,由PostgreSQL和pgvector提供支持,用于高效的向量相似性搜索。
特性
- PostgreSQL与pgvector用于向量相似性搜索
- 基于BERT的自动嵌入生成
- 用于内存操作的RESTful API
- 语义搜索功能
- 支持不同类型的记忆(学习、经历等)
- 基于标签的内存检索
- 记忆的信心得分
- 服务器发送事件(SSE)用于实时更新
- 光标MCP协议兼容
先决条件
- 安装了pgvector扩展的PostgreSQL 14+:
# In your PostgreSQL instance:
CREATE EXTENSION vector;
- Node.js 16+
设置
- 安装依赖项:
npm install
- 配置环境变量:
复制
.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
- 初始化数据库:
npm run prisma:migrate
- 启动服务器:
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将自动启动服务器。您可以通过以下方式验证它是否正常工作:
- 打开光标
- Cursor启动时,内存服务器将自动启动
- 您可以通过访问来检查服务器状态
http://localhost:3333/mcp/v1/health
可用的MCP端点
SSE连接
- 端点:
GET /mcp/v1/sse - 查询参数:
subscribe:以逗号分隔的要订阅的事件列表(可选)
- 事件:
connected:在初始连接时发送memory.created:创建新记忆时发送memory.updated:更新现有内存时发送
内存操作
- 创建内存
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
}
- 搜索记忆
GET /mcp/v1/memory/search?query=web+frameworks&type=learning&tags=nodejs
- 列出回忆
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:上次更新内存的时间
