Nothing here generates vectors; you pass them in and it stores, validates and searches them. That makes it a building block rather than a finished RAG setup, and the right question is whether you already have an embedding step. Dimension is fixed at table creation and validated on insert, so a mismatched model fails loudly instead of silently corrupting the index.
An MCP server for LanceDB vector operations. It manages tables, validates and stores vectors with their metadata, and runs top-k similarity search — exposing the tables themselves as MCP resources so a client can see what is available.
- A vector table created with a name and a fixed dimension — `create_table`
- A vector added with optional metadata, dimensions validated on the way in — `add_vector`
- Similarity search returning top-k results with scores — `search_vectors`
- Available tables listed with their metadata — `list_resources`
- Tables addressable as resources under `table://{name}`, with configurable vector dimensions and text metadata support
- Local or cloud storage backends through LanceDB's Python client, with connection lifecycle handled for you
No account and no key for local use. Clone the repository and `uv pip install -e .`. Configure the client to run `uv run python -m lancedb_mcp --db-path ~/.lancedb`, or set `LANCEDB_URI` to the storage path — it defaults to `.lancedb`. Package `lancedb-mcp` 0.1.0 with the entry point `lancedb-mcp`, MIT licensed.
One command — uvx lancedb-mcp
