Index source code into a local knowledge base, search with keyword + semantic + hybrid modes.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
๐ก Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Local MCP server โ index your repo once, search it in every AI session
Keyword (SQLite FTS5) ยท Semantic (Qdrant + Ollama embeddings) ยท Hybrid โ your code stays on disk
MCP server (vibe-hnindex) latest: v0.12.0 ยท hnindex-cli v0.12.0 โ Docs ยท Changelog ยท GitHub Releases
vibe-hnindex is a Model Context Protocol server. After you index a folder once, assistants (Claude, Cursor, Windsurf, Antigravity, โฆ) can search that codebase with paths and line ranges โ data is stored locally (SQLite + optional Qdrant). Embeddings use Ollama; vectors use Qdrant (Docker, local, or Qdrant Cloud with QDRANT_API_KEY).
๐ Full docs site: docs.hnindex.cloud โ 16 pages covering Getting Started, Configuration, Tools Reference, Guides, and Code Agent.
| Page | What you'll learn |
|---|---|
| Introduction | What vibe-hnindex does, key features, how it works |
| Installation | Node, Ollama, Qdrant setup + MCP config |
| Quick Start | 5-minute walkthrough with CLI + agent skill |
| Configuration | All 25+ env vars with embedding model comparison |
| Search | 6 search modes, regex, fuzzy, streaming, cache |
| Code Agent ๐ | code_session + code_apply with safety scopes |
| Setup MCP | Per-platform config (Claude, Cursor, Antigravity, VS Code...) |
Also available in-repo: docs/getting-started.md, docs/configuration.md, docs/tools-reference.md.
hnindex)Optional โ writes the MCP JSON for you (merge-safe, same npx -y vibe-hnindex block as in the docs):
See docs.hnindex.cloud for full documentation.
npm install does not need a C++ compiler. See Troubleshooting โ Windows if npm i vibe-hnindex fails.ollama pull bge-m3:567m and keep ollama serve running (or set OLLAMA_URL to a remote server).docker run -d --name qdrant -p 6333:6333 qdrant/qdrant (or use Qdrant Cloud). Keyword-only search works without Qdrant.For Qdrant Cloud, add QDRANT_API_KEY and set QDRANT_URL to your HTTPS cluster URL โ details in Getting started.
RERANK_URL)Semantic/hybrid search already uses Ollama (OLLAMA_URL, OLLAMA_MODEL e.g. bge-m3:567m) for query vectors and Qdrant for retrieval. After that, the server can reorder the top pool of hits:
RERANK_URL: reorder by Qdrant semantic scores (no extra network service). This is enough for most setups, including when you only run Ollama + Qdrant.RERANK_URL: POST JSON { "query", "documents" } to your URL; response { "scores": number[] } (same length as documents). Use a small HTTP service you host that wraps your reranker; Ollama does not expose this contract on :11434 by default.Ollama vs rerank: pulling a reranker model in Ollama (e.g. qllama/bge-reranker-v2-m3) does not replace RERANK_URLโyou still need an adapter service unless you only rely on the built-in Qdrant reorder. See Configuration โ Rerank.
| Env | Role |
|---|---|
SEARCH_RERANK | false disables post-retrieval reorder entirely (default: enabled). |
SEARCH_RERANK_POOL | Max candidates considered before trim (default 50). |
RERANK_URL | Full URL of your {query, documents} โ {scores} API (optional). |
RERANK_TIMEOUT_MS | Timeout for that POST (default 15000). |
To prevent hanging when Ollama or Qdrant are unresponsive, vibe-hnindex applies timeouts on all external calls. You can tune these via environment variables:
| Env | Default | Controls |
|---|---|---|
OLLAMA_TIMEOUT_MS | 30000 (30s) | Max wait for Ollama /api/embed and /api/tags calls |
QDRANT_TIMEOUT_MS | 15000 (15s) | Max wait for Qdrant API calls (search, upsert, etc.) |
SEARCH_TIMEOUT_MS | 60000 (60s) | Overall timeout for the entire search operation |
Set any of these to a higher value if you have a slow machine or large dataset. Set to 0 to disable the timeout for that layer (not recommended).
Use the same mcpServers block as above, but save it in Antigravityโs MCP file:
| File | mcp_config.json under .gemini/antigravity/ in your user folder |
| Windows | C:\Users\<your-username>\.gemini\antigravity\mcp_config.json |
| macOS / Linux | ~/.gemini/antigravity/mcp_config.json |
| UI | โฎ menu โ MCP โ Manage MCP Servers โ View raw config |
Step-by-step: Integrations โ Google Antigravity.
| Search | 6 modes: keyword (FTS5+BM25), semantic (Qdrant vectors), hybrid (RRF fusion), regex, symbol, auto |
| Code Agent | code_session โ 1 call replaces 5-15 searches. code_apply โ safe code changes with auto test/lint/typecheck |
| Chat Memory ๐ | Auto-track tool calls, semantic search via Qdrant, persistent AI context across sessions |
| Streaming | Parallel keyword+semantic search (~1.5-2ร faster), 4-phase progress notifications |
| Fuzzy Search | Levenshtein distance auto-corrects typos ("fucntion" โ "function") |
| Smart Context | Task-aware context: impact analysis, test file detection, similar code patterns |
| Storage | SQLite on disk + Qdrant for vectors; 100% local, no cloud required |
| Indexing | Incremental (SHA-1 hash), parallel workers (~3-4ร faster), watch mode (auto re-index on save), 40+ languages, .hnindexignore |
| Resilience | Keyword search works without Qdrant or Ollama; graceful degradation |
| Benchmark | Built-in benchmark_search tool โ compare streaming vs non-streaming, all search modes |
| Multiple Embedding Models | bge-m3 (default), nomic-embed-text, qwen3-embedding, mxbai-embed-large, and more |
How indexing & search work โ
MIT โ see LICENSE.
Issues and PRs: github.com/AndyAnh174/vibe-hnindex.
Ho Viet Anh (AndyAnh174) ยท hovietanh147@gmail.com ยท GitHub
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/vibe-hnindex)<a href="https://allmcps.com/mcp/vibe-hnindex"><img src="https://allmcps.com/api/badge/vibe-hnindex?style=directory" alt="Vibe Hnindex on AllMCPs" /></a>