lance-mcp
Version:
MCP server for interacting with LanceDB database
27 lines (26 loc) • 1.12 kB
JavaScript
import * as lancedb from "@lancedb/lancedb";
import { LanceDB } from "@langchain/community/vectorstores/lancedb";
import { OllamaEmbeddings } from "@langchain/ollama";
import * as defaults from '../config.js';
export let client;
export let chunksTable;
export let chunksVectorStore;
export let catalogTable;
export let catalogVectorStore;
export async function connectToLanceDB(databaseUrl, chunksTableName, catalogTableName) {
try {
console.error(`Connecting to database: ${databaseUrl}`);
client = await lancedb.connect(databaseUrl);
chunksTable = await client.openTable(chunksTableName);
chunksVectorStore = new LanceDB(new OllamaEmbeddings({ model: defaults.EMBEDDING_MODEL }), { table: chunksTable });
catalogTable = await client.openTable(catalogTableName);
catalogVectorStore = new LanceDB(new OllamaEmbeddings({ model: defaults.EMBEDDING_MODEL }), { table: catalogTable });
}
catch (error) {
console.error("LanceDB connection error:", error);
throw error;
}
}
export async function closeLanceDB() {
await client?.close();
}