Velocirag
概览
作者提供的说明(英文原文)
Lightning-fast RAG for AI agents. 4-layer fusion, ONNX Runtime, sub-200ms search.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i1 项中通过 1 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新↓ 36/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 搜索与 AI 记忆
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:1 项中通过 1 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 注册中心没有列出需要填写的密钥。
你需要
- PyPI已安装 Python 的 uv(用于 uvx 命令)
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"velocirag": {
"command": "uvx",
"args": [
"velocirag"
]
}
}
}在终端中运行这条命令
claude mcp add velocirag -- uvx velocirag或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"velocirag": {
"command": "uvx",
"args": [
"velocirag"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"velocirag": {
"type": "stdio",
"command": "uvx",
"args": [
"velocirag"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 HaseebKhalid1507 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 5690 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 5690 个服务器的 8% 更新
- 基础检查结果等于或优于此分类中其他 5690 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
Velocirag 安全吗?
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(0.7.4)于7个月前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, Exa
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
🦖 VelociRAG
Lightning-fast RAG for AI agents.
_Four-layer retrieval fusion powered by ONNX Runtime. No PyTorch. Sub-200ms warm search. Incremental graph updates. MCP-ready._
Most RAG solutions either drag in 2GB+ of PyTorch or limit you to single-layer vector search. VelociRAG gives you four retrieval methods — vector similarity, BM25 keyword matching, knowledge graph traversal, and metadata filtering — fused through reciprocal rank fusion with cross-encoder reranking. All running on ONNX Runtime, no GPU, no API keys. Comes with an MCP server for agent integration, a Unix socket daemon for warm queries, and a CLI that just works.
🚀 Quick Start
MCP Server (Claude, Cursor, Windsurf)
pip install "velocirag[mcp]"
velocirag index ./my-docs velocirag mcp
Claude Code — add to .mcp.json in your project root:
{
"mcpServers": { "velocirag": { "command": "velocirag", "args": ["mcp"], "env": { "VELOCIRAG_DB": "/path/to/data" } } } }
Then open `/mcp` in Claude Code and enable the `velocirag` server. If using a virtualenv, use the full path to the binary (e.g. `.venv/bin/velocirag`).
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": { "velocirag": { "command": "velocirag", "args": ["mcp", "--db", "/path/to/data"] } } }
Cursor — add to .cursor/mcp.json:
{
"mcpServers": { "velocirag": { "command": "velocirag", "args": ["mcp", "--db", "/path/to/data"] } } }
Python API
from velocirag import Embedder, VectorStore, Searcher
embedder = Embedder() store = VectorStore('./my-db', embedder) store.add_directory('./my-docs') searcher = Searcher(store, embedder) results = searcher.search('query', limit=5)
CLI
pip install velocirag
velocirag index ./my-docs velocirag search "your query here"
Search Daemon (warm engine for CLI users)
velocirag serve --db ./my-data # start daemon (background)
velocirag search "query" # auto-routes through daemon velocirag status # check daemon health velocirag stop # stop daemon
The daemon keeps the ONNX model + FAISS index warm over a Unix socket. First query loads the engine (~1s), subsequent queries return in ~180ms with full 4-layer fusion.
🎯 Why VelociRAG?
- 4-layer search — vector + BM25 keyword + knowledge graph + metadata, fused with RRF
- No LLM needed — search runs entirely on local models (MiniLM + TinyBERT, ~80MB total)
- No GPU needed — pure ONNX inference, runs on any machine
- ~3ms warm search — daemon keeps models + indices warm over Unix socket
- Incremental indexing — add files without rebuilding the whole index
- MCP server — plug into Claude, Cursor, Windsurf, any MCP client
Related Projects
- [Memkoshi](https://github.com/HaseebKhalid1507/memkoshi) — Agent memory system. Uses VelociRAG as its search engine.
- [Stelline](https://github.com/HaseebKhalid1507/Stelline) — Session intelligence. Crafts memories from conversation logs.
- [Glyph](https://github.com/HaseebKhalid1507/Glyph) — MCP security scanner and runtime protection.
🏗️ How It Works
The 4-layer pipeline:
Query → expand (acronyms, variants)
→ [Vector] FAISS cosine similarity (384d, MiniLM-L6-v2 via ONNX) → [Keyword] BM25 via SQLite FTS5 → [Graph] Knowledge graph traversal → [Metadata] Structured SQL filters (tags, status, project) → RRF Fusion → Cross-encoder rerank → Results
What each layer catches:
| Query type | Vector | Keyword | Graph | Metadata |
|---|---|---|---|---|
| Conceptual ("improve error handling") | ✅ | — | — | — |
| Exact match ("ERR_CONNECTION_REFUSED") | — | ✅ | — | — |
| Connected concepts | — | — | ✅ | — |
| Filtered ("#python status:active") | — | — | — | ✅ |
| Combined ("React state management") | ✅ | ✅ | ✅ | ✅ |
✨ Features
- ONNX Runtime — 184ms cold start, 3ms cached. No PyTorch, no GPU
- Four-layer fusion — FAISS vector similarity + SQLite FTS5 (BM25) + knowledge graph + metadata filtering, merged via reciprocal rank fusion
- Cross-encoder reranking — TinyBERT reranker via ONNX Runtime — included in base install, no PyTorch needed. Downloads ~17MB model on first use
- Incremental graph updates — file-centric provenance tracking detects what changed and only rebuilds affected nodes/edges. Cascading deletes maintain consistency across all stores (vector, graph, metadata). Multi-source support with isolated provenance per source
- MCP server — Five tools (search, index, add_document, health, list_sources) for Claude, Cursor, Windsurf
- Search daemon — Unix socket server keeps ONNX model + FAISS index warm between queries
- Knowledge graph — Analyzers build entity, temporal, topic, and explicit-link edges from markdown. Optional GLiNER NER. 418 files in 2.1s
- Smart chunking — Header-aware splitting preserves document structure and parent context
- Query expansion — Acronym registry, casing/spacing variants, underscore-aware tokenization
- Runs anywhere — CPU-only, 8GB RAM, no API keys, no external services
🤖 MCP Server
VelociRAG exposes a Model Context Protocol server for seamless agent integration:
Available tools:
search— 4-layer fusion search with rerankingindex— Add documents to the knowledge baseadd_document— Insert single documenthealth— System diagnosticslist_sources— Show indexed document sources
The MCP server process stays alive between queries, so models load once and every subsequent search is warm. Works with any MCP-compatible client.
🐍 Python API
Full 4-layer unified search:
from velocirag import (
Embedder, VectorStore, Searcher, GraphStore, MetadataStore, UnifiedSearch, GraphPipeline )
Build the full stack
embedder = Embedder() store = VectorStore('./search-db', embedder) graph_store = GraphStore('./search-db/graph.db') metadata_store = MetadataStore('./search-db/metadata.db')
Index with graph + metadata
store.add_directory('./docs') pipeline = GraphPipeline(graph_store, embedder, metadata_store) pipeline.build('./docs', source_name='my-docs')
Unified search across all layers
searcher = Searcher(store, embedder) unified = UnifiedSearch(searcher, graph_store, metadata_store) results = unified.search( 'machine learning algorithms', limit=5, enrich_graph=True, filters={'tags': ['python'], 'status': 'active'} )
Quick semantic search:
from velocirag import Embedder, VectorStore, Searcher
embedder = Embedder() store = VectorStore('./db', embedder) store.add_directory('./docs') searcher = Searcher(store, embedder) results = searcher.search('neural networks', limit=10)
Incremental graph updates:
from velocirag import Embedder, GraphStore, GraphPipeline
First run — full build, populates provenance
gs = GraphStore('./db/graph.db') pipeline = GraphPipeline(gs, embedder=Embedder()) pipeline.build('./docs', source_name='my-docs') # full build
Subsequent runs — only changed files get reprocessed
pipeline.build('./docs', source_name='my-docs') # incremental (automatic)
Force full rebuild
pipeline.build('./docs', source_name='my-docs', force_rebuild=True)
Multi-source graphs
pipeline.build('./project-a', source_name='project-a') pipeline.build('./project-b', source_name='project-b') # isolated provenance
Deleted files automatically cascade across all stores
(vector, FTS5, graph, metadata) on next build
💻 CLI Reference
# Index documents (graph + metadata built by default)
velocirag index [--no-graph] [--no-metadata] [--gliner] [--full-graph] [--force] [--source NAME] [--db PATH]
Search across all layers (auto-routes through daemon if running)
velocirag search [--limit N] [--threshold F] [--format text|json]
Search daemon
velocirag serve [--db PATH] [-f] # start daemon (-f for foreground) velocirag stop # stop daemon velocirag status # check daemon health
Metadata queries
velocirag query [--tags TAG] [--status S] [--project P] [--recent N]
System health and status
velocirag health [--format text|json]
Start MCP server
velocirag mcp [--db PATH] [--transport stdio|sse]
Options:
--no-graph— Skip knowledge graph build--no-metadata— Skip metadata extraction--full-graph— Build graph WITH semantic similarity edges (~2GB extra RAM)--source NAME— Label for multi-source provenance isolation--force— Clear and rebuild from scratch--gliner— Use GLiNER for entity extraction (requirespip install "velocirag[ner]")
📊 Performance
Real benchmarks on ByteByteGo/system-design-101 (418 files, 1,001 chunks):
| Metric | Value |
|---|---|
| Index (418 files) | 13.6s |
| Search (warm, 5 results) | 35–90ms |
| Graph build (light) | 2.1s → 2,397 nodes, 8,717 edges |
| Incremental update (1 file) | 1.3s |
| Reranker | Cross-encoder TinyBERT via ONNX |
| Install size | ~80MB (no PyTorch) |
| RAM usage | <1GB with all models loaded |
Production deployment (6,300+ chunks, 3 sources, 950 files):
| Metric | Value |
|---|---|
| Full search (warm) | 16ms avg, 2ms min |
| Full search (first run) | 22ms avg, 4ms min |
| Search P50 / P95 | 17ms / 55ms |
| Hit rate (100-query benchmark) | 99/100 |
| Graph | 3,125 nodes, 132,320 edges |
| Reranker | Cross-encoder TinyBERT via ONNX |
| RAM | <1GB with all models loaded |
⚙️ Configuration
| Environment Variable | Default | Description |
|---|---|---|
VELOCIRAG_DB | ./.velocirag | Database directory |
VELOCIRAG_SOCKET | /tmp/velocirag-daemon.sock | Daemon socket path |
NO_COLOR | — | Disable colored output |
Dependencies (all included in base install):
onnxruntime— ONNX inference (embedder + reranker)tokenizers+huggingface-hub— model loadingfaiss-cpu— vector similarity searchnetworkx+scikit-learn— knowledge graph + topic clusteringnumpy,click,pyyaml,python-frontmatter
Optional extras:
pip install "velocirag[mcp]"— MCP server (addsfastmcp)pip install "velocirag[ner]"— GLiNER entity extraction (addsgliner, requires PyTorch)
📚 References
VelociRAG builds on these foundational works:
Core Fusion & Retrieval
Reciprocal Rank Fusion — Cormack, G. V., Clarke, C. L. A., & Büttcher, S. (2009). "Reciprocal Rank Fusion outperforms Condorcet and individual Rank Learning Methods." _SIGIR '09_.
Core fusion algorithm for merging results across retrieval layers.
BM25 — Robertson, S. E., Walker, S., Jones, S., Hancock-Beaulieu, M., & Gatford, M. (1994). "Okapi at TREC-3." _TREC-3_.
Keyword search foundation via SQLite FTS5.
Embeddings & Neural IR
Sentence-BERT — Reimers, N., & Gurevych, I. (2019). "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks." _EMNLP 2019_. paper
Dense embedding architecture using
all-MiniLM-L6-v2.
MiniLM — Wang, W., Wei, F., Dong, L., Bao, H., Yang, N., & Zhou, M. (2020). "MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers." _NeurIPS 2020_. paper
Efficient transformer distillation for production embedding models.
Reranking & Neural Models
Cross-Encoder Reranking — Nogueira, R., & Cho, K. (2019). "Passage Re-ranking with BERT." _arXiv:1901.04085_. paper
Cross-attention reranking with TinyBERT on MS MARCO.
TinyBERT — Ji
只显示了开头部分;其余内容请在仓库中阅读