https://github.com/adiom-data/lance-mcp
https://github.com/adiom-data/lance-mcp
Last synced: 10 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/adiom-data/lance-mcp
- Owner: adiom-data
- License: mit
- Created: 2024-12-28T08:39:33.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-02-07T17:30:27.000Z (4 months ago)
- Last Synced: 2025-06-09T01:57:57.129Z (12 days ago)
- Language: TypeScript
- Size: 566 KB
- Stars: 57
- Watchers: 1
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- mcp-index - LanceDB - Interact with on-disk documents through retrieval-augmented generation (RAG) and hybrid search capabilities in LanceDB. (Note-Taking and Knowledge Bases)
README
# 🗄️ LanceDB MCP Server for LLMS
[](https://nodejs.org/en/)
[](https://opensource.org/licenses/MIT)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.
## ✨ Features
- 🔍 LanceDB-powered serverless vector index and document summary catalog.
- 📊 Efficient use of LLM tokens. The LLM itself looks up what it needs when it needs.
- 📈 Security. The index is stored locally so no data is transferred to the Cloud when using a local LLM.## 🚀 Quick Start
To get started, create a local directory to store the index and add this configuration to your Claude Desktop config file:
**MacOS**: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json````json
{
"mcpServers": {
"lancedb": {
"command": "npx",
"args": [
"lance-mcp",
"PATH_TO_LOCAL_INDEX_DIR"
]
}
}
}
```### Prerequisites
- Node.js 18+
- npx
- MCP Client (Claude Desktop App for example)
- Summarization and embedding models installed (see config.ts - by default we use Ollama models)
- `ollama pull snowflake-arctic-embed2`
- `ollama pull llama3.1:8b`### Demo
#### Local Development Mode:
```json
{
"mcpServers": {
"lancedb": {
"command": "node",
"args": [
"PATH_TO_LANCE_MCP/dist/index.js",
"PATH_TO_LOCAL_INDEX_DIR"
]
}
}
}
```
Use `npm run build` to build the project.Use `npx @modelcontextprotocol/inspector dist/index.js PATH_TO_LOCAL_INDEX_DIR` to run the MCP tool inspector.
### Seed Data
The seed script creates two tables in LanceDB - one for the catalog of document summaries, and another one - for vectorized documents' chunks.
To run the seed script use the following command:
```console
npm run seed -- --dbpath --filesdir
```You can use sample data from the docs/ directory. Feel free to adjust the default summarization and embedding models in the config.ts file. If you need to recreate the index, simply rerun the seed script with the `--overwrite` option.
#### Catalog
- Document summary
- Metadata#### Chunks
- Vectorized document chunk
- Metadata## 🎯 Example Prompts
Try these prompts with Claude to explore the functionality:
```plaintext
"What documents do we have in the catalog?"
"Why is the US healthcare system so broken?"
```## 📝 Available Tools
The server provides these tools for interaction with the index:
### Catalog Tools
- `catalog_search`: Search for relevant documents in the catalog
### Chunks Tools
- `chunks_search`: Find relevant chunks based on a specific document from the catalog
- `all_chunks_search`: Find relevant chunks from all known documents## 📜 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.