LABSCO SUMMARY
Storage and retrieval only — you bring the embeddings.
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.
What it is
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.
What you get
- 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
Requirements
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.
Setup effort
One command — uvx lancedb-mcp
USE CASES
01
Giving an agent a vector store it can write to
Create a table at the dimension your embedding model produces, then add vectors with their source text as metadata.
02
Retrieving the closest matches to a query
Search with the query vector and a limit, and get results back with their similarity scores.
03
Seeing what is already indexed
List the tables as resources rather than guessing at names.
04
Keeping several collections apart
Create a table per collection and address each by its table:// resource URI.
BEFORE YOU INSTALL
What to know first
Requires
- uvx on PATH
- uv, for the clone route
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
Setup
TERMINAL
git clone https://github.com/RyanLisse/lancedb_mcp.git
cd lancedb_mcp
uv pip install -e .uvx
TERMINAL
uvx lancedb-mcpMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"lancedb": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_LANCEDB_MCP>",
"run",
"python",
"-m",
"lancedb_mcp",
"--db-path",
"<YOUR_PATH_TO_LANCEDB>"
]
}
}
}This block runs the copy the steps above install, not the uvx package. <YOUR_PATH_TO_LANCEDB_MCP> is the full path of the lancedb_mcp folder the clone creates. Claude Desktop does not start servers inside that folder, and uv run only finds the project from there or through --directory. <YOUR_PATH_TO_LANCEDB> is the folder the database should live in. The README writes ~/.lancedb, but the client passes arguments without a shell, so ~ is not expanded.