mcpField
R
Rag Starter

Rag Starter

本地服务
github.com/cstamigo-droid记忆与知识04 周前更新

关于 Rag Starter

Rag Starter 是面向文档问答应用的本地 RAG 服务,提供带引用的检索,并支持 MCP 与 FastAPI。它将文件索引到持久化的 Chroma 存储中,无需 API 密钥即可检索引用段落。

主要功能

  1. 01本地 ONNX MiniLM 嵌入
  2. 02导入 PDF、Markdown 和文本
  3. 03带引用的排序段落
  4. 04可选的引用答案生成
  5. 05持久化 Chroma 存储
  6. 06FastAPI 与 MCP 接口

适用场景

  1. 01针对文档文件夹提问
  2. 02为宿主 LLM 检索引用段落
  3. 03通过 HTTP 提供文档搜索
  4. 04更新文件后重新索引且不重复

MCP 相关

向 MCP 客户端提供 rag_ingest、rag_search 和 rag_answer 工具。搜索与检索无需 Anthropic API 密钥;答案生成可选。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

rag-starter — 与文档聊天(RAG),并附带引用

rag-starter MCP server

License: MIT Python MCP

开箱即用、适用于生产环境的入门项目,可将一组文档转化为带引用的问答服务。放入 PDF、Markdown 或文本文件,提出问题,即可获得以源文档为依据的回答——每条陈述都能追溯到对应的原文段落。

同一代码库提供两种接入方式:

  • MCP 服务——将其接入 Claude Desktop、Claude Code 或任意 MCP 主机,即可与文档聊天。
  • HTTP API(FastAPI)——可从任意应用调用。

一次构建,为每个客户端换肤。替换 data/ 文件夹,调整 config.py,即可发布。

有何不同

  • 默认无需密钥。 嵌入在本地运行(ONNX MiniLM)——无需 API 密钥、没有单次查询费用,还可离线运行。几秒钟内即可在任何地方进行演示。
  • 提供引用,不搞幻觉。 检索会返回按相关性排序并标注 [source#chunk] / [file.pdf p3] 的段落。找不到答案时会返回 "Not found in the documents",绝不捏造答案。
  • 可选答案合成。 设置 ANTHROPIC_API_KEY 后,它会生成带引用的答案;未设置时,则会返回段落供主机大模型回答。无论哪种方式,RAG 都能正常工作。
  • 幂等摄取。 重新摄取文件会原位更新,不会产生重复项。

快速开始

pip install -r requirements.txt          # or: pip install -e .
PYTHONUTF8=1 python tests/test_smoke.py   # proves retrieval works on the sample docs
作为 HTTP API 使用
rag-starter-api            # uvicorn on 127.0.0.1:8000
# then:
curl -X POST localhost:8000/ingest  -H "content-type: application/json" -d '{"path":"./data"}'
curl -X POST localhost:8000/search  -H "content-type: application/json" -d '{"query":"refund policy"}'
curl -X POST localhost:8000/answer  -H "content-type: application/json" -d '{"query":"how long is the refund window?"}'
作为 MCP 服务使用(Claude Desktop)

将以下内容添加到 claude_desktop_config.json → mcpServers:

{
  "rag-starter": {
    "command": "python",
    "args": ["-m", "rag_starter"],
    "cwd": "C:/path/to/rag-starter"
  }
}

重启 Claude Desktop,然后输入:“摄取文件夹 ./data”,再输入:“退款政策是什么?”

工具 / 端点

MCP 工具HTTP用途
rag_ingest(path)POST /ingest为单个文件或文件夹建立索引(txt/md/pdf)。
rag_search(query, k)POST /search返回排名前 k 的带引用段落(无需密钥)。
rag_answer(query, k)POST /answer返回带引用的答案(需密钥)或段落(无需密钥)。
—GET /health存活状态、已索引分块数量及嵌入后端。

配置

所有配置均位于 config.py 中(也可通过环境变量或 .env 设置——参见 .env.example):分块大小和重叠量、top-k、嵌入后端(default 表示本地,openai 表示 OpenAI)以及答案模型。为客户端换肤通常只需:替换 data/、设置 RAG_COLLECTION,然后重新摄取。

架构

documents ──ingest.py──> chunks(+citations) ──store.py──> Chroma (local, persistent)
                                                              │
question ─────────────────retrieve.py──> top-k cited passages┤
                                                              ├─> rag_search  (host LLM answers)
                                                  answer.py ──┴─> rag_answer  (server synthesizes, optional)

复用 mcp-factory 契约(Result、formatting、cache),因此可以与目录中的其他项目组合使用。

许可证

MIT。

评论

支持 Markdown

第一次接触 MCP?

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

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