MCP server for semantic document memory with Redis vector store
Project description
Vector Memory MCP Server
An MCP server that gives AI assistants the ability to save and recall information from files or free-form notes. Works like a long-term memory system where you can store documents and retrieve relevant information later using natural language.
๐ Complete Usage Guide | ๐ PyPI Package | ๐ MCP Registry
Features
- ๐ง Semantic Memory: Save and recall text using natural language
- ๐ Multi-Format Support: PDF, TXT, and Markdown files
- โ๏ธ Free-Form Notes: Store ad-hoc text snippets without creating files
- ๐ Auto-Update: Re-saving a file automatically removes old versions
- ๐ฏ Smart Chunking: Optimizes chunk size based on file type
- ๐ Semantic Search: Find information even without exact word matches
- ๐๏ธ Memory Management: Built-in tools to list, search, and clean up memory
- ๐ Data Isolation: Separate Redis databases and namespaces
Prerequisites
- Python 3.12 or higher
- Redis server running locally on port 6379
- UV package manager
Start Redis
# Using Docker
docker run -d -p 6379:6379 redis:latest
# Or using Homebrew on macOS
brew install redis
brew services start redis
Quick Start
Installation
# Via pip
pip install mcp-server-vector-memory
# Via uvx (isolated environment)
uvx mcp-server-vector-memory
# From source
git clone https://github.com/NeerajG03/vector-memory.git
cd vector-memory
uv sync
Basic Usage
After pip install:
# Run the server
mcp-server-vector-memory
# Manage memory
vector-memory-manage list
vector-memory-cleanup stats
From source:
uv run vector_memory.py
uv run manage_memory.py list
uv run cleanup.py stats
Integration with AI Clients
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"vector-memory": {
"command": "uvx",
"args": ["mcp-server-vector-memory"]
}
}
}
Codex CLI (~/.config/codex/mcp_config.toml):
[servers.vector-memory]
command = "uvx"
args = ["mcp-server-vector-memory"]
See USAGE.md for complete integration examples and advanced configuration.
Configuration
You can customize the server using environment variables or by editing vector_memory.py:
Environment Variables
REDIS_URL: Redis connection string (default:redis://localhost:6379/0)- Format:
redis://host:port/db_number - Example:
redis://localhost:6379/1(use database 1)
- Format:
Constants in Code
INDEX_NAME: Vector store index name (default:mcp_vector_memory)- All keys are prefixed with this namespace to avoid conflicts
MODEL_NAME: Embedding model (default:sentence-transformers/all-MiniLM-L6-v2)
Data Isolation
The server uses multiple layers of isolation:
- Database number: Uses Redis DB 0 by default (configurable via URL)
- Index namespace: All keys prefixed with
mcp_vector_memory:* - Metadata tagging: Each document tagged with source file path
This ensures your vector memory data won't conflict with other Redis applications.
Architecture
โโโโโโโโโโโโโโโโโโโ
โ Claude/Client โ
โโโโโโโโโโฌโโโโโโโโโ
โ MCP Protocol
โ
โโโโโโโโโโผโโโโโโโโโ
โ Vector Memory โ
โ MCP Server โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโบ HuggingFace Embeddings
โ
โโโโโโโบ Redis Vector Store
Memory Management
Two management tools are included:
vector-memory-manage- Interactive tool with search and selective deletionvector-memory-cleanup- Quick cleanup commands
See USAGE.md for complete documentation and examples.
Development
To run in development mode with auto-reload:
uv run --reload vector_memory.py
Troubleshooting
Redis Connection Error
Ensure Redis is running:
redis-cli ping
# Should return: PONG
Model Download
The first time you run the server, it will download the embedding model (~80MB). This is normal and only happens once.
File Not Found Errors
The server accepts both absolute and relative file paths, but automatically converts them to absolute paths for storage. If a file is not found, check that the path is correct relative to where the server is running.
Path Handling
- Input: Accepts both absolute (
/full/path/to/file.txt) and relative (./docs/file.txt) paths - Storage: All paths are converted to absolute paths before being saved to memory
- Output:
recall_from_memoryalways returns absolute paths to source files
This ensures consistent path references regardless of how files were originally added to memory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_vector_memory-0.4.2.tar.gz.
File metadata
- Download URL: mcp_server_vector_memory-0.4.2.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
372965177cd1da26d2040287fff25a332662e961b38ac02843d1a49e37ba8a94
|
|
| MD5 |
ab5db6b4ac9520af49c4044074136b6e
|
|
| BLAKE2b-256 |
507cb062eb8f3c052d2f3b5659f2c0776a8f31507306e963e0c891a8d17fa8de
|
File details
Details for the file mcp_server_vector_memory-0.4.2-py3-none-any.whl.
File metadata
- Download URL: mcp_server_vector_memory-0.4.2-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be52463fefad2bebbba4191ee8543d76a103123ca1c60f41da3143d8d2ca98c3
|
|
| MD5 |
400563a42cff3477e0df0cb0d09fc4b1
|
|
| BLAKE2b-256 |
a659701ecf11573a35f67252cd50680fae166c2d370db70658103cbdaecdd00e
|