What is Project RAG?
Project RAG indexes a codebase on your machine and serves it to an agent over MCP. Code is split into functions, classes and methods with Tree-sitter for 12 languages (50-line chunks for everything else), embedded locally with fastembed-rs and the all-MiniLM-L6-v2 model, and stored in an embedded LanceDB database alongside a Tantivy BM25 index. Queries combine the two rankings with reciprocal rank fusion. Qdrant is an optional backend at build time.
The server exposes nine tools over stdio: index_codebase, query_codebase, search_by_filters, search_git_history, get_statistics, clear_index, find_definition, find_references and get_call_graph, plus nine matching slash-command prompts. No API key is needed; the first run downloads the roughly 50 MB embedding model.
The repo, created in November 2025, is MIT-licensed with about 33 stars, and every commit comes from one contributor. Version 0.1.0 went to crates.io on 24 January 2026 and has 77 downloads in total; there are no GitHub releases, the last commit is from 2 February 2026, and three outside pull requests have waited since May and July without a reply from the maintainer. It is not listed in the official MCP registry.
How to install Project RAG
cargo install project-ragIs Project RAG worth it?
Project RAG has the right ingredients and an unfinished kitchen. Hybrid search is the correct call for code, where an exact identifier matters as much as meaning, and pairing an embedded LanceDB index with BM25 means nothing to run beside it. But development stopped in February 2026, and the open pull requests describe bugs a user will hit on day one.
The first is logging. The server initialises Rust's tracing output on stdout, which over stdio is reserved for MCP messages. Pull request #20, open since May, explains that log lines then corrupt the stream and tool calls return empty; the README's own Claude Desktop and Claude Code examples set RUST_LOG=info, which turns those lines on. The second, in pull request #21, is that include and exclude patterns are matched as plain substrings. The source bears this out: a glob such as **/vendor/** is never a substring of a real path, so it matches nothing, and the README's own exclude example has no effect beyond what .gitignore already skips.
The code-navigation tools promise more than ships. The README describes a stack-graphs resolver at about 95% precision for Python, TypeScript, Java and Ruby; Cargo.toml says that feature is prepared but not fully implemented, and the source has no such module. What runs is the AST-based fallback, which the README itself puts at about 70% precision. CodeGraph and GitNexus build a real call graph without embeddings; here, definitions and references come from identifier matching.
The performance figures are the author's own, listed under typical hardware with no method: about 1,000 files a minute, 20 to 30 ms per search, about 100 MB of base memory plus 50 MB for the model. A user in issue #11 reported a toy project taking about 30 minutes to index and a large monorepo taking hours on CPU. The README makes no claim about token savings. Its documentation also contradicts itself in places, naming Qdrant as the engine and listing an embedded database as future work when LanceDB is already the default.
Where it earns its place
A developer on a 5,000-file polyglot repo with years of history
Ask the agent where a behaviour came from and which commit changed it
search_git_history indexes the last 10 commits by default and goes deeper on demand, with author, path and date filters. The README puts a 5,000-file project under 500 MB of memory; expect a first index measured in minutes to hours on CPU, by one user's report.
A Rust platform team building an internal code-search agent
Embed retrieval in their own service rather than run an MCP server
The crate exposes a RagClient library API as well as the server, under MIT. Budget time to patch the substring pattern matching and stdout logging, since upstream has not merged either fix.
An engineering manager comparing local code-context servers for a team
Choose one the team can depend on for a year
One contributor, 77 crates.io downloads and no release since January make this a project to fork, not adopt. CodeGraph is MIT, actively released and needs no embedding model.
Before you commit
- Setup
- Needs Rust 1.88+ and protobuf-compiler; cargo install project-rag (0.1.0) or cargo build --release from the repo, then claude mcp add with the binary path. The README documents Claude Code and Claude Desktop. The first run downloads the embedding model before index_codebase can finish.
- Integrations
- Nine tools over stdio. index_codebase and clear_index write to the local index; the other seven read. Nine MCP prompts appear as /project: slash commands in Claude Code. A Rust library API offers the same functions.
- Data and privacy
- Code, embeddings and the BM25 index stay local, in a platform data directory under project-rag by default. index_codebase indexes any directory path the agent passes, so it can read whatever the server process can. The model download goes to Hugging Face. No security advisories are published.
- Cost at scale
- Free; the cost is CPU time and disk. The README estimates about 40 MB of memory per 10,000 chunks and about 75 MB of storage for a 1,000-file project, and offers no GPU embedding path.
- Limits
- No configuration for the Qdrant URL beyond a hardcoded localhost default, path filters applied after the query, and AST chunking for 12 languages only. Indexing projects of 100,000+ files takes significant time, by the README's own account.
What's good
- Hybrid vector and BM25 search suits identifiers and prose alike
- Embedded LanceDB and local embeddings; no key or external service
- Git history search over commit messages and diffs
- Cross-process lock stops two sessions indexing one repo at once
What's not
- No commits since February 2026; outside fixes unmerged
- Logs on stdout can corrupt the MCP stream (open PR #20)
- Glob include and exclude patterns do not match (open PR #21)
- Advertised high-precision navigation is not implemented
Best for
Rust developers prepared to build from source and apply the open fixes themselves to get local hybrid code search.
Project RAG alternatives
Project RAG: common questions
- Is Project RAG worth it?
- A sound hybrid-search design for code, held back by unmerged fixes for bugs that break its own logging and exclude patterns. We rate it 2.8 out of 5.
- How much does Project RAG cost?
- Free and MIT-licensed.
- What are the downsides of Project RAG?
- No commits since February 2026; outside fixes unmerged; logs on stdout can corrupt the MCP stream (open PR #20); glob include and exclude patterns do not match (open PR #21); advertised high-precision navigation is not implemented.
- Who is Project RAG best for?
- Rust developers prepared to build from source and apply the open fixes themselves to get local hybrid code search.
- How much does Project RAG cost for a team or in production?
- Free; the cost is CPU time and disk. The README estimates about 40 MB of memory per 10,000 chunks and about 75 MB of storage for a 1,000-file project, and offers no GPU embedding path.
- Is Project RAG safe for company data?
- Code, embeddings and the BM25 index stay local, in a platform data directory under project-rag by default. index_codebase indexes any directory path the agent passes, so it can read whatever the server process can. The model download goes to Hugging Face. No security advisories are published.
- What are the best Project RAG alternatives?
- The closest alternatives we have reviewed are CodeGraph, GitNexus, Serena and Semble.
Answers checked Oct 26, 2026.