LanceDB について
LanceDBは、LanceDBとOllamaの埋め込みモデルを使う開発者向けのNode.jsベクトル検索サンプルです。独自の埋め込み関数と、保存文書の類似検索を示します。
主な機能
- 01LanceDBデータベースへの接続
- 02Ollamaによる埋め込みの作成
- 03文書のベクトル類似検索
- 04検索結果と類似度スコアの表示
活用シーン
- 01LanceDBから類似文書を検索
- 02Ollamaが生成するテキスト埋め込みのテスト
- 03文書検索結果の類似度を確認
MCP 対応
MCPサービスとして設定でき、MCPクライアントの設定から接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LanceDB Node.js ベクトル検索
LanceDB と Ollama の埋め込みモデルを使用した、Node.js によるベクトル検索の実装です。
概要
このプロジェクトでは、次の方法を紹介します。
- LanceDB データベースに接続する
- Ollama を使用してカスタム埋め込み関数を作成する
- 保存されたドキュメントに対してベクトル類似度検索を実行する
- 検索結果を処理して表示する
前提条件
- Node.js(v14 以降)
nomic-embed-textモデルを使用してローカルで実行中の Ollama- 読み取り/書き込み権限のある LanceDB のストレージ場所
インストール
- リポジトリをクローンします
- 依存関係をインストールします。
pnpm install
依存関係
@lancedb/lancedb:Node.js 用の LanceDB クライアントapache-arrow:列指向データの処理用node-fetch:Ollama への API 呼び出し用
使用方法
ベクトル検索のテストスクリプトを実行します。
pnpm test-vector-search
または、直接実行します。
node test-vector-search.js
設定
スクリプトは次の場所に接続します。
- 設定されたパスにある LanceDB
http://localhost:11434/api/embeddingsにある Ollama API
MCP の設定
MCP サービスとして Claude Desktop と統合するには、次の内容を MCP 設定 JSON に追加します。
{
"mcpServers": {
"lanceDB": {
"command": "node",
"args": [
"/path/to/lancedb-node/dist/index.js",
"--db-path",
"/path/to/your/lancedb/storage"
]
}
}
}
パスは実際のインストール先に置き換えてください。
/path/to/lancedb-node/dist/index.js- コンパイル済みの index.js ファイルへのパス/path/to/your/lancedb/storage- LanceDB のストレージディレクトリへのパス
カスタム埋め込み関数
このプロジェクトには、次の処理を行うカスタム OllamaEmbeddingFunction が含まれています。
- Ollama API にテキストを送信する
- 768 次元の埋め込みを受け取る
- LanceDB で使用できる形式に整える
ベクトル検索の例
この例では、「ai-rag」テーブルから「how to define success criteria」を検索し、類似度スコアとともに結果を表示します。
ライセンス
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。