MCP Memory Server
This server implements long-term memory capabilities for AI assistants using mem0 principles, powered by PostgreSQL with pgvector for efficient vector similarity search.
Features
PostgreSQL with pgvector for vector similarity search
Automatic embedding generation using BERT
RESTful API for memory operations
Semantic search capabilities
Support for different types of memories (learnings, experiences, etc.)
Tag-based memory retrieval
Confidence scoring for memories
Server-Sent Events (SSE) for real-time updates
Cursor MCP protocol compatible
Related MCP server: MCP Memory Server
Prerequisites
PostgreSQL 14+ with pgvector extension installed:
Node.js 16+
Setup
Install dependencies:
Configure environment variables: Copy
.env.sampleto.envand adjust the values:
Example .env configurations:
Initialize the database:
Start the server:
For development with auto-reload:
Using with Cursor
Adding the MCP Server in Cursor
To add the memory server to Cursor, you need to modify your MCP configuration file located at ~/.cursor/mcp.json. Add the following configuration to the mcpServers object:
Replace /path/to/your/memory with the actual path to your memory server installation.
For example, if you cloned the repository to /Users/username/workspace/memory, your configuration would look like:
The server will be automatically started by Cursor when needed. You can verify it's working by:
Opening Cursor
The memory server will be started automatically when Cursor launches
You can check the server status by visiting
http://localhost:3333/mcp/v1/health
Available MCP Endpoints
SSE Connection
Endpoint:
GET /mcp/v1/sseQuery Parameters:
subscribe: Comma-separated list of events to subscribe to (optional)
Events:
connected: Sent on initial connectionmemory.created: Sent when new memories are createdmemory.updated: Sent when existing memories are updated
Memory Operations
Create Memory
Search Memories
List Memories
Health Check
Response Format
All API responses follow the standard MCP format:
Or for errors:
Memory Schema
id: Unique identifier
type: Type of memory (learning, experience, etc.)
content: Actual memory content (JSON)
source: Where the memory came from
embedding: Vector representation of the content (384 dimensions)
tags: Array of relevant tags
confidence: Confidence score (0-1)
createdAt: When the memory was created
updatedAt: When the memory was last updated