mcp-long-term-memory

MCP.Pizza Chef: tomschell

The mcp-long-term-memory server provides persistent, project-based memory storage for LLMs using the MCP standard. It enables models to recall context from the entire history of a project across multiple sessions by leveraging semantic search with embeddings. It supports multiple memory types including conversations, code, decisions, and references, enriched with metadata and relationship tracking to maintain comprehensive project knowledge.

Use This MCP server To

Store and retrieve project history across multiple LLM sessions Provide LLMs with relevant past code changes and implementation details Track architectural decisions and design rationale over time Organize memory by tagging and relationship tracking for easy context retrieval Enhance LLM responses with context from previous conversations and documentation Support semantic search to find relevant past interactions quickly Maintain rich metadata about project files, dependencies, and statuses

README

Memory MCP Server

A long-term memory storage system for LLMs using the Model Context Protocol (MCP) standard. This system helps LLMs remember the context of work done over the entire history of a project, even across multiple sessions. It uses semantic search with embeddings to provide relevant context from past interactions and development decisions.

Features

  • Project-based memory organization
  • Semantic search using Ollama embeddings (nomic-embed-text model, 768 dimensions)
  • Multiple memory types:
    • Conversations: Dialog context and important discussions
    • Code: Implementation details and changes
    • Decisions: Key architectural and design choices
    • References: Links to external resources and documentation
  • Rich metadata storage including:
    • Implementation status
    • Key decisions
    • Files created/modified
    • Code changes
    • Dependencies added
  • Tagging system for memory organization
  • Relationship tracking between memories

Prerequisites

  • Node.js (v18 or later)
  • Ollama running locally (for embeddings)
    • Must have the nomic-embed-text model installed
  • SQLite3

Installation

  1. Clone the repository
  2. Install dependencies:
    npm install
  3. Build the project:
    npm run build
  4. Create a .env file with required configuration:
    OLLAMA_HOST=http://localhost:11434
    DB_PATH=memory.db
    

Usage

  1. Start the server in development mode:

    npm run dev

    This will:

    • Compile TypeScript
    • Copy schema files
    • Start the server with auto-reload
  2. The server connects via stdio for Cursor compatibility

Database Schema

The system uses SQLite with the following tables:

Core Tables

  • projects: Project information and metadata
  • memories: Memory entries storing various types of development context
  • embeddings: Vector embeddings (768d) for semantic search capabilities

Organization Tables

  • tags: Memory organization tags
  • memory_tags: Many-to-many relationships between memories and tags
  • memory_relationships: Directed relationships between memory entries

MCP Tools

The following tools are available through the MCP protocol:

Memory Management

  • store-dev-memory: Create new development memories with:
    • Content
    • Type (conversation/code/decision/reference)
    • Tags
    • Code changes
    • Files created/modified
    • Key decisions
    • Implementation status
  • list-dev-memories: List existing memories with optional tag filtering
  • get-dev-memory: Retrieve specific memory by ID
  • search: Semantic search across memories using embeddings

Development

For development:

npm run dev

This will:

  1. Kill any existing server instances
  2. Rebuild the TypeScript code
  3. Copy the schema.sql to the dist directory
  4. Start the server in development mode

Dependencies

Key dependencies:

  • @modelcontextprotocol/sdk@^1.7.0: MCP protocol implementation
  • better-sqlite3@^9.4.3: SQLite database interface
  • node-fetch@^3.3.2: HTTP client for Ollama API
  • zod@^3.22.4: Runtime type checking and validation

Project Structure

memory-mcp-server/
├── src/
│   ├── db/
│   │   ├── init.ts     # Database initialization
│   │   └── service.ts  # Database service layer
│   ├── dev-memory.ts   # Development memory helpers
│   ├── index.ts        # Main server implementation
│   └── schema.sql      # Database schema
├── dist/               # Compiled JavaScript
├── package.json        # Project configuration
└── tsconfig.json       # TypeScript configuration

Contributing

Contributions are welcome! Please ensure you:

  1. Write clear commit messages
  2. Add appropriate documentation
  3. Follow the existing code style
  4. Add/update tests as needed

mcp-long-term-memory FAQ

How does mcp-long-term-memory improve LLM context retention?
It stores project history and uses semantic search to recall relevant past context across sessions.
What types of memories does this server support?
It supports conversations, code, decisions, and references with rich metadata.
How is semantic search implemented?
Using Ollama embeddings (nomic-embed-text model) to find relevant memories based on meaning.
Can I organize memories for easier retrieval?
Yes, it includes a tagging system and tracks relationships between memories.
What metadata is stored with memories?
Implementation status, key decisions, file changes, code modifications, and dependencies.
What are the prerequisites for running this server?
Node.js v18 or later is required to run the mcp-long-term-memory server.
Is this server compatible with multiple LLM providers?
Yes, it is designed to work with any MCP-compliant LLM including OpenAI, Claude, and Gemini.
How does it handle multi-session memory continuity?
By persisting project context and enabling semantic retrieval across sessions.