LanceDB

Interaja com documentos em disco usando RAG agentivo e busca híbrida via LanceDB.

Documentação

🗄️ Servidor MCP LanceDB para LLMs

Node.js 18+ License: MIT

Um servidor Model Context Protocol (MCP) que permite que LLMs interajam diretamente com os documentos que possuem em disco por meio de RAG agêntico e busca híbrida no LanceDB. Faça perguntas às LLMs sobre o conjunto de dados como um todo ou sobre documentos específicos.

✨ Recursos

  • 🔍 Índice vetorial serverless e catálogo de resumos de documentos baseado em LanceDB.
  • 📊 Uso eficiente de tokens de LLM. A própria LLM consulta o que precisa quando precisa.
  • 📈 Segurança. O índice é armazenado localmente, portanto nenhum dado é transferido para a nuvem ao usar uma LLM local.

🚀 Início Rápido

Para começar, crie um diretório local para armazenar o índice e adicione esta configuração ao seu arquivo de configuração do Claude Desktop:

MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "lancedb": {
      "command": "npx",
      "args": [
        "lance-mcp",
        "PATH_TO_LOCAL_INDEX_DIR"
      ]
    }
  }
}

Pré-requisitos

  • Node.js 18+
  • npx
  • Cliente MCP (aplicativo Claude Desktop, por exemplo)
  • Modelos de sumarização e embedding instalados (veja config.ts - por padrão usamos modelos Ollama)
    • ollama pull snowflake-arctic-embed2
    • ollama pull llama3.1:8b

Demonstração

Modo de Desenvolvimento Local:

{
  "mcpServers": {
    "lancedb": {
      "command": "node",
      "args": [
        "PATH_TO_LANCE_MCP/dist/index.js",
        "PATH_TO_LOCAL_INDEX_DIR"
      ]
    }
  }
}

Use npm run build para compilar o projeto.

Use npx @modelcontextprotocol/inspector dist/index.js PATH_TO_LOCAL_INDEX_DIR para executar o inspetor de ferramentas MCP.

Dados de Seed

O script de seed cria duas tabelas no LanceDB - uma para o catálogo de resumos de documentos e outra para os chunks vetorizados dos documentos. Para executar o script de seed, use o seguinte comando:

npm run seed -- --dbpath <PATH_TO_LOCAL_INDEX_DIR> --filesdir <PATH_TO_DOCS>

Você pode usar dados de exemplo do diretório docs/. Sinta-se à vontade para ajustar os modelos padrão de sumarização e embedding no arquivo config.ts. Se precisar recriar o índice, basta executar novamente o script de seed com a opção --overwrite.

Catálogo

  • Resumo do documento
  • Metadados

Chunks

  • Chunk de documento vetorizado
  • Metadados

🎯 Exemplos de Prompts

Experimente estes prompts com o Claude para explorar a funcionalidade:

"What documents do we have in the catalog?"
"Why is the US healthcare system so broken?"

📝 Ferramentas Disponíveis

O servidor fornece estas ferramentas para interação com o índice:

Ferramentas de Catálogo

  • catalog_search: Buscar documentos relevantes no catálogo

Ferramentas de Chunks

  • chunks_search: Encontrar chunks relevantes com base em um documento específico do catálogo
  • all_chunks_search: Encontrar chunks relevantes de todos os documentos conhecidos

📜 Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.