Back to MCP directory
publicPublicdnsLocal runtime

DuckDB-RAG-MCP-Sample

一个使用DuckDB和Plamo-Embedding-1B实现RAG功能的项目,支持markdown文件向量化存储和检索,并提供MCP服务接口。

article

README

🚀 鸭子DB RAG MCP 示例

本示例项目可将 Markdown 文档进行嵌入向量化,并通过 RAG 方法使用 MCP 对其进行解释。向量化采用 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 提供。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client