About io.github.AndyAnh174/vibe-hnindex
io.github.AndyAnh174/vibe-hnindex is an MCP server published by AndyAnh174 in the Blockchain category: index source code into a local knowledge base, search with keyword + semantic + hybrid modes.
The repository has 3 stars and 0 forks, with the last commit 9 hours ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
claude mcp add io-github-andyanh174-vibe-hnindex -- npx -y vibe-hnindexnpx -y vibe-hnindexThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (36)
agent_rules_stubShort markdown stub for CLAUDE.md / AGENTS.md: project path, index stats, optional package.json script hints (test/build/lint), rule-based bullets — not a full project_briefing.
Parameters not published.
benchmark_searchRun a suite of search queries and compare streaming vs non-streaming performance. Reports timing (avg/min/max), result counts, and speedup ratios. Useful for measuring vibe-hnindex performance on your project.
Parameters not published.
callersFind resolved call sites of a function/method/class. Dynamic and external calls may be missing.
Parameters not published.
chat_contextManage chat memory: save conversation messages, load previous context, ingest entire conversation threads, or clear old context. Auto-track is always on when CHAT_MEMORY_ENABLED=true — search, smart_context, and code_session calls are logged automatically without calling this tool.
Parameters not published.
code_applyApply code changes (create, modify, delete files) proposed by the AI. Respects CODE_AGENT_SCOPE for safety. Optionally runs test suite and linting after applying. Use after code_session to implement the planned changes.
Parameters not published.
code_sessionGather a structured context package for a coding task. Returns relevant files (with content), similar patterns, dependencies, test files, and impact analysis — everything the AI needs to reason about a code change in a single response. Use before making code changes to avoid 5-15 separate search/read calls.
Parameters not published.
codebase_overviewGet a high-level overview of an indexed project: directory structure, language breakdown, entry points, detected frameworks, and key exports. Useful for understanding codebase architecture without reading every file.
Parameters not published.
delete_projectDelete a project and all its indexed data from the knowledge base (both SQLite and Qdrant).
Parameters not published.
evaluate_retrievalMeasure file-level Recall@K, MRR, nDCG, p95 latency and output tokens for labeled retrieval cases. Bypasses search cache. Semantic/hybrid cases use configured services and may incur API cost.
Parameters not published.
file_summaryGet a detailed summary of a specific file: purpose, exports, imports, files that depend on it, and complexity. More efficient than reading the full file.
Parameters not published.
Show all 36 tools
find_referencesFind statically resolved symbol references with file/line/column evidence. Ambiguous names require file_path and optionally line.
Parameters not published.
get_dependenciesList all imports/dependencies of a specific file. Shows what this file depends on.
Parameters not published.
get_dependentsList all files that import/depend on a specific file. Shows what would be affected if this file changes.
Parameters not published.
get_file_infoGet information about a specific indexed file including its chunks, line ranges, and language.
Parameters not published.
graph_contextCollect source context and evidence along bounded code graph relationships. Exact symbol/file works offline; query mode seeds from hybrid search. Token budget uses cl100k_base and may differ from the consuming model.
Parameters not published.
impact_analysisAnalyze the transitive impact of changing a file. Uses BFS to find all direct and indirect dependents up to a configurable depth. Essential before refactoring.
Parameters not published.
index_code_graphBuild a multilingual AST code graph in SQLite without embedding/vector services: JS/TS compiler resolution plus bundled Tree-sitter profiles for Python, PHP, Go, Java, C/C++, C#, Rust, Ruby, Kotlin, Swift, Scala and Lua. Reports syntax recovery/coverage warnings. Dynamic/external/ambiguous relationships may be unresolved. Honors scanner exclusions and .hnindexignore. Re-run after upgrading or changing source.
Parameters not published.
index_codebaseIndex an entire codebase directory for later search. Scans all supported source files, chunks them, and stores in the knowledge base with keyword and semantic indexes. Supports incremental indexing — unchanged files are skipped.
Parameters not published.
index_fileIndex or re-index a single file in an existing project. The project must have been indexed with index_codebase first.
Parameters not published.
list_projectsList all indexed projects with their metadata including file count, chunk count, and last indexed time.
Parameters not published.
locate_codeLocate indexed files, definitions and nearby CALLS/REFERENCES with file/line/symbol evidence and current-file freshness. Auto mode tries file, symbol, then local keyword search without embeddings. Explicit hybrid mode can call configured APIs. Ambiguous names return choices; refresh stale positions before editing.
Parameters not published.
onboarding_promptSingle markdown blob for agent onboarding: cached project briefing, stats, and optional recent git activity. Output is truncated to max_chars.
Parameters not published.
pentest_planBuild source-linked security validation checks for an authorized test plan. Does not execute commands, probes or exploits. Reads bounded live indexed source; optional configured rerank prioritizes evidence, not vulnerability severity.
Parameters not published.
priority_promptReturn workspace-aware code navigation guidance.
Parameters not published.
project_briefingRule-based project briefing from README, CLAUDE.md, package.json, and indexed stats (no LLM). Results are cached in SQLite until the index fingerprint changes.
Parameters not published.
project_statsGet detailed statistics about an indexed project: language breakdown, file/chunk counts, total lines, and averages. Useful for understanding codebase composition before searching.
Parameters not published.
recent_changesShow recent git commits for a project with changed files cross-referenced against the index. Requires git.
Parameters not published.
searchSearch the indexed codebase. Returns matching code chunks with file paths, line numbers, and relevance scores. Modes: keyword (FTS5), semantic (vector), hybrid (RRF fusion), auto (heuristic when SEARCH_AUTO_ROUTE), symbol (SQLite symbol index by identifier), regex (pattern matching with /pattern/flags). Results are cached (LRU, 5min TTL) for non-regex modes. Filter by symbol_kind to only see files with functions, classes, etc. Enable fuzzy:true to boost results with approximate string matching (Levenshtein) — useful for misspelled queries. Optional reranking supports Voyage or a custom HTTP endpoint. Without a configured reranker, or when it fails, the hybrid/semantic order is preserved. Identifier/regex modes skip reranking. Prefer a narrow file_pattern and a small limit on the first pass.
Parameters not published.
security_auditCollect bounded security review candidates from live indexed source, with CWE topics, redacted evidence and validation steps. Heuristics are not confirmed findings. Scope/exclusions and incomplete coverage are reported. Optional configured reranking receives redacted snippets; rerank:false keeps this operation local.
Parameters not published.
security_contextGather source-backed security review context by question, category and file glob. Live snippets and line evidence; no embedding service required. Optional Voyage/HTTP rerank follows SEARCH_RERANK; false forces local ranking.
Parameters not published.
server_diagnosticsHealth check: configured embedding provider, Qdrant, embedding probe, and config summary. Optionally pass project_name to compare SQLite chunk count with Qdrant point count.
Parameters not published.
smart_contextGet comprehensive context for a file, task, or question. v0.10.0: now supports task-aware analysis (impact, test files, similar patterns) and question-based code search. Ideal before editing, debugging, or understanding code.
Parameters not published.
symbol_lookupFind symbol definitions (classes, functions, interfaces, methods) by name in the indexed symbol table. Faster than full-text search for exact identifiers. Re-index the project if results are empty.
Parameters not published.
unwatch_projectStop watching a project for file changes.
Parameters not published.
watch_projectStart watching an indexed project for file changes. When a source file is saved, it will be automatically re-indexed. Uses debouncing to avoid excessive re-indexing.
Parameters not published.
workspace_contextStart here: identify the active workspace, read its purpose/architecture documents, Git state and index readiness. Optionally remember a declared task per project/session. Local only; never guesses user intent or chooses among multiple roots.
Parameters not published.
Ask AI
Ask AI about io.github.AndyAnh174/vibe-hnindex
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
vibe-hnindex
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.7.0 · hnindex-cli v0.7.0+ (CLI-only patches). Shields badges read npm in real time; GitHub Releases only update when you publish a new tag/release.
What this does
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).
How to read the docs (start here)
| Step | Doc | Purpose |
|---|---|---|
| 1 | Getting started | Install Node, Ollama, Qdrant; paste MCP JSON; first chat commands |
| 2 | Integrations | Where to put the JSON — including Google Antigravity (mcp_config.json) — or use hnindex CLI |
| 3 | Tools reference | What each tool does (index_codebase, search, …) |
Everything else is optional: Configuration, How it works, Troubleshooting.
Full index: docs/README.md
CLI installer (hnindex)
Optional — writes the MCP JSON for you (merge-safe, same npx -y vibe-hnindex block as in the docs):
npm install -g hnindex-cli
hnindex init --mcp antigravity # or: claude, claude-desktop, cursor, cursor-project, windsurf, vscode
hnindex init --list # show all targets and paths
hnindex update # npm update -g hnindex-cli
See Getting started → CLI and Integrations → hnindex CLI.
Install in 5 steps
- Node.js — v20+ (nodejs.org). On Windows, Node 20 or 22 LTS is strongly recommended so
npm installdoes not need a C++ compiler. See Troubleshooting → Windows ifnpm i vibe-hnindexfails. - Ollama — install from ollama.com, then:
ollama pull bge-m3:567mand keepollama serverunning (or setOLLAMA_URLto a remote server). - Qdrant — for semantic/hybrid search:
docker run -d --name qdrant -p 6333:6333 qdrant/qdrant(or use Qdrant Cloud). Keyword-only search works without Qdrant. - MCP config — add the server to your assistant’s MCP settings. Minimal example (self-hosted Qdrant):
{
"mcpServers": {
"vibe-hnindex": {
"command": "npx",
"args": ["-y", "vibe-hnindex"],
"env": {
"OLLAMA_URL": "http://localhost:11434",
"OLLAMA_MODEL": "bge-m3:567m",
"QDRANT_URL": "http://localhost:6333"
}
}
}
}
- Restart the IDE or assistant, then in chat ask to index a path and search — see First steps.
For Qdrant Cloud, add QDRANT_API_KEY and set QDRANT_URL to your HTTPS cluster URL — details in Getting started.
Optional rerank (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:
- Without
RERANK_URL: reorder by Qdrant semantic scores (no extra network service). This is enough for most setups, including when you only run Ollama + Qdrant. - With
RERANK_URL: POST JSON{ "query", "documents" }to your URL; response{ "scores": number[] }(same length asdocuments). Use a small HTTP service you host that wraps your reranker; Ollama does not expose this contract on:11434by 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). |
Google Antigravity
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.
Features (short)
| Search | Keyword (FTS5), semantic (vectors), hybrid (RRF fusion); optional post-retrieval reorder (Qdrant scores, or RERANK_URL) |
| Storage | SQLite on disk; Qdrant for vectors |
| Indexing | Incremental (hash per file), many languages, .hnindexignore |
| Resilience | If Qdrant/Ollama unavailable, keyword search can still work |
Architecture
License
MIT — see LICENSE.
Contributing
Issues and PRs: github.com/AndyAnh174/vibe-hnindex.
Contact
Ho Viet Anh (AndyAnh174) · hovietanh147@gmail.com · GitHub
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.