Skip to main content
Glama

memory-mcp

A unified, local memory for Claude — an MCP server that stores memories as 1024-dimensional embeddings in a single SQLite file (memory.db) and serves them back over the Model Context Protocol.

  • Runtime: TypeScript, stdio transport

  • Store: SQLite + sqlite-vec

  • Embedder: pluggable — local Ollama (default) or remote Voyage AI

  • Vectors: float[1024], cosine distance

Data model (two tables, one id)

One memory is stored as two rows that share the same id:

memories (normal table)

vec_memories (vec0 virtual table)

id, text, tags, source, parent_id, content_hash, created_at, updated_at

rowid, embedding float[1024]

sqlite-vec's vec0 table only holds the vector, so the readable content lives in memories and the two are joined on memories.id = vec_memories.rowid. content_hash (sha256 of the text) makes exact duplicates a no-op.

Setup

cd ~/memory-mcp
npm install
npm run build

Local embeddings (default, nothing leaves the machine)

# install & run Ollama, then pull a 1024-d model:
ollama pull bge-large
ollama serve            # if not already running

Remote embeddings (Voyage)

export EMBEDDER=voyage
export VOYAGE_API_KEY=...   # voyage-3 = 1024-d

Copy .env.example to .env to see all options.

Wire it into Claude

Add to claude_desktop_config.json (Claude Desktop) or .mcp.json (Claude Code):

{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": ["/Users/tylertabarovsky/memory-mcp/dist/server.js"],
      "env": { "EMBEDDER": "ollama" }
    }
  }
}

Tools

Tool

Args

Does

memory_write

text, tags?, source?

chunk → embed → store

memory_search

query, k?

embed query → cosine kNN → ranked hits

memory_list

limit?, tag?

recent memories, optional tag filter

memory_delete

id

remove content + vector

Capture model

This scaffold uses the explicit model: Claude calls memory_write when it decides something is worth keeping. Simplest and least noisy. A passive/auto capture layer can be added later on top of the same tools.

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/tylertab/memory-mcp'

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