mcpField
R
rag-vault

rag-vault

本地服务
github.com记忆与知识23 天前更新

关于 rag-vault

RAG Vault 是面向 AI 编码 Agent 的本地优先 RAG MCP 服务,用于搜索私有文档。它结合向量与关键词检索,支持常见文档格式,并提供网页界面和远程模式。

主要功能

  1. 01本地文档索引与嵌入
  2. 02向量与 BM25 混合搜索
  3. 03可选重排与查询扩展
  4. 04支持 PDF、DOCX、Markdown 等格式
  5. 05网页界面与 REST API
  6. 06支持 Stdio、HTTP/SSE 传输

适用场景

  1. 01搜索私有 API 规范和内部文档
  2. 02查找已索引文件中的精确错误码
  3. 03构建可搜索的研究论文集合

MCP 相关

向 MCP 客户端提供文档摄取、搜索、删除、列表、状态和反馈工具。支持 Stdio,以及远程 Streamable HTTP 和 SSE 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"robthepcguy-rag-vault": {
"command": "npx",
"args": [
"-y",
"@robthepcguy/rag-vault"
],
"env": {
"BASE_DIR": "<BASE_DIR>",
"DB_PATH": "<DB_PATH>",
"CACHE_DIR": "<CACHE_DIR>",
"MODEL_NAME": "<MODEL_NAME>",
"RAG_HYBRID_WEIGHT": "<RAG_HYBRID_WEIGHT>",
"RAG_GROUPING": "<RAG_GROUPING>"
}
}
}
}
启动命令npx -y @robthepcguy/rag-vault
需要配置的环境变量
BASE_DIRBase directory for document storage (defaults to current working directory)
DB_PATHPath to LanceDB database directory (defaults to ./lancedb/)
CACHE_DIRDirectory where Transformers.js models are cached (defaults to ./models/)
MODEL_NAMEEmbedding model name (defaults to Xenova/all-MiniLM-L6-v2)
RAG_HYBRID_WEIGHTKeyword boost strength for hybrid search. 0.0 = semantic only, 1.0 = keyword only. Default 0.6
RAG_GROUPINGGrouping mode: 'similar' (top group only) or 'related' (top 2 groups)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@robthepcguy/rag-vault1.5.3

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitnumber否
querystring是
explainboolean否

详细介绍

RAG Vault

License: MIT TypeScript MCP Registry

你的文档。你的设备。由你掌控。

RAG Vault 可以让 AI 编码助手搜索你的私人文档,例如 API 规范、研究论文和内部文档。一切都在本地运行,数据会留在你的设备上,除非你选择从远程 URL 拉取内容。

只需一条命令即可运行,设置简单,默认保护隐私。

为什么选择 RAG Vault?

痛点RAG Vault 解决方案
“我不想把文档放在别人的服务器上”默认情况下,一切都留在本地。索引或搜索时不会在后台调用云服务。
“语义搜索会漏掉精确的代码术语”使用 RRF 融合的混合搜索,并可选用交叉编码器重新排序
“设置需要 Docker、Python、数据库……”只需一条 npx 命令和一小段 MCP 配置。
“云 API 按查询次数收费”永久免费,无需订阅。

安全性

RAG Vault 内置了安全功能:

  • API 身份验证:可通过 RAG_API_KEY 设置 API 密钥
  • 速率限制:可以限制请求频率
  • CORS 控制:限制允许的来源
  • 安全标头:由 Helmet.js 提供保护

完整文档请参阅 SECURITY.md。

首次设置检查清单

添加 MCP 配置之前:

  1. 安装 Node.js 20 或更高版本。
  2. 选择一个文档目录,并将 BASE_DIR 设置为该路径。
  3. 确保 AI 工具进程可以读取 BASE_DIR。
  4. 编辑配置后,重启 AI 工具。

快速开始

对于 Cursor

添加到 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "local-rag": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:RobThePCGuy/rag-vault"],
      "env": {
        "BASE_DIR": "/path/to/your/documents"
      }
    }
  }
}

将 /path/to/your/documents 替换为实际的绝对路径。

对于 Claude Code

添加到项目目录中的 .mcp.json:

{
  "mcpServers": {
    "local-rag": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:RobThePCGuy/rag-vault"],
      "env": {
        "BASE_DIR": "./documents",
        "DB_PATH": "./documents/.rag-db",
        "CACHE_DIR": "./.cache",
        "RAG_EMBEDDING_DEVICE": "cpu",
        "RAG_HYBRID_WEIGHT": "0.6",
        "RAG_GROUPING": "related"
      }
    }
  }
}

或者通过 CLI 内联添加:

claude mcp add local-rag --scope user --env BASE_DIR=/path/to/your/documents -- npx -y github:RobThePCGuy/rag-vault
对于 Codex

添加到 ~/.codex/config.toml:

[mcp_servers.local-rag]
command = "npx"
args = ["-y", "github:RobThePCGuy/rag-vault"]

[mcp_servers.local-rag.env]
BASE_DIR = "/path/to/your/documents"
安装 Skills(可选)

如果你希望 AI 编写更好的查询并更准确地理解结果,请安装 RAG Vault skills:

# Claude Code (project-level - recommended for team projects)
npx github:RobThePCGuy/rag-vault skills install --claude-code

# Claude Code (user-level - available in all projects)
npx github:RobThePCGuy/rag-vault skills install --claude-code --global

# Codex (user-level)
npx github:RobThePCGuy/rag-vault skills install --codex

# Custom location
npx github:RobThePCGuy/rag-vault skills install --path /your/custom/path

Skills 会教 Claude 以下最佳实践:

  • 查询构造和扩展策略
  • 分数解读。在 boost 模式下,低于 0.3 表示匹配度较高,高于 0.5 则值得跳过。RRF 模式则根据排名评分。
  • 何时使用 ingest_file,何时使用 ingest_data
  • HTML 导入和 URL 处理

重启 AI 工具,然后开始对话:

You: "Ingest api-spec.pdf"
AI:  Successfully ingested api-spec.pdf (47 chunks)

You: "How does authentication work?"
AI:  Based on section 3.2, authentication uses OAuth 2.0 with JWT tokens...

就是这么简单。无需 Docker、无需 Python,也无需管理服务器基础设施。

Web 界面

RAG Vault 提供 Web UI,让你无需接触命令行即可管理文档。

启动 Web UI
npx github:RobThePCGuy/rag-vault web

在浏览器中打开 http://localhost:3000。

默认情况下,Web 服务器绑定到 127.0.0.1(环回地址),因此只有这台设备可以访问。要从网络上的其他设备使用它,请设置 RAG_BIND_HOST=0.0.0.0,并同时设置 RAG_API_KEY,因为 API 默认未经过身份验证。

可执行的操作
  • 上传文档:拖放 PDF、DOCX、Markdown、TXT、JSON、JSONL 和 NDJSON 文件
  • 即时搜索:输入查询并查看带有相关性分数的结果
  • 预览内容:点击任意结果,即可查看上下文中的完整文本块
  • 管理文件:查看所有已索引的文档,并删除不需要的文档
  • 切换数据库:创建并切换多个知识库
  • 监控状态:查看文档数量、内存用量和搜索模式
  • 导出/导入设置:备份和恢复你的知识库配置
  • 主题偏好:切换浅色、深色或系统主题
  • 文件夹浏览器:浏览目录以选择文档
REST API

Web 服务器提供可直接调用的 REST API。设置 RAG_API_KEY 可要求进行身份验证:

# With authentication (when RAG_API_KEY is set)
curl -X POST "http://localhost:3000/api/v1/search" \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"query": "authentication", "limit": 5}'

# Search documents (no auth needed if RAG_API_KEY isn't set)
curl -X POST "http://localhost:3000/api/v1/search" \
  -H "Content-Type: application/json" \
  -d '{"query": "authentication", "limit": 5}'

# List all files
curl "http://localhost:3000/api/v1/files"

# Upload a document
curl -X POST "http://localhost:3000/api/v1/files/upload" \
  -F "[email protected]"

# Delete a file
curl -X DELETE "http://localhost:3000/api/v1/files" \
  -H "Content-Type: application/json" \
  -d '{"filePath": "/path/to/spec.pdf"}'

# Get system status
curl "http://localhost:3000/api/v1/status"

# Health check (for load balancers)
curl "http://localhost:3000/api/v1/health"
Reader API 端点

这些端点可用于读取文档并查找文档之间的关联:

# Get all chunks for a document (ordered by index)
curl "http://localhost:3000/api/v1/documents/chunks?filePath=/path/to/doc.pdf"

# Find related chunks for cross-document discovery
curl "http://localhost:3000/api/v1/chunks/related?filePath=/path/to/doc.pdf&chunkIndex=0&limit=5"

# Batch request for multiple chunks (efficient for UIs)
curl -X POST "http://localhost:3000/api/v1/chunks/batch-related" \
  -H "Content-Type: application/json" \
  -d '{"chunks": [{"filePath": "/path/to/doc.pdf", "chunkIndex": 0}], "limit": 3}'

远程模式

RAG Vault 也可以作为 HTTP 服务器运行,让 Claude.ai、Claude Desktop 等远程 MCP 客户端,或任何支持 Streamable HTTP 或 SSE 的客户端连接到它。

# Start remote server (default port 3001)
npx github:RobThePCGuy/rag-vault --remote

# Custom port
npx github:RobThePCGuy/rag-vault --remote --port 8080

Stdio 模式保持不变。只需省略 --remote,即可像之前一样使用 Cursor、Claude Code 和 Codex。

从 Claude Desktop 连接

在 Claude Desktop 配置中添加:

{
  "mcpServers": {
    "rag-vault-remote": {
      "type": "url",
      "url": "http://localhost:3001/mcp"
    }
  }
}

也可以通过 Claude Code CLI 添加:

claude mcp add --transport http rag-vault http://localhost:3001/mcp
从 Claude.ai 连接

对于 Claude.ai(Pro/Max/Team/Enterprise),将其添加为自定义连接器,URL 为 https://your-host:3001/mcp。如需本地开发,请使用隧道公开服务器:

cloudflared tunnel --url http://localhost:3001

远程服务默认也会绑定到 127.0.0.1(环回地址)。若要直接接受来自其他机器的连接,请设置 RAG_BIND_HOST=0.0.0.0。在将服务器公开到环回地址之外时(包括通过隧道公开),请设置 RAG_API_KEY 进行身份验证。服务器支持 Streamable HTTP(/mcp)和旧版 SSE(/sse)传输方式,并在 /health 提供健康检查。

实际示例

搜索代码库文档
You: "Ingest all the markdown files in /docs"
AI:  Ingested 23 files (847 chunks total)

You: "What's the retry policy for failed API calls?"
AI:  According to error-handling.md, failed requests retry 3 times
     with exponential backoff: 1s, 2s, 4s...
为 Web 文档建立索引
You: "Fetch https://docs.example.com/api and ingest the HTML"
AI:  Ingested "docs.example.com/api" (156 chunks)

You: "What rate limits apply to the /users endpoint?"
AI:  The API limits /users to 100 requests per minute per API key...
构建个人知识库
You: "Ingest my research papers folder"
AI:  Ingested 12 PDFs (2,341 chunks)

You: "What do recent studies say about transformer attention mechanisms?"
AI:  Based on attention-mechanisms-2024.pdf, the key finding is...
搜索精确技术术语

RAG Vault 的混合搜索兼顾含义和精确匹配:

You: "Search for ERR_CONNECTION_REFUSED"
AI:  Found 3 results mentioning ERR_CONNECTION_REFUSED:
     1. troubleshooting.md - "When you see ERR_CONNECTION_REFUSED..."
     2. network-errors.pdf - "Common causes include..."

纯语义搜索会漏掉这类内容,而 RAG Vault 可以找到它。

工作原理

Document → Parse → Chunk by meaning → Embed locally → Store in LanceDB
                         ↓
Query → Embed → Vector search + BM25 → Fusion → Optional reranking → Results

智能分块:按含义而非字符数拆分,并保持代码块完整。

混合搜索:提供两种融合模式,将向量相似度与 BM25 关键词匹配结合起来:

  • 增强模式(默认):BM25 以乘法方式增强向量搜索距离。简单且可预测。
  • RRF 模式(通过 RAG_SEARCH_MODE=rrf 启用):倒数排名融合 将向量搜索和 BM25 视为独立的投票者。这可以找出仅靠向量搜索会漏掉的文档。

交叉编码器重排(可选启用):首轮搜索后,交叉编码器模型(Xenova/ms-marco-MiniLM-L-6-v2,约 23MB)会对每个(查询、段落)组合进行评分,从而更精确地排序相关性。设置 RAG_RERANKER_ENABLED=true 即可启用。

查询扩展(可选启用):当搜索内容采用释义或概念化表达时,生成改写后的查询以提高召回率。提供两种后端:基于本地模板的扩展(默认,完全离线),或通过外部 API 使用基于大模型的 HyDE。设置 RAG_HYDE_ENABLED=true 即可启用。

质量过滤:根据相关性差距对结果分组,而非采用随意设定的前 K 个结果截断方式。

默认本地运行:通过 Transformers.js 生成嵌入,使用 LanceDB 存储。只有在首次下载模型或明确摄取远程 URL 时才需要联网。

内置 MCP 工具:query_documents、ingest_file、ingest_data、delete_file、list_files、status、feedback_pin、feedback_dismiss 和 feedback_stats。

支持的格式

格式扩展名说明
PDF.pdf提取完整文本,并过滤页眉和页脚
Word.docx保留表格、列表和格式
Markdown.md保持代码块完整
文本.txt纯文本
JSON.json转换为可搜索的键值文本
JSONL / NDJSON.jsonl、.ndjson逐行解析日志和结构化记录
HTML通过 ingest_data使用 Readability 自动清理

配置

环境变量
变量默认值作用
BASE_DIR当前目录只能访问此路径下的文件
DB_PATH./lancedb/向量的存储位置
CACHE_DIR./models/模型缓存目录
MODEL_NAMEXenova/all-MiniLM-L6-v2HuggingFace 嵌入模型
MAX_FILE_SIZE104857600(100 MB)可摄取的最大文件
RAG_EMBEDDING_DEVICEauto运行嵌入的设备:auto、cpu、cuda、dml、webgpu、wasm、gpu、webnn
WEB_PORT3000Web 界面的端口
UPLOAD_DIR./uploads/Web UI 文件上传的临时目录

Windows 用户: RAG_EMBEDDING_DEVICE=auto 会尝试使用 GPU 提供程序(DirectML),如果没有可用的 ONNX Runtime GPU 二进制文件,可能会失败。如果看到嵌入初始化错误,请在 MCP 配置中设置 RAG_EMBEDDING_DEVICE=cpu,以确保可靠运行。详情请参阅 GPU 加速常见问题。

单命令覆盖(无需编辑 .env):

# MCP mode
npx github:RobThePCGuy/rag-vault --embedding-device cpu

# Web mode
npx github:RobThePCGuy/rag-vault web --embedding-device dml

# Explicitly force auto detection
npx github:RobThePCGuy/rag-vault --gpu-auto
搜索调优
变量默认值作用
RAG_SEARCH_MODEboost融合模式:boost(乘法关键词加权)或 rrf(倒数排名融合)
RAG_HYBRID_WEIGHT0.6向量与 BM25 之间的权重。0 = 仅向量,1.0 = 仅 BM25
RAG_RRF_K60RRF 平滑常数(仅适用于 rrf 模式)。行业标准值为 60。
RAG_GROUPING未设置质量筛选:similar = 仅保留排名最高的分组,related = 保留排名前 2 的分组
RAG_MAX_DISTANCE未设置丢弃相关性低于此阈值的结果(与 boost 模式搭配使用;rrf 分数基于排名)
RAG_GROUPING_STD_MULTIPLIER1.5组间达到多少个标准差才算相关性差距
RAG_HYBRID_CANDIDATE_MULTIPLIER2关键词重排前额外获取的向量候选项数量
RAG_FTS_MAX_FAILURES3临时禁用 FTS 前允许的全文搜索失败次数
RAG_FTS_COOLDOWN_MS300000(5 分钟)达到失败上限后,重试 FTS 前的等待时间
Cross-Encoder 重排(可选启用)
变量默认值作用
RAG_RERANKER_ENABLEDfalse启用 cross-encoder 重排以改善结果
RAG_RERANKER_MODELXenova/ms-marco-MiniLM-L-6-v2HuggingFace cross-encoder 模型(约 23MB ONNX,首次使用时下载)
RAG_RERANKER_CANDIDATE_MULTIPLIER2为重排器评分额外获取的候选项数量
RAG_RERANKER_DEVICEauto重排器使用的设备(选项与 RAG_EMBEDDING_DEVICE 相同)
RERANKER_INIT_TIMEOUT_MS600000(10 分钟)模型下载和初始化的超时时间
查询扩展 / HyDE(可选启用)
变量默认值作用
RAG_HYDE_ENABLEDfalse启用查询扩展以提高召回率
RAG_HYDE_BACKENDrule-basedrule-based 用于本地模板扩展,api 用于基于 LLM 的 HyDE
RAG_HYDE_EXPANSIONS2要生成的扩展查询数量
RAG_HYDE_API_KEY未设置LLM 后端的 API 密钥(RAG_HYDE_BACKEND=api 时必需)
RAG_HYDE_API_BASE_URLhttps://api.anthropic.comLLM 后端的 API 端点
RAG_HYDE_API_MODELclaude-haiku-4-5-20251001用于基于 LLM 的扩展的模型

隐私提示: api 后端会将查询文本发送到外部 LLM 端点,因此无法保证“零云端”运行。默认的 rule-based 后端完全在本地运行。

安全(可选)
变量默认值说明
RAG_API_KEYunset用于身份验证的 API 密钥
RAG_BIND_HOST127.0.0.1Web/远程服务绑定的接口。默认仅限环回地址;设置为 0.0.0.0 可在网络上公开(仅在已设置 RAG_API_KEY 时这样做)。RAG_HOST 是其别名。
CORS_ORIGINSlocalhost允许的源(以逗号分隔,或设为 *)
RATE_LIMIT_WINDOW_MS60000速率限制时间窗口(毫秒)
RATE_LIMIT_MAX_REQUESTS100每个窗口内的最大请求数
高级设置
变量默认值说明
ALLOWED_SCAN_ROOTSHome directory允许扫描数据库的目录
JSON_BODY_LIMIT5mb请求正文大小上限
REQUEST_TIMEOUT_MS30000API 请求超时时间
REQUEST_LOGGINGfalse启用请求审计日志

复制 .env.example 获取完整的配置模板。

对于代码内容较多的内容,请尝试:

"env": {
  "RAG_HYBRID_WEIGHT": "0.8",
  "RAG_GROUPING": "similar"
}

常见问题

我的数据真的安全吗?

对于本地文件,是的。嵌入模型下载完成后(约 90MB),索引和搜索都会在你的计算机上运行。只有在选择远程 URL 导入或需要下载模型时,RAG Vault 才会访问网络。

它能离线使用吗?

可以,首次运行后即可离线使用。模型会缓存在本地。

GPU 加速呢?

默认情况下,RAG Vault 会自动选择设备(RAG_EMBEDDING_DEVICE=auto)。正确配置 GPU 提供程序后,可以加快嵌入生成速度。

重要提示: 在 Windows 上,auto 会尝试使用 DirectML(dml),这需要 ONNX Runtime GPU 二进制文件。如果未安装这些二进制文件,或者 GPU 配置不完整,服务将无法启动,也不会平稳回退到 CPU。在没有 CUDA 二进制文件的 Linux 上也是如此。

建议: 如果遇到嵌入初始化错误,请在 MCP 配置中设置 RAG_EMBEDDING_DEVICE=cpu。CPU 模式在所有平台上都可靠,而且对于大多数工作负载而言速度足够快(默认模型仅约 90MB)。

"env": {
  "RAG_EMBEDDING_DEVICE": "cpu"
}

支持的设备值:auto、cpu、cuda、dml、gpu、wasm、webgpu、webnn、webnn-npu、webnn-gpu、webnn-cpu。也接受别名 directml,并将其映射为 dml。

我可以更换嵌入模型吗?

可以。将 MODEL_NAME 设置为任何兼容的 HuggingFace 模型。你需要删除 DB_PATH 并重新导入数据,因为不同模型生成的向量彼此不兼容。

推荐升级: 如需更高质量和多语言支持,请使用 EmbeddingGemma:

"MODEL_NAME": "onnx-community/embeddinggemma-300m-ONNX"

如果你需要多语言支持或更高质量的检索,这是一个不错的选择。

其他专用模型:

  • 科学:sentence-transformers/allenai-specter
  • 代码:jinaai/jina-embeddings-v2-base-code
如何备份数据?

复制 DB_PATH 目录(默认值:./lancedb/)。

## 故障排除
问题解决方案
未找到结果需要先摄取文档。运行“列出所有已摄取的文件”进行检查。
模型下载失败请检查网络连接。该模型在 HuggingFace 上约为 90MB。
嵌入初始化失败在 MCP 配置中设置 RAG_EMBEDDING_DEVICE=cpu。在没有 GPU 二进制文件的 Windows 上,默认的 auto 可能会失败。
Protobuf parsing failed模型缓存已损坏。删除 CACHE_DIR(默认值:./models/)并重启。RAG Vault 还会自动使用隔离的恢复缓存重试。
文件过大默认限制为 100MB。提高 MAX_FILE_SIZE,或拆分文件。
路径位于 BASE_DIR 之外所有文件路径都必须位于 BASE_DIR 下。请使用绝对路径。
未显示 MCP 工具检查配置语法,并完全重启 AI 工具(Mac 上按 Cmd+Q)。
mcp-publisher login github 因 slow_down 失败改用令牌登录:mcp-publisher login github --token "$(gh auth token)"(或传入 PAT)。
401 未授权需要 API 密钥。设置 RAG_API_KEY,或使用正确的请求头格式。
429 请求过多请求受到速率限制。等待限制重置,或提高 RATE_LIMIT_MAX_REQUESTS。
CORS 错误将你的来源添加到 CORS_ORIGINS 环境变量中。

开发

git clone https://github.com/RobThePCGuy/rag-vault.git
cd rag-vault
pnpm install
pnpm -C web-ui install

# Install local git hooks (recommended, even for solo dev)
pnpm hooks:install

# Fast local quality gate (backend + web-ui type/lint/format, deps, unused, build, unit tests)
pnpm check:all

# Unit tests only (no model download required)
pnpm test:unit

# Integration/E2E tests (requires model download/network)
pnpm test:integration

# Build
pnpm build

# Run MCP server locally (stdio)
pnpm dev

# Run MCP server locally (remote HTTP + SSE)
pnpm dev:remote

# Run web server locally
pnpm web:dev

# Release to npm (local, guarded)
pnpm release          # patch
pnpm release:minor
pnpm release:major
pnpm release:dry
测试层级
  • pnpm test:unit:用于本地/CI 质量检查的确定性测试。不包含模型下载集成路径。
  • pnpm test:integration:完整的集成和 E2E 工作流,包括嵌入模型初始化。

使用 RUN_EMBEDDING_INTEGRATION=1,明确启用依赖网络/模型的测试套件。

发布策略
  • 发布在本地进行,并通过 scripts/release-npm.sh 脚本执行。
  • 支持的版本升级类型:patch、minor、major。
  • 脚本会先运行依赖安装、pnpm check:all 和 pnpm ui:build,然后再修改版本文件。
  • 只有在检查通过后,才会更新 package.json 和 server.json 中的版本;如果后续任何步骤失败,这些文件会自动还原。
  • pnpm release:dry 会运行完整的发布检查,并执行 npm dry-run 发布,且始终还原版本文件。
项目结构
src/
├── bin/             # CLI subcommands (skills install)
├── chunker/         # Semantic text splitting
├── embedder/        # Transformers.js wrapper
├── errors/          # Error handling utilities
├── explainability/  # Keyword-based result explanations
├── flywheel/        # Feedback loop (pin/dismiss reranking)
├── hyde/            # Query expansion + HyDE (LLM-based)
├── parser/          # PDF, DOCX, HTML parsing
├── query/           # Advanced query syntax parser
├── reranker/        # Cross-encoder reranking (Transformers.js)
├── server/          # MCP tool handlers + remote transport
├── utils/           # Config, file helpers, process handlers
├── vectordb/        # LanceDB + hybrid search (boost + RRF)
└── web/             # Express server + REST API

web-ui/              # React frontend (Vite + Tailwind)

文档

许可证

MIT:可免费用于个人和商业用途。

致谢

使用 Model Context Protocol、LanceDB 和 Transformers.js 构建。

最初是 Shinsuke Kagawa 的 mcp-local-rag 分支。现在它已经发展成独立项目。 非常感谢上游贡献者奠定基础,我在此基础上进行了大量迭代。 始终坚持本地优先的开发工具。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。