Skip to main content
Glama

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

  1. PostgreSQL 14+ with pgvector extension installed:

# In your PostgreSQL instance: CREATE EXTENSION vector;
  1. Node.js 16+

Setup

  1. Install dependencies:

npm install
  1. Configure environment variables: Copy .env.sample to .env and adjust the values:

cp .env.sample .env

Example .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=3333
  1. Initialize the database:

npm run prisma:migrate
  1. Start the server:

npm start

For development with auto-reload:

npm run dev

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:

{ "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:

  1. Opening Cursor

  2. The memory server will be started automatically when Cursor launches

  3. You can check the server status by visiting http://localhost:3333/mcp/v1/health

Available MCP Endpoints

SSE Connection

  • Endpoint: GET /mcp/v1/sse

  • Query Parameters:

    • subscribe: Comma-separated list of events to subscribe to (optional)

  • Events:

    • connected: Sent on initial connection

    • memory.created: Sent when new memories are created

    • memory.updated: Sent when existing memories are updated

Memory Operations

  1. 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 }
  1. Search Memories

GET /mcp/v1/memory/search?query=web+frameworks&type=learning&tags=nodejs
  1. List Memories

GET /mcp/v1/memory?type=learning&tags=nodejs,web-framework

Health Check

GET /mcp/v1/health

Response 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

-
security - not tested
-
license - not tested
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WebSurfinMurf/mcp-memory-postgres'

If you have feedback or need assistance with the MCP directory API, please join our Discord server