Skip to main content
Glama
lancedb

LanceDB MCP Server

Official
by lancedb

LanceDB MCP server

This is a basic, serveless MCP server that uses LanceDB to store and retrieve data. It is intended to be used as a reference for building complex MCP apps with LanceDB.

It provides 3 tools:

  • Ingest docs

  • Retrieve docs

  • Get table details

Related MCP server: qdrant-mcp

Installation

Just add the following config to your claude mcp config file:

{
  "mcpServers": {
    "lancedb": {
      "command": "uv",
      "args": [
        "--directory",
        "/Path/to/your/lancedb_mcp",
        "run",
        "/path/to/your/mcp/lancedb_mcp.py"
      ]
    }
  }
}

Ingest docs

Embed your docs and store them into lancedb for retreival. Here's an example of ingesting an entire blog into lancedb.

Retrieve docs

Query your docs. Here's an example of querying lancedb for a blog post.

Get table details

Get table details. Here's an example of getting table details.

Available Tools

3 tools
ingest_docsC
Ingests a list of documents into a LanceDB table. It is critical that the metdata must be a string literal

Args:
    docs (Union[str, List[str]]): A string or a list of strings to ingest.

Returns:
    None

example:
    ingest_docs(
        docs=["Hello world", "Hello world 2"],
    )
ParametersJSON Schema
NameRequiredDescriptionDefault
docsYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It states the action (ingest) and a constraint (metadata must be string literal), but omits details on side effects (e.g., append vs overwrite), required permissions, or error handling. The 'Returns: None' is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and includes an example, which is good. However, the metadata note is out of place and interrupts flow. It could be more concise by focusing solely on the docs parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description should provide more context. It mentions 'LanceDB table' but doesn't specify which table or how it's identified. Behavioral details (e.g., what happens to existing data) are missing, making the tool underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description largely restates the schema (docs can be string or list of strings) without adding meaning. The note about metadata is confusing and unrelated to the documented 'docs' parameter, failing to clarify the actual input semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool ingests documents into a LanceDB table, providing a specific verb and resource. While the note about metadata is tangential, it doesn't obscure the primary purpose. Sibling tools (query_table, table_details) are distinct, so the tool differentiates itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives (like query_table or table_details). There is no mention of prerequisites, context, or scenarios where ingestion is appropriate vs not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_tableC
Query a LanceDB table with a query string and return the top k results.

Args:

    query (str): The query string.
    top_k (int): The number of results to return. Defaults to 5.
    query_type (str): The type of query to perform. Defaults to "vector".

Returns:

    List[Schema]: A list of Schema objects.
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo
query_typeNovector

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It mentions querying and returning results, implying no side effects, but doesn't confirm read-only nature, authentication needs, or behavior for different query types.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with one main sentence and a structured Args list. It is front-loaded with the purpose. However, the Args section could be more integrated into the narrative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, no output schema, and no annotations, the description lacks completeness: no explanation of query_type values, no max for top_k, no details about the return Schema. Missing context for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description repeats parameter names and types (e.g., 'query (str)') without adding meaningful detail like allowed values for query_type or semantics of top_k. It adds minimal value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries a LanceDB table with a query string and returns top k results. It distinguishes from siblings (ingest_docs, table_details) by its action, though it doesn't explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor any prerequisites or exclusion criteria. The description only explains the action without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

table_detailsB
Get the details of a LanceDB table.

Args:

    table_name (str): The name of the table to get the details of. Defaults to "lancedb_table".
    db_uri (str): The URI of the LanceDB database. Defaults to "~/lancedb".

Returns:
    dict: A dictionary of the table details.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameNo
db_uriNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose side effects, permissions, or return behavior, but it only states that it returns a dict without further details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description uses a docstring format with Args/Returns sections, which is longer than necessary and includes default values that could be inferred.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks explanation of what 'details' are returned, no output schema exists, and no edge cases or error conditions are mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since schema description coverage is 0%, the description compensates by clarifying the default values for both parameters and the purpose of table_name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'details of a LanceDB table', which is specific and distinguishes it from sibling tools like 'ingest_docs' and 'query_table'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.1/5.0
Disambiguation5/5

Each tool has a distinct purpose: ingesting documents, querying a table, and retrieving table details. No overlap exists.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (ingest_docs, query_table, table_details) using snake_case.

Tool Count4/5

Three tools is minimal but appropriate for a basic LanceDB server covering ingestion, querying, and metadata inspection. Slightly limited but not unreasonable.

Completeness3/5

Covers core operations (ingest, query, details) but lacks delete, update, or list tables, which are notable gaps for a database server.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that enables LLMs to interact directly the documents that they have on-disk through agentic RAG and hybrid search in LanceDB. Ask LLMs questions about the dataset as a whole or about specific documents.
    16
    78
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for document ingestion and semantic search on Qdrant. Enables ingesting local documents, generating embeddings with OpenAI, and performing vector search with metadata filters.
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Local-first RAG indexing and semantic search MCP server. Enables document retrieval and context-aware queries using local embedding models.
    3
    14
    MIT

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/lancedb/lancedb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server