Token导航 LogoToken导航

MCP Server · 搜索检索

Ollqd (Leomarviegas)

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

stdio官方级别未说明来源级核验工具 5
PythonClaude代码索引Claude Desktop

快速开始

作者 / 组织
leomarviegas
提供方
leomarviegas

工具数量

5

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Ollqd (Leomarviegas) 属于搜索检索类 MCP Server,公开资料标注 5 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

搜索检索

传输方式

stdio

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

安装命令

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

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 5 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

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参考。

工具与能力

工具数量

5

资源数量

0

提示词数量

0

能力标签

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

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

查资料带出处

把网页、论文和文档的检索结果连同链接一起带回对话。

站内知识检索

在自己的文档库里做语义搜索,比关键词更贴题。

事实核对

交叉多个来源确认一条信息,减少模型凭记忆作答。

选择建议

值得选的地方

  • 只提供 5 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在搜索检索场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Ollqd (Leomarviegas)

MCP World · 本页

5stdio有1 个2026-05-17
Baidu Netdisk

MCP World

未标注未说明未标注1 个2026-05-17
Sequentialthinking

MCP.so

1SSE有2 个2026-05-17
Brave Search 433812ff

MCP World

2未说明未标注1 个2026-05-17
mindsdb (430e18)

MCP World

0未说明有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Ollqd (Leomarviegas) 怎么安装?

公开资料给出的安装命令是 pip install -e ".[client,dev]",运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Ollqd (Leomarviegas) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Ollqd (Leomarviegas) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Ollqd (Leomarviegas) 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Ollqd (Leomarviegas) 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP