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.
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 nametopic:- 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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.