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

rag MCP example

MCP Server

一个本地化的代码检索与生成工具,通过ChromaDB索引代码库并支持RAG技术查询,可选与Ollama服务器集成进行自然语言回答生成。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude开发工具Claude

安装说明

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

作者 / 组织

EvitecAntti

提供方

EvitecAntti

最后核验

2026/5/17 20:19

运行时

Python

快速接入

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

命令预览

python -m venv .venv

详细介绍

ChromaDB代码RAG助手

此存储库现在提供了两个小型命令行助手:一个将源代码目录索引到 色度数据库,以及使用检索增强生成(RAG)技术持久化收集的其他查询。所有内容都保持在本地——文件被分块、嵌入并存储在磁盘上——您可以选择让远程Ollama服务器从检索到的上下文中合成自然语言答案。如果没有LLM,查询工具仍然会显示最相关的块,因此您可以手动回答。

安装

python -m venv .venv
.\.venv\Scripts\activate  # PowerShell on Windows
pip install -r requirements.txt

用法

有两个入口点:

  • chromadb_code_rag.py -处理摄取/索引。
  • query_tool.py -执行检索(以及可选的LLM合成)。
  • list_chroma_rows.py -检查存储在集合中的原始行/文档。

1.取一个目录

python chromadb_code_rag.py path\to\your\repo --reset

重要标志:

  • --db-dir:存储持久数据库的位置(默认 .chromadb/).
  • --collection:数据集的唯一名称(默认值 code-rag).
  • --extensions:以逗号分隔的要包含的文件扩展名列表。默认值包括流行语言和 json, yaml, toml, md.
  • --chunk-lines / --chunk-overlap:控制块大小和行重叠(默认值40/10)。
  • --max-file-mb:跳过非常大的文件(默认值 2 MB)。
  • --reset:在重新摄入之前丢弃现有的集合。

2.问一个问题

python query_tool.py "How is authentication handled?"

旗帜:

  • --top-k:要检索的块数(默认值 5).
  • --ollama-model:当提供时(例如。, llama3)脚本将检索到的上下文发送到Ollama服务器进行答案合成。
  • --ollama-url:Ollama实例的基本URL(默认 http://localhost:11434).需要时将其指向远程主机,例如。 http://10.0.0.5:11434.
  • --ollama-max-tokens:Ollama回应的上限(num_predict,默认值 400).

如果你忽略了 --ollama-model,该工具会打印排名后的块以及在代码库中查找位置的快速摘要。这仍然为您提供了一个完全离线的有用检索工作流。

3.检查存储行

python list_chroma_rows.py --limit 10 --show-docs

旗帜:

  • --limit / --offset:对存储的行进行分页(默认20/0)。
  • --show-docs:除了元数据外,还包括实际的块文本。
  • --json:发出一个可以导入的JSON blob jq 或其他工具。

示例流程

# 1. Index the repo (only needs to happen when files change)
python chromadb_code_rag.py . --chunk-lines 60 --chunk-overlap 15 --reset

# 2. Ask questions locally
python query_tool.py "Where are database connections created?" --top-k 3

# 3. (Optional) Let a remote Ollama host draft an answer
python query_tool.py --ollama-url localhost:11434 --ollama-model gpt-oss:20b-cloud "Which are the cities that are in this simulation?"

运作原理

  1. 分块 -文件被拆分为可配置行数的重叠窗口,以便嵌入捕获足够的上下文。
  2. 嵌入 -使用ChromaDB DefaultEmbeddingFunction,它捆绑了一个轻量级的SentenceTransformer,不需要外部服务。
  3. 存储 -块存在于持久的Chroma集合中,因此只有在代码发生更改时才能摄取。
  4. 检索 -查询嵌入了相同的模型;最近邻提供最佳匹配的代码片段以及文件/行引用。
  5. 合成(可选) -将检索到的上下文发送到Ollama服务器以获取完整的自然语言答案,或自己查看代码片段。

因为每个脚本都是一个单独的、作用域良好的Python文件,所以你可以很容易地调整它们——例如交换另一个嵌入模型,过滤其他文件类型,或者将它们连接到更大的自动化或CI管道中。

MCP服务器(实验)

该回购还提供 主控程序 服务器(chromadb_mcp_server.py)建造于 FastMCP。它将现有的Chroma工作流作为一流的MCP工具公开,因此Claude等桌面客户端可以直接从本地数据库请求上下文。

可用工具:

  • list_collections --枚举持久的Chroma集合及其行数。
  • query_codebase --嵌入一个自然语言问题,并返回最匹配的块和一个快速摘要。
  • list_rows --检查集合中的原始行/文档(有助于调试摄入的内容)。

运行服务器

  1. 安装依赖项(pip install -r requirements.txt).
  2. 确保您已经通过以下方式摄入了目标存储库 chromadb_code_rag.py.
  3. 启动服务器:
   python chromadb_mcp_server.py
  1. 将MCP兼容客户端指向脚本。例如,在 claude_desktop_config.json:
   {
     "mcpServers": {
       "code-rag": {
         "command": "python",
         "args": [
           "C:/absolute/path/to/mcp_example/chromadb_mcp_server.py"
         ]
       }
     }
   }

Claude(或另一个MCP客户端)现在可以呼叫 list_collections, query_codebase,以及 list_rows 通过STDIO,检索与 query_tool.py 打印到控制台。

安装到Codex

将此添加到Codex的config.toml中

[mcp_servers.code_rag]
command = "/rag_mcp_example/.venv/Scripts/python.exe"
args = ["/rag_mcp_example/chromadb_mcp_server.py"]

目录标签

目录标签

PythonClaude开发工具代码检索本地部署本地化处理RAG技术自然语言生成

支持客户端

Claude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP