memory-mcp

memory-mcp

Enables agents to persist, search, and manage short- and long-term memories using local SQLite storage and offline embeddings, with tools for recall, update, confirmation, and consolidation without external services.

Category
Visit Server

README

memory-mcp

A standalone MCP server for persistent agent memory — short/long-term tiers, measurable reliability, and lifecycle maintenance — backed by SQLite (FTS5 + sqlite-vec) with local MiniLM embeddings. No external services, no API keys.

Requirements

  • Node.js >= 22
  • The package ships compiled JavaScript, so no TypeScript toolchain is needed at runtime.

Install

npm install @jommar/memory-mcp

Two executables are provided:

Command Purpose
memory-mcp-server The MCP server (stdio by default, HTTP via MEMORY_TRANSPORT)
memory-mcp Store maintenance CLI (export, import, reindex, stats)

Quickstart

stdio (default)

Point your MCP client at the server binary:

{
  "mcpServers": {
    "memory": {
      "command": "memory-mcp-server"
    }
  }
}

Or run it directly:

memory-mcp-server

With npx, select the server bin explicitly (installs the package on first use):

npx -y -p @jommar/memory-mcp memory-mcp-server

HTTP (localhost only)

MEMORY_TRANSPORT=http memory-mcp-server

The HTTP endpoint binds to 127.0.0.1:3000 by default and serves both the modern (2026-07-28) and legacy (2025-11-25) protocol revisions from the same endpoint, so any MCP client can connect. The server is stateless — no session id is required.

First run

The store is created automatically at ~/.memory-mcp/memory.db. Embeddings are offline-first: no model is downloaded unless you opt in.

# opt in to the one-time model download (about 23 MB, MiniLM-L6, q8 quantized)
MEMORY_EMBEDDING_OFFLINE=false memory-mcp-server

Until a model is available, remember and recall still work — they fall back to keyword search only. Use the CLI reindex to backfill vectors after the model is in place.

Configuration

All configuration is via MEMORY_* environment variables (no config file):

Variable Default Purpose
MEMORY_DB_PATH ~/.memory-mcp/memory.db SQLite database file
MEMORY_TRANSPORT stdio stdio or http
MEMORY_HTTP_HOST 127.0.0.1 HTTP bind host (localhost only)
MEMORY_HTTP_PORT 3000 HTTP bind port
MEMORY_EMBEDDING_OFFLINE true false opts in to the one-time model download
MEMORY_EMBEDDING_DOWNLOAD_TIMEOUT_MS 300000 Timeout for a model download attempt
MEMORY_EMBEDDING_CACHE_DIR ~/.memory-mcp/cache Where downloaded models are cached
MEMORY_UI_PORT 3001 Explorer UI port (dev tool; auto-increments when busy)

Tools

Ten tools are registered: remember, recall, get, update, forget, list, confirm, contradict, promote, consolidate. See docs/tools.md for the full reference with inputs and behaviors.

remember accepts an interactive opt-in: when it finds near-duplicate entries it can ask the client to merge or create (MRTR), and degrades gracefully for clients without interactive support.

Maintenance CLI

memory-mcp export ./out      # write every memory as a markdown frontmatter file
memory-mcp import ./staging  # validate, then import (never overwrites existing keys)
memory-mcp reindex           # rebuild FTS + vector indexes from stored content
memory-mcp stats             # print store counts

Memory explorer (UI)

A read-only visual explorer for the store: links graph (React Flow, force-directed layout clustered by type), reliability breakdown per memory, history, supersession chains, filters by scope/type/tier/status, and a maintenance drawer listing consolidate proposals (orphans, stale entries, duplicate clusters) with click-to-select. It opens the SQLite database read-only, so it is safe to run alongside a live server and cannot mutate data.

The UI lives in the ui/ workspace and is a development tool — it is not part of the published package:

npm run ui:build   # compile the API server + bundle the frontend
npm run ui:start   # serve at http://127.0.0.1:3001

For frontend development with hot reload: npm run ui:dev in one terminal (proxies /api to 3001) and npm run ui:start in another.

If the port is taken, the server auto-increments (3001 → 3010) and prints the bound URL. Configuration: MEMORY_DB_PATH (same store as the server) and MEMORY_UI_PORT (default 3001). The bind host is always 127.0.0.1.

Documentation

License

MIT — see LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured