mcp-ltm

mcp-ltm

Provides persistent long-term memory for AI assistants with tag-based retrieval, wiki-style linking, and source references, storing memories as markdown files with SQLite index.

Category
Visit Server

README

mcp-ltm: Long-Term Memory for LLMs

An MCP server that provides persistent long-term memory for AI assistants. Memories are stored as browsable markdown files with a SQLite index for fast tag-based retrieval.

Features

  • Tag-based retrieval: Store and query memories using tags, ranked by overlap
  • Human-browsable: Memories stored as markdown files with YAML frontmatter
  • Tag co-occurrence: Discover related tags based on how often they appear together
  • Memory linking: Create wiki-style links between related memories
  • Source references: Link memories to external documents with origin-based path management
  • Access tracking: Track when and how often memories are accessed for pruning

Installation

pip install -e .

Configuration

Add to your Claude Code MCP settings (~/.claude.json):

{
  "mcpServers": {
    "ltm": {
      "command": "mcp-ltm",
      "env": {
        "MCP_LTM_PATH": "/path/to/memories",
        "MCP_LTM_CONFIG": "/path/to/config.yaml"
      }
    }
  }
}

Default paths (if env vars not set):

  • Memories: ~/.local/share/mcp-ltm/memories/
  • Config: ~/.local/share/mcp-ltm/config.yaml

Tools

Memory Operations

  • store_memory - Create memory with title, tags, summary, content, optional source/links
  • query_memories - Search by tags (ranked by overlap), filter by required_tags
  • get_memory - Retrieve by ID (updates access stats)
  • update_memory - Modify existing memory
  • delete_memory - Remove memory
  • get_stale_memories - Find old, rarely-accessed memories for pruning

Tag Operations

  • get_tags - List all tags with usage counts and example summaries
  • get_related_tags - Find tags that frequently co-occur (for query expansion)

Origin Management

  • list_origins - Show configured origin directories
  • add_origin - Register origin (auto-contracts existing matching sources)
  • remove_origin - Delete origin mapping

Origins: Managing Source Paths

Origins let you use short paths like myproject:docs/file.md instead of full absolute paths.

Config file (~/.local/share/mcp-ltm/config.yaml):

origins:
  myproject: /home/user/projects/myproject
  notes: /home/user/notes

When storing a memory with a source:

  • Full paths matching an origin are automatically contracted
  • When retrieving, paths are expanded back to full paths
  • Makes memories portable and readable

Storage Format

Each memory is a markdown file with YAML frontmatter:

---
id: example-memory-title
title: Example Memory Title
tags: [python, debugging, testing]
summary: Brief description of what this memory contains.
source: myproject:docs/example.md
created_at: 2026-01-15T10:30:00Z
accessed_at: 2026-01-20T14:00:00Z
access_count: 3
links: [related-memory-id]
---

# Example Memory Title

Full content here. Can link to [other memories](related-memory-id.md).

The SQLite index (index.db) stores metadata for fast querying but can be rebuilt from the markdown files if needed.

Tag Conventions

Tags are normalized: lowercase, spaces become hyphens, punctuation stripped (except colons for namespacing).

Suggested prefixes:

  • type: - Memory type (decision, insight, preference, fact, reference)
  • project: - Project name
  • topic: - Subject area

Usage Patterns

Pure Memory

Self-contained insight with no external reference:

store_memory(
    title="Python Dict Merge Operator",
    tags=["python", "syntax"],
    summary="Python 3.9+ supports d1 | d2 to merge dicts.",
    content="Use `d1 | d2` to merge dictionaries..."
)

Reference Memory

Summary pointing to detailed external document:

store_memory(
    title="Project Architecture Overview",
    tags=["project:foo", "architecture"],
    summary="Key architectural decisions for the Foo project.",
    content="Main insight: use event sourcing for audit trail...",
    source="/path/to/architecture.md"
)

License

MIT License - see LICENSE for details.

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