DuckDB-RAG-MCP 文档检索工具
一种MCP服务器,通过将markdown文档转换为嵌入向量并使用DuckDB进行向量搜索,从而实现RAG(检索增强生成)。
服务介绍
DuckDB RAG MCP 示例
这是一个将 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 示例是在 Apache License, Version 2.0 下提供的。