Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Memory Serversearch for memories about Express.js web frameworks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
# In your PostgreSQL instance:
CREATE EXTENSION vector;Node.js 16+
Setup
Install dependencies:
npm installConfigure environment variables: Copy
.env.sampleto.envand adjust the values:
cp .env.sample .envExample .env configurations:
# 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=3333Initialize the database:
npm run prisma:migrateStart the server:
npm startFor development with auto-reload:
npm run devUsing 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:
{
"mcpServers": {
"memory": {
"command": "node",
"args": [
"/path/to/your/memory/src/server.js"
]
}
}
}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:
{
"mcpServers": {
"memory": {
"command": "node",
"args": [
"/Users/username/workspace/memory/src/server.js"
]
}
}
}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
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
}Search Memories
GET /mcp/v1/memory/search?query=web+frameworks&type=learning&tags=nodejsList Memories
GET /mcp/v1/memory?type=learning&tags=nodejs,web-frameworkHealth Check
GET /mcp/v1/healthResponse Format
All API responses follow the standard MCP format:
{
"status": "success",
"data": {
// Response data
}
}Or for errors:
{
"status": "error",
"error": "Error message"
}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