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の下で提供されています。
Recommend MCP Servers 💡
mcp_plexus
A secure, multi-tenant MCP server framework for building AI backend systems with external service integration
VolarTaskServer
Volar is an MCP server that acts as an orchestrator, helping users guide AI coding assistants by defining tasks, planning, reviewing, and executing code changes through detailed prompts.
0kenx/filesystem-mcp
A Python server implementing Model Context Protocol (MCP) for secure filesystem operations.
messageaid/mcp
An MCP server designed to support multiple message brokers, including RabbitMQ, Azure Service Bus, and SQS, providing queue and topic management.
tldv
Provides a Model Context Protocol (MCP) server for seamless interaction with the tl;dv API, enabling AI models and MCP clients to access, analyze, and derive insights from meetings across Google Meet, Zoom, and Microsoft Teams.
chunker-mcp
A MCP server that chunks source code files with LangChain and stores chunks in ChromaDB with line range metadata.