Token导航 LogoToken导航TokenDH.com
Ollqd (Leomarviegas) logo
搜索检索stdio官方级别未说明来源级核验

Ollqd (Leomarviegas)

MCP Server

Ollqd是一个本地优先的RAG系统,通过Ollama嵌入将代码库和文档索引到Qdrant中,并通过MCP协议暴露给AI助手进行代码搜索。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude代码索引Claude DesktopClaude

安装说明

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

作者 / 组织

leomarviegas

提供方

leomarviegas

最后核验

2026/5/17 20:22

快速接入

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

命令预览

pip install -e ".[client,dev]"

详细介绍

Ollqd——MCP客户端-服务器RAG系统

本地第一个RAG系统,将代码库和文档索引到 Qdrant 使用 奥拉玛 嵌入。揭露一切 主控程序 (模型上下文协议),因此AI助手可以通过工具调用搜索您的代码。

建筑

┌──────────────────────────────────────────────────────────────────┐
│  User Interface                                                  │
│  ┌─────────────┐  ┌─────────────────────────────────────────┐   │
│  │ ollqd-chat   │  │ Claude Desktop / any MCP host           │   │
│  │ (CLI / REPL) │  │ (connects to ollqd-server directly)     │   │
│  └──────┬───────┘  └────────────────┬────────────────────────┘   │
└─────────┼──────────────────────────┼────────────────────────────┘
          │ stdio JSON-RPC           │ stdio JSON-RPC
┌─────────▼──────────────────────────▼────────────────────────────┐
│  Ollqd MCP Server (FastMCP)                                     │
│  ┌───────────────┐ ┌─────────────────┐ ┌─────────────────────┐  │
│  │index_codebase │ │index_documents  │ │semantic_search      │  │
│  │index docs     │ │markdown/text/rst│ │embed query → Qdrant │  │
│  └───────┬───────┘ └────────┬────────┘ └──────────┬──────────┘  │
│  ┌───────┴──────┐  ┌───────┴────────┐             │             │
│  │list_collections│ │delete_collection│             │             │
│  └──────────────┘  └────────────────┘             │             │
└─────────┬──────────────────────────────────────────┼────────────┘
          │ /api/embed                               │
┌─────────▼──────────┐                    ┌──────────▼─────────┐
│  Ollama             │                    │  Qdrant             │
│  nomic-embed-text   │                    │  cosine similarity  │
│  + chat models      │                    │  payload indexes    │
└────────────────────┘                    └────────────────────┘

运作原理

  1. 发现 --浏览代码库,按语言(40+扩展名)过滤,跳过锁文件/构建工件/供应商目录。
  1. 代码感知分块 --在自然代码边界(函数定义、类声明、impl块)拆分文件,而不是盲目地在令牌限制处切割。重叠的窗口可以保留上下文。
  1. 嵌入 --把大块食物送到奥利玛家 /api/embed 分批。每个块都以文件路径+语言+行范围作为前缀,以更好地进行语义基础。
  1. 存储 --上传到Qdrant,带有完整的元数据有效载荷。有效载荷指数 file_path, language,以及 content_hash 启用过滤搜索和增量重新索引。
  1. RAG回路 --客户端使用附带的MCP工具向Ollama发送用户查询。Ollama决定什么时候打电话 semantic_search,从服务器获取结果,并将最终答案与代码引用进行合成。

设置

先决条件

  • 奥拉玛 在本地运行,并拉取嵌入模型
  • Qdrant 正在运行(推荐使用Docker)
  • Python 3.10+
# Pull the embedding model
ollama pull nomic-embed-text

# Pull a chat model (any that supports tool-calling)
ollama pull qwen2.5:14b

# Start Qdrant (and optionally Ollama via Docker)
docker compose up -d

安装

# With uv (recommended)
uv venv && source .venv/bin/activate
uv pip install -e ".[client,dev]"

# Or with pip
pip install -e ".[client,dev]"

用法

启动MCP服务器(独立)

ollqd-server

服务器使用JSON-RPC(MCP协议)通过stdio进行通信。它旨在由MCP客户端启动,而不是直接使用。

交互式RAG聊天

# Interactive REPL — ask questions about your codebase
ollqd-chat --interactive

# Single query
ollqd-chat "how does the auth middleware work?"

# Use a different chat model
ollqd-chat --interactive --model llama3.1

# Debug mode
ollqd-chat -v "find the database connection setup"

REPL命令:

  • :quit / :q --出口
  • :model --即时切换聊天模式

与Claude Desktop一起使用

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "ollqd": {
      "command": "ollqd-server",
      "args": []
    }
  }
}

然后在Claude Desktop中,问以下问题:

  • “将我的项目索引到/path/to/codebase”
  • “搜索如何实现身份验证”
  • “使用了哪些错误处理模式?”
  • “列出所有索引集合”

MCP工具

工具说明
index_codebase从目录中漫游+组块+嵌入+上传代码文件
index_documents分块+嵌入+追加销售文档文件(markdown、text、rst)
semantic_search嵌入自然语言查询和搜索Qdrant
list_collections列出所有Qdrant集合及其点数
delete_collection删除收藏(需要 confirm=true)

配置

环境变量

变量默认值描述
OLLAMA_URLhttp://localhost:11434 基础 URL
QDRANT_URLhttp://localhost:6333Qdrant REST URL
OLLAMA_CHAT_MODELqwen2.5:14bRAG的聊天模式
OLLAMA_EMBED_MODELnomic-embed-text嵌入模型
OLLAMA_TIMEOUT_S120请求超时(秒)
CHUNK_SIZE512每个区块的近似令牌
CHUNK_OVERLAP64块之间的重叠标记
MAX_TOOL_ROUNDS6每个查询的最大工具调用轮次

ollqd.toml

[ollama]
host = "http://localhost:11434"
chat_model = "qwen2.5:14b"
embed_model = "nomic-embed-text"
timeout = 120

[qdrant]
host = "http://localhost:6333"
default_collection = "codebase"

[indexing]
chunk_size = 512
chunk_overlap = 64
max_file_size_kb = 512

[server]
name = "ollqd-rag-server"
transport = "stdio"

[client]
max_tool_rounds = 6

项目结构

src/ollqd/
├── __init__.py
├── config.py          # AppConfig dataclass + env var overrides
├── errors.py          # Exception hierarchy
├── models.py          # FileInfo, Chunk, SearchResult, IndexingStats
├── chunking.py        # Code-aware + document chunking
├── discovery.py       # File discovery (40+ languages)
├── embedder.py        # OllamaEmbedder wrapping /api/embed
├── vectorstore.py     # QdrantManager (upsert, search, incremental)
├── server/
│   └── main.py        # FastMCP server with 5 tools
└── client/
    ├── mcp_bridge.py  # MCP session over stdio
    ├── ollama_agent.py # Ollama chat with tool-calling
    ├── rag_loop.py    # RAG loop runner
    └── main.py        # CLI entry point

支持的语言

Python、Go、JavaScript、TypeScript、Rust、Java、Kotlin、Scala、C、C++、C#、Ruby、PHP、Swift、Lua、Shell、SQL、R、HTML、CSS、SCSS、YAML、TOML、JSON、Markdown、reStructuredText、Terraform、HCL、Dockerfile、Protobuf、GraphQL。

嵌入模型

任何支持Olama的型号 /api/embed 作品。推荐:

型号尺寸备注
nomic-embed-text768质量和速度的良好平衡(默认)
mxbai-embed-large1024质量更高,速度更慢
all-minilm384速度快,占地面积小
snowflake-arctic-embed1024强大的代码理解能力

设计决策

为什么选择MCP? --模型上下文协议允许任何兼容的AI助手(Claude Desktop、自定义客户端、IDE扩展)使用ollqd的索引和搜索工具,而无需自定义集成代码。

为什么不找个保姆来帮忙砍树呢? --Tree sitter提供了完美的基于AST的拆分,但增加了每种语言的严重依赖性。启发式边界检测覆盖了约90%的无额外设置的情况。

为什么是确定性点ID?md5(file_path::chunk_N) 意味着重新索引同一文件会覆盖现有点,而不是创建重复点。这使得增量模式可靠。

为什么要在块前加元数据? --当给定上下文时,嵌入模型会产生更好的向量。“文件:auth/middleware.go |语言:go |第45-82行”后面的代码会产生语义上更有意义的向量。

遗留脚本

v0.1中的独立脚本仍然可用:

# Bulk index (standalone, no MCP)
python codebase_indexer.py /path/to/project --collection myproject

# Search (standalone, no MCP)
python codebase_search.py "auth middleware" --interactive

设计.md 完整的体系结构文档,包括图表、安全分析(STRIDE)和详细的API参考。

目录标签

目录标签

PythonClaude代码索引RAG系统本地部署语义搜索AI助手集成本地开发工具

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

session

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiosession部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP