Token导航 LogoToken导航TokenDH.com
local RAG MCP logo
搜索检索stdio官方级别未说明来源级核验

local RAG MCP

MCP Server

一个基于Python的MCP代理,允许用户与本地Word和Excel文档进行问答,所有处理均在本地完成,确保数据隐私。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
本地处理PythonRAG

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ItsMistahJi

提供方

ItsMistahJi

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

本地_RAG_mcp

这是我尝试创建一个本地RAG mcp服务器来与本地.docx、.xlsx文件聊天。

与Ollama&MCP的本地文件问答

该项目提供了一个基于Python的MCP代理,允许您使用Ollama进行本地语言模型推理,与本地Word(.docx)和Excel(.xlsx)文档聊天,确保您的私人数据保留在您的计算机上。

它使用LangChain社区组件进行文档加载、文本分割、嵌入和向量存储(ChromaDB),以及 mcp-sdk 将此功能作为一组工具公开。

特征:

  • 私人和本地: 所有的处理、嵌入和语言模型推理都是通过Ollama在本地进行的。没有数据离开你的机器。
  • 支持的文档类型: 目前支持Microsoft Word(.docx)和Excel(.xlsx)文件。(可轻松扩展为PDF、.txt等格式)
  • 简单索引: 一个专用的MCP工具,用于扫描指定目录、处理文档并构建可搜索的矢量索引。
  • 自然语言问答: 用自然语言询问有关文档内容的问题。
  • MCP集成: 通过MCP工具公开功能,可用于 MCP检查员mcp-cli.

原理

  1. 文档加载: 代理扫描指定的本地文件夹以查找支持的文档。
  2. 文本分块: 文档内容被拆分为更小、可管理的块。
  3. 嵌入: 使用局部Ollama嵌入模型将每个块转换为数值表示(嵌入)(例如。, nomic-embed-text).
  4. 矢量存储: 这些嵌入及其相应的文本块存储在本地ChromaDB矢量存储中。
  5. 查询(RAG-检索增强生成):

- 当你问一个问题时,它也会被嵌入。 - 系统在向量存储中搜索嵌入与问题嵌入最相似的文档块。 - 这些相关块(上下文)与您的原始问题组合成提示。 - 该提示被发送到本地Ollama聊天模型(例如。, llama3)以生成答案。

先决条件

  1. python Python 3.9+
  2. 没有 : 你需要Ollama安装并运行。

- 安装: ollama.com - 确保奥利玛为模特提供服务。您可以通过运行来测试这一点 ollama list 在你的终端。

  1. 所需Olama型号:

- 拉动嵌入模型: ollama pull nomic-embed-text - 拉取聊天模式: ollama pull llama3

安装

  1. 克隆存储库(或下载脚本):
   # If you create a Git repository:
   # git clone https://github.com/ItsMistahJi/local_RAG_mcp
   # cd local_RAG_mcp
  1. 创建虚拟环境(推荐):
   python -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装Python依赖项:
   pip install -r requirements.txt

设置和使用

  1. 准备您的文件:

- 创建一个名为的文件夹 docs_simple 与位于同一目录中 server.py 脚本(或配置 DOC_DIR 在脚本中)。 - 放置您的 .docx.xlsx 将文件放入此 docs_simple 文件夹。

  1. 运行MCP代理脚本:

打开终端,导航到项目目录,然后运行:

   python server.py

脚本将启动,尝试连接到Ollama,然后等待MCP客户端连接(如MCP Inspector)。您将在此终端中看到日志输出。

  1. 使用MCP检查器进行交互(推荐):

- 下载并安装 MCP检查员. - 打开MCP检查器。 - 配置代理: - 如果未自动检测到代理,则可能需要手动添加它。 - 转到“文件”>“首选项”>“代理”(或类似部分)。 - 单击“添加”或“+”图标。 - 姓名: 给它一个描述性的名称(例如,“我的本地RAG代理”)。 - 命令: 输入完整命令以运行脚本: python /full/path/to/your/server.py. - 运输: 选择 stdio. - 保存配置。 - 连接和使用: - 回到主MCP检查器窗口,在列表中找到您配置的代理。 - 点击“连接”或其旁边的播放图标。MCP检查器将运行您的脚本。 - 连接后,您将看到可用的工具: - initialize_and_index:请先运行此工具。这不需要争论。它将处理以下文件 docs_simple 并在中创建本地矢量数据库 chroma_db_simple。检查代理的终端日志以了解进度。 - ask_question:索引完成后,使用此工具。这需要一个论点:

         {
           "question": "Your question about the documents here"
         }

代理将检索相关信息并生成答案。

  1. 使用互动 mcp-cli (备选方案):

确保你的Python脚本(server.py)是 已经在运行。 mcp-cli 将为每个命令启动它。

- 列出可用工具(可选检查):

     mcp tool list CompanyDocumentQA-Ollama --command "python server.py" --transport stdio

- 索引文件:

     mcp tool call CompanyDocumentQA-Ollama initialize_and_index --command "python server.py" --transport stdio

*(等待此操作完成。您将在终端中看到日志。)*

- 问一个问题:

     mcp tool call CompanyDocumentQA-Ollama ask_question '{"question": "What is the company policy on annual leave?"}' --command "python server.py" --transport stdio

脚本概述(server.py)

  • 配置: 文档目录、ChromaDB路径、Ollama模型等的顶部常量。
  • 辅助功能: 要加载和拆分文档,请初始化Ollama组件。
  • initialize_and_index (MCP工具):

- 负载 .docx.xlsx 文件夹。 - 将它们分割成块。 - 使用Ollama生成嵌入。 - 将块和嵌入存储在持久ChromaDB中。

  • ask_question (MCP工具):

- 回答用户问题。 - 嵌入问题。 - 从ChromaDB检索相关文档块。 - 构造一个包含问题和上下文的提示。 - 从Ollama LLM那里得到答案。

  • 主模块: 设置日志记录,初始化Ollama组件,并在上启动MCP代理服务器 stdio.

定制和未来增强功能

  • 更多文档类型: 添加PDF加载程序(PyPDFLoader),文本文件(TextLoader)等等,in load_documents_from_directory记住安装必要的软件包(例如。, pypdf, unstructured).
  • 不同型号: 改变 EMBEDDING_MODEL_NAMELLM_MODEL_NAME 使用其他Ollama型号。确保它们在本地被拉动。
  • 分块策略: 试验 chunk_sizechunk_overlap 在……里面 RecursiveCharacterTextSplitter 为了获得更好的结果。
  • 检索器选项: 修改 search_kwargs={"k": 3} 在……里面 ask_question 以检索更多/更少的块。如果需要,探索其他检索模式。
  • 快速工程: 在中优化提示模板 ask_question 以获得更好的LLM响应。
  • 错误处理: 加强错误处理和用户反馈。
  • Web UI(例如Streamlit/Gradio): 将MCP代理或其核心逻辑封装在一个简单的web UI中,以便非技术用户更容易访问,可能是通过让UI调用MCP代理工具。

故障排除

  • “找不到Ollama”/连接错误:

- 确保Ollama正在运行(ollama serve 或Ollama桌面应用程序)。 - 验证 OLLAMA_BASE_URL 脚本中的内容与Ollama设置相匹配(默认值为 http://localhost:11434). - 确保模型(nomic-embed-text, llama3)被拉动: ollama list.

  • “找不到文档”/“矢量存储为空”:

- 仔细检查 DOC_DIR 脚本中的路径,并确保它指向正确的文件夹。 - 确保您的文档文件位于该文件夹中,并且具有支持的扩展名(.docx、.xlsx)。 - 跑吧 initialize_and_index 工具。在索引过程中检查终端日志是否有错误。

  • mcp-cli 问题:

- 确保 mcp-cli 安装正确(pip install "mcp-cli[cli]"). - 使用完整 --command "python /path/to/script.py"--transport stdio 旗帜。

  • MCP检查员看不到代理:

- 确保您在MCP检查器首选项中正确配置了代理,并使用Python脚本的完整路径 stdio 运输。 - 确保MCP检查器尝试启动脚本时,脚本尚未运行。

目录标签

目录标签

本地处理PythonRAG本地部署文档问答OllamaMCP集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP