lake-of-vectors
Planned integration to index and search Confluence pages (not yet supported).
Planned integration to index and search Notion pages (not yet supported).
Indexes and searches Markdown notes from an Obsidian vault.
Provides an optional embedding backend using OpenAI's API (e.g., text-embedding-3-small).
Indexes and searches content from SQLite database tables.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lake-of-vectorssearch my Obsidian notes for ideas about AI safety"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Lake of Vectors
Local semantic search over your personal knowledge bases. Index Obsidian notes, SQLite databases, plaintext, and Notion/Confluence (not supported yet) files into ChromaDB, exposed to Claude via an MCP server.
Features
Multiple Publishers: Crawl Markdown directories, SQLite tables, and plaintext files
Semantic Search: Find relevant content by meaning, not just keywords
Local Vectors: Runs entirely on your machine with sentence-transformers
OpenAI Support: Optional OpenAI embeddings if preferred
MCP Server: Integrates directly with Claude Code for seamless querying
Related MCP server: MCP Data Server
Installation
uv pip install -e .Configuration
Copy the example config and adjust paths for your sources:
mkdir -p ~/.config/lake-of-vectors
cp config.example.yaml ~/.config/lake-of-vectors/config.yamlEdit ~/.config/lake-of-vectors/config.yaml:
sources:
- type: markdown
name: my-notes
path: ~/obsidian-vault/Notes/
- type: sqlite
name: knowledge-db
path: ~/knowledge.db
table: notes
content_column: body
metadata_columns: [title, tags]
- type: plaintext
name: misc-notes
path: ~/notes/
embedding:
backend: local
model: all-MiniLM-L6-v2Source Types
Type | Description |
| Recursive crawl of |
| Query a SQLite table with content and metadata columns |
| Recursive crawl of |
Embedding Backends
Local (default): Uses
all-MiniLM-L6-v2via sentence-transformers. No API key needed.OpenAI: Uses
text-embedding-3-smallor another OpenAI model. Requiresapi_keyin config.
embedding:
backend: openai
model: text-embedding-3-small
api_key: sk-...Usage
Sync your sources
lake sync # Sync all sources
lake sync --source my-notes # Sync only one source
lake sync --rebuild # Delete and re-embed everythingCheck status
lake statusStart the MCP server
lake serveClaude Code Integration
Register as a global MCP server using the Claude Code CLI:
claude mcp add -s user lake-of-vectors $(pwd)/.venv/bin/lake serveThe -s user scope makes it available in all sessions. Restart Claude Code after running.
Qwen Code Integration
Register as a global MCP server using the Qwen Code CLI:
qwen mcp add -s user lake-of-vectors $(pwd)/.venv/bin/lake serveThe -s user scope makes it available in all sessions. Restart Qwen Code after running.
To scope it to a single project instead, add a .mcp.json file in the project root:
{
"mcpServers": {
"lake-of-vectors": {
"command": "lake",
"args": ["serve"]
}
}
}Add to your CLAUDE.md:
When answering security questions or searching your personal knowledge, always use lake-of-vectors semantic_search first.CLI Commands
Command | Description |
| Sync all configured sources into ChromaDB |
| Sync a specific source |
| Delete all vectors and re-sync everything |
| Remove stale collections not in current config |
| Preview what would be pruned without deleting |
| Start the MCP server (stdio mode) |
| Show sync status for all sources |
Data
ChromaDB vectors are stored at:
~/.local/share/lake-of-vectors/chromadbArchitecture
┌──────────────────────────────────────────────────────────────────┐
│ lake-of-vectors │
│ │
│ ┌─────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Publishers │──▶│ Sync Engine │──▶│ ChromaDB │ │
│ │ │ │ │ │ (on-disk) │ │
│ │ • Markdown │ │ • Chunking │ │ │ │
│ │ • SQLite │ │ • Content hash │ │ one collection │ │
│ │ • Plaintext │ │ diffing │ │ per source │ │
│ └─────────────┘ │ • Embedding │ └────────┬─────────┘ │
│ │ • ChromaDB upsert│ │ │
│ └──────────────────┘ │ │
│ │ │
│ ┌─────────────────────┐ ┌──────────────────┐ │ │
│ │ Embedding Backends │ │ MCP Server │◀───┘ │
│ │ │ │ (stdio) │ │
│ │ • Local │ │ │ │
│ │ (sentence- │ │ • semantic_search│ │
│ │ transformers) │ │ • list_sources │ │
│ │ • OpenAI API │ └──────────────────┘ │
│ └─────────────────────┘ │
│ │
│ CLI: lake sync | lake serve | lake prune | lake status │
└──────────────────────────────────────────────────────────────────┘ License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tungpun/lake-of-vectors'
If you have feedback or need assistance with the MCP directory API, please join our Discord server