Vector Memory MCP Server
by NeerajG03
README.md
# Vector Memory MCP Server
<!-- mcp-name: io.github.NeerajG03/vector-memory -->
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](USAGE.md)** | **š [PyPI Package](https://pypi.org/project/mcp-server-vector-memory/)** | **š [MCP Registry](https://mcp.run/server/io.github.NeerajG03/vector-memory)**
## 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
```bash
# 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
```bash
# 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:**
```bash
# Run the server
mcp-server-vector-memory
# Manage memory
vector-memory-manage list
vector-memory-cleanup stats
```
**From source:**
```bash
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`):
```json
{
"mcpServers": {
"vector-memory": {
"command": "uvx",
"args": ["mcp-server-vector-memory"]
}
}
}
```
**Codex CLI** (`~/.config/codex/mcp_config.toml`):
```toml
[servers.vector-memory]
command = "uvx"
args = ["mcp-server-vector-memory"]
```
See **[USAGE.md](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)
### 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:
1. **Database number**: Uses Redis DB 0 by default (configurable via URL)
2. **Index namespace**: All keys prefixed with `mcp_vector_memory:*`
3. **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 deletion
- **`vector-memory-cleanup`** - Quick cleanup commands
See **[USAGE.md](USAGE.md#memory-management)** for complete documentation and examples.
## Development
To run in development mode with auto-reload:
```bash
uv run --reload vector_memory.py
```
## Troubleshooting
### Redis Connection Error
Ensure Redis is running:
```bash
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_memory` always returns absolute paths to source files
This ensures consistent path references regardless of how files were originally added to memory.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo recent community issues