nananaman

DuckDB RAG MCP Sample

Community nananaman
Updated

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の下で提供されています。

MCP Server · Populars

MCP Server · New

    chatmcp

    mcpso

    directory for Awesome MCP Servers

    Community chatmcp
    TBXark

    MCP Proxy Server

    An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.

    Community TBXark
    ttommyth

    interactive-mcp

    Ask users questions from your LLM! interactive-mcp: Local, cross-platform MCP server for interactive prompts, chat & notifications.

    Community ttommyth
    lpigeon

    ros-mcp-server

    The ROS MCP Server is designed to support robots in performing complex tasks and adapting effectively to various environments by providing a set of functions that transform natural language commands, entered by a user through an LLM, into ROS commands for robot control.

    Community lpigeon
    emicklei

    melrose-mcp

    interactive programming of melodies, producing MIDI

    Community emicklei