Skip to main content

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. Works like a long-term memory system where you can store documents and retrieve relevant information later using natural language.

Features

This server exposes two main tools:

  1. save_to_memory - Save files to memory for later retrieval

    • Supports PDF, TXT, and MD files
    • Accepts both absolute and relative file paths (converts all to absolute)
    • Automatically processes and organizes content for efficient recall
    • Preserves source file information
  2. recall_from_memory - Recall information from memory

    • Find relevant content using natural language queries
    • Returns the most relevant information even without exact word matches
    • Shows absolute paths to source files for each result

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

Installation

The dependencies are already configured in pyproject.toml. Install them using:

uv sync

Verify Your Setup

Before running the server, test your configuration:

uv run test_connection.py

This will verify:

  • ✅ All required packages are installed
  • ✅ Redis is running and accessible
  • ✅ Embedding model loads correctly

Usage

Running the Server Standalone

You can test the server directly:

uv run vector_memory.py

Integrating with Claude or Windsurf

Add this configuration to your MCP config file at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "vector-memory": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/mcp-servers/servers/vector-memory",
        "run",
        "vector_memory.py"
      ]
    }
  }
}

Important: Replace /ABSOLUTE/PATH/TO with the full path to your project directory.

After updating the config, restart Claude for Desktop or Windsurf.

Integrating with Codex CLI

For Codex CLI, add this to your MCP configuration file (typically ~/.config/codex/mcp_config.toml or similar):

[servers.vector-memory]
command = "uv"
args = [
  "--directory",
  "/ABSOLUTE/PATH/TO/mcp-servers/servers/vector-memory",
  "run",
  "vector_memory.py"
]

Important: Replace /ABSOLUTE/PATH/TO with the full path to your project directory.

After updating the config, restart or reload Codex CLI.

Tool Examples

Saving to Memory

In Claude/Windsurf/Codex, you can ask:

Save these files to memory:
- /path/to/document1.pdf
- /path/to/notes.md

or simply:

Remember the contents of /path/to/my-notes.txt

Recalling from Memory

What do you remember about machine learning algorithms?

or:

Recall information about project deadlines

Configuration

You can customize the following constants in vector_memory.py:

  • REDIS_URL: Redis connection string (default: redis://localhost:6379)
  • INDEX_NAME: Vector store index name (default: doc_chunks)
  • MODEL_NAME: Embedding model (default: sentence-transformers/all-MiniLM-L6-v2)

Architecture

┌─────────────────┐
│  Claude/Client  │
└────────┬────────┘
         │ MCP Protocol
         │
┌────────▼────────┐
│  Vector Memory  │
│   MCP Server    │
└────────┬────────┘
         │
         ├─────► HuggingFace Embeddings
         │
         └─────► Redis Vector Store

Memory Management

Two scripts are provided to manage stored documents:

Quick Cleanup (cleanup.py)

Simple commands for common operations:

# Show memory statistics
uv run cleanup.py stats

# Delete all documents from memory
uv run cleanup.py all

# Delete documents from a specific file
uv run cleanup.py file /path/to/file.pdf

Advanced Management (manage_memory.py)

Interactive tool with search and selective deletion:

# Interactive mode
uv run manage_memory.py

# Command-line usage
uv run manage_memory.py list                    # List all files
uv run manage_memory.py search <term>           # Search by filename
uv run manage_memory.py delete-file <path>      # Delete specific file
uv run manage_memory.py delete-all              # Delete everything

Interactive Mode Features:

  • 📋 List all documents grouped by source file
  • 🔍 Search documents by filename or path
  • 🗑️ Selectively delete documents with confirmation
  • 📊 See chunk counts per file

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_memory always returns absolute paths to source files

This ensures consistent path references regardless of how files were originally added to memory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_vector_memory-0.1.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_vector_memory-0.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_vector_memory-0.1.0.tar.gz.

File metadata

File hashes

Hashes for mcp_server_vector_memory-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a4476395281b66508875c99e8dac9f3e4e89ff35d79ab3aee68d33b929d84a48
MD5 5d368d5aaa86e57bbe5d09975502d781
BLAKE2b-256 f9dbe8aa208904edec37193ab10f652897e258eed1f8a41f64ee397d5619aafc

See more details on using hashes here.

File details

Details for the file mcp_server_vector_memory-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_vector_memory-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f4403f749b2eeb79e15c76cda7458015930b11655b5fd7c9ecfae7ceff353916
MD5 38ba13e89f380be3c588dfa4a745ad88
BLAKE2b-256 2e1df7cba242efd84f779b67aa16656899d36d2c2b407c342c71ee7beabb6619

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page