Cover image
Try Now
2025-03-16

MCP Memory Server with PostgreSQL and pgvector for long-term memory capabilities

3 years

Works with Finder

1

Github Watches

1

Github Forks

6

Github Stars

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

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

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Khalid kalib
  • Write professional emails

  • Yasir Eryilmaz
  • AI scriptwriting assistant for short, engaging video content.

  • J. DE HARO OLLE
  • Especialista en juegos de palabras en varios idiomas.

  • Daren White
  • A supportive coach for mastering all Spanish tenses.

  • ShrimpingIt
  • Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx

  • huahuayu
  • A unified API gateway for integrating multiple etherscan-like blockchain explorer APIs with Model Context Protocol (MCP) support for AI assistants.

  • deemkeen
  • control your mbot2 with a power combo: mqtt+mcp+llm

  • zhaoyunxing92
  • 本项目是一个钉钉MCP(Message Connector Protocol)服务,提供了与钉钉企业应用交互的API接口。项目基于Go语言开发,支持员工信息查询和消息发送等功能。

  • apappascs
  • Discover the most comprehensive and up-to-date collection of MCP servers in the market. This repository serves as a centralized hub, offering an extensive catalog of open-source and proprietary MCP servers, complete with features, documentation links, and contributors.

  • justmywyw
  • Short and sweet example MCP server / client implementation for Tools, Resources and Prompts.

    Reviews

    1 (1)
    Avatar
    user_0MCw9VEZ
    2025-04-15

    Ashra MCP is an outstanding application that has vastly improved my server management experience. Its user-friendly interface and powerful features make it a go-to tool for any administrator. The application, developed by getrupt, offers excellent functionality and reliability. I highly recommend Ashra MCP for anyone looking for efficient server management solutions. You can check it out at https://mcp.so/server/ashra-mcp/getrupt.