DuckDB-RAG-MCP-Sample

by nananaman
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Uses DuckDB for vector search capabilities to enable retrieval augmented generation (RAG) from markdown documents

  • Processes markdown files by extracting text and converting it to vector embeddings for semantic search

DuckDB RAG MCP Sample

markdown ドキュメントを埋め込みベクトル化して、MCP から RAG で解説できるようにするサンプルです。

ベクトル化には Plamo-Embedding-1B を使用しています。

機能

  • markdown ファイルからテキスト抽出・ベクトル化
  • DuckDB を使用したベクトル検索
  • Parquet ファイルによるベクトルデータの永続化
  • MCP からベクトル検索

使用方法

ベクトルデータ生成

最初に検索対象にしたい markdown ファイルを特定のディレクトリに配置し、以下のコマンドで Parquet ファイルに変換してください。

uv run main.py --directory ~/path/to/markdown/files --parquet vectors.parquet

MCP の設定

ビルド

以下のコマンドでシングルバイナリが dist/server として生成されます。

uv run pyinstaller --clean --strip --noconfirm --onefile server.py

MCP のクライアント設定

利用したいクライアントに応じて設定してください。

Claude Desktop の場合は以下のような感じです。

VECTOR_PARQUET は先ほど変換したファイルを指定してください。

uv run mcp install server.py -v VECTOR_PARQUET=/path/to/vectors.parquet

以下のように設定されます。

{ "mcpServers": { "DuckDB-RAG-MCP-Sample": { "command": "/path/to/dist/server", "env": { "VECTOR_PARQUET": "/path/to/vectors.parquet" } } } }

開発用サーバー起動

uv run mcp dev server.py

ライセンス

DuckDB RAG MCP Sampleは、Apache License, Version 2.0の下で提供されています。

-
security - not tested
A
license - permissive license
-
quality - not tested

An MCP server that enables RAG (Retrieval-Augmented Generation) on markdown documents by converting them to embedding vectors and performing vector search using DuckDB.

  1. 機能
    1. 使用方法
      1. ベクトルデータ生成
      2. MCP の設定
      3. 開発用サーバー起動
    2. ライセンス
      ID: 1qfkx3fdax