DuckDB-RAG-MCP-Sample
by nananaman
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.parquetMCP の設定
ビルド
以下のコマンドでシングルバイナリが dist/server として生成されます。
uv run pyinstaller --clean --strip --noconfirm --onefile server.pyMCP のクライアント設定
利用したいクライアントに応じて設定してください。
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の下で提供されています。
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nananaman/DuckDB-RAG-MCP-Sample'
If you have feedback or need assistance with the MCP directory API, please join our Discord server