LanceDB

Interactúa con documentos en disco usando RAG agentivo y búsqueda híbrida a través de LanceDB.

Documentación

🗄️ Servidor MCP de LanceDB para LLMS

Node.js 18+ License: MIT

Un servidor de Model Context Protocol (MCP) que permite a los LLMs interactuar directamente con los documentos que tienen en disco a través de RAG agéntico y búsqueda híbrida en LanceDB. Haz preguntas a los LLMs sobre el conjunto de datos en su totalidad o sobre documentos específicos.

✨ Características

  • 🔍 Índice vectorial serverless impulsado por LanceDB y catálogo de resúmenes de documentos.
  • 📊 Uso eficiente de tokens de LLM. El propio LLM busca lo que necesita cuando lo necesita.
  • 📈 Seguridad. El índice se almacena localmente, por lo que no se transfieren datos a la nube cuando se utiliza un LLM local.

🚀 Inicio rápido

Para comenzar, crea un directorio local para almacenar el índice y añade esta configuración a tu archivo de configuración de 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"
      ]
    }
  }
}

Requisitos previos

  • Node.js 18+
  • npx
  • Cliente MCP (por ejemplo, la aplicación Claude Desktop)
  • Modelos de resumen y embedding instalados (ver config.ts - por defecto usamos modelos de Ollama)
    • ollama pull snowflake-arctic-embed2
    • ollama pull llama3.1:8b

Demostración

Modo de desarrollo local:

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

Usa npm run build para compilar el proyecto.

Usa npx @modelcontextprotocol/inspector dist/index.js PATH_TO_LOCAL_INDEX_DIR para ejecutar el inspector de herramientas MCP.

Datos semilla

El script de semilla crea dos tablas en LanceDB: una para el catálogo de resúmenes de documentos y otra para los fragmentos vectorizados de los documentos. Para ejecutar el script de semilla, usa el siguiente comando:

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

Puedes usar los datos de muestra del directorio docs/. No dudes en ajustar los modelos de resumen y embedding predeterminados en el archivo config.ts. Si necesitas recrear el índice, simplemente vuelve a ejecutar el script de semilla con la opción --overwrite.

Catálogo

  • Resumen del documento
  • Metadatos

Fragmentos

  • Fragmento de documento vectorizado
  • Metadatos

🎯 Ejemplos de indicaciones

Prueba estas indicaciones con Claude para explorar la funcionalidad:

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

📝 Herramientas disponibles

El servidor proporciona estas herramientas para interactuar con el índice:

Herramientas de catálogo

  • catalog_search: Busca documentos relevantes en el catálogo

Herramientas de fragmentos

  • chunks_search: Encuentra fragmentos relevantes basados en un documento específico del catálogo
  • all_chunks_search: Encuentra fragmentos relevantes de todos los documentos conocidos

📜 Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.