1. Conduid
  2. RAG
  3. Vera
MCP server · RAG

Vera

Local code search combining BM25, vector similarity, and cross-encoder reranking. Parses 60+ languages with tree-sitter, runs entirely offline, and returns structured results with file paths, line ranges, and symbol metadata. Built in Rust.

52Fair

Scored 3 hours ago · breakdown

About Vera

Vera is an MCP server published by VeraTools in the RAG category: local code search combining BM25, vector similarity, and cross-encoder reranking. Parses 60+ languages with tree-sitter, runs entirely offline, and returns structured results with file paths, line ranges, and symbol metadata. Built in Rust.

The repository has 120 stars and 15 forks, with the last commit 3 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/VeraTools/vera

This 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.

Ask AI

✦

Ask AI about Vera

Powered by Claude · Grounded in docs

I know everything about Vera. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 1 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.

1 check has not been run yet.

Releases

v2.1.4v2.1.4 · 14 Oct 2026Bug Fixes deps: update rustls to 0.23.46 for RUSTSEC-2026-0346 to 0349 setup: enable reranking when API setup configures a reranker Release notes and upgrade steps: https://github.com/VeraTools/vera/blob/v2.1.4/docs/whats-new.md Full…
v2.1.3v2.1.3 · 14 Oct 2026Bug Fixes update: re-embed files whose vectors are missing (#299) Release notes and upgrade steps: https://github.com/VeraTools/vera/blob/v2.1.3/docs/whats-new.md Full Changelog:…
v2.1.2v2.1.2 · 14 Oct 2026Bug Fixes retrieval: report keyword-only search when the index has no vectors (#298) mcp: report keyword-only and unreranked search results (#297) retrieval: honor retrieval.rrf_k in hybrid search (#296) Release notes and upgrade…
v2.1.1v2.1.1 · 14 Oct 2026Bug Fixes mcp: report keyword-only and unreranked search results (#297) retrieval: honor retrieval.rrf_k in hybrid search (#296) Other Changes release: publish npm and PyPI packages with trusted publishing (#295) Release notes and…
v2.1.0v2.1.0 · 9 Oct 2026Bug Fixes install: make uninstall, installers and upgrade agree on what Vera owns (#294) Release notes and upgrade steps: https://github.com/VeraTools/vera/blob/v2.1.0/docs/whats-new.md Full Changelog:…

README

Vera

CI npm PyPI GitHub release Languages

Local code search for AI coding agents and the developers who use them.

Install · Features · Query guide · Benchmarks · How it works · All docs

Vector Enhanced Reranking Agent

Describe what the code does, and Vera finds it. Ask for "where expired sessions are cleaned up" and you get back the functions and classes that do it, ranked, with file paths and line ranges. Exact names work too.

Vera is a single native binary. The index lives in your project, search runs on your machine, and the default model runs on any CPU with no GPU, API key, or server to manage.

vera search demo

Quick start

# 1. Install (pick one: bunx, npx, or uvx)
bunx @vera-ai/cli install        # or: npx -y @vera-ai/cli install / uvx vera-ai install

# 2. Download the default local model and index the current project
vera setup --potion-code --index .

# 3. Search
vera search "where expired sessions are cleaned up"

Run vera setup with no flags in a terminal for a guided setup that can also install the agent skill. Add .vera/ to your .gitignore. The installation guide covers GPU backends, API mode, prebuilt binaries, and Docker.

What Vera does well

It finds code by behavior and by name. Every query runs keyword search (BM25) and embedding search side by side, merges the two lists, then applies code-aware ranking that prefers definitions over passing mentions and source files over tests and docs. Searching parse_config finds that function; searching "load settings from environment variables" finds it too.

Results are whole functions, not line fragments. Vera parses files with tree-sitter and indexes functions, classes, methods, structs, and other symbols as separate chunks. 54 of the 65 supported languages get symbol-level chunks; config files, docs, and the rest are split by section, whole file, or line windows. An agent reads the relevant symbol instead of opening the whole file.

It is fast on an ordinary CPU. On a desktop CPU (Ryzen 7 9800X3D), Vera indexes its own repository (438 files, about 7,900 chunks) in under a second, and a search from the command line returns in about 0.13 seconds, process startup included. vera update . and vera watch . re-index only the files that changed.

Its search quality holds up against the best local tools. On Semble's 1,251-task code search benchmark, run with the same embedding model, Vera scores within 1% of Semble on nDCG@10 and slightly ahead on Recall@5, with an index about a seventh the size. Details are below.

It does more than search. The same index answers structural questions: where a symbol is defined, who calls it, which routes or environment variables exist, which types implement an interface, and which functions have no callers. You can scope any search to files changed in your working tree or branch.

It is built for agents. vera agent install adds a Vera skill to more than 30 agent clients, including Claude Code, Codex, Cursor, OpenCode, Gemini CLI, and Copilot. Results come back as compact Markdown code blocks with paths and line ranges, which agents read well. An MCP server is included for clients that prefer it.

Using it with an AI agent

The recommended setup is the CLI plus the Vera skill. The skill tells the agent when to reach for vera search, vera references, or plain grep, and how to write queries that work.

vera agent install                  # interactive: pick agents and global or project scope
vera agent install --client all     # every supported agent, global scope

The interactive installer can also add a short Vera section to your project's AGENTS.md, CLAUDE.md, or editor rules file. If you use the skills CLI, npx skills add VeraTools/Vera works too.

vera mcp runs an MCP server over stdio with seven tools: search_code, get_overview, regex_search, structural_search, find_references, explain_path, and get_stats. It indexes the project on first use and keeps the index current while it runs.

claude mcp add vera -- vera mcp                               # Claude Code
{"mcpServers": {"vera": {"command": "vera", "args": ["mcp"]}}}

Setup for Codex, VS Code, and other clients is in the MCP guide.

Common commands

Task Command
Search by behavior vera search "retry failed uploads with backoff"
Try several phrasings at once vera search "OAuth token refresh" "JWT expiry" "auth middleware"
Narrow the results vera search "error handling" --lang rust --path "src/**" --type function
Search only files you changed vera search "token validation" --changed (or --base main)
Find a definition vera structural definitions parse_config
Find callers, or what a function calls vera references parse_config / vera references parse_config --callees
List routes, env reads, or implementations vera structural routes / vera structural env / vera structural impls Loader
Exact text or regex in indexed files vera grep "TODO|FIXME"
Get a project overview vera overview
Keep the index current vera update . or vera watch .
Find out why a file is not indexed vera explain-path path/to/file
Check your setup vera doctor

Results come back as Markdown code blocks, one per result, labeled with the path, line range, and symbol. Here is a search over the Flask repository with --compact, which keeps signatures and drops bodies:

$ vera search "load config from environment variables" --compact --limit 2
```src/flask/config.py:50-247 class:Config (part 1)
class Config(dict):  # type: ignore[type-arg] ...
```

```src/flask/cli.py:698-763 function:load_dotenv
def load_dotenv(
    path: str | os.PathLike[str] | None = None, load_defaults: bool = True
) -> bool: ...
```

Without --compact you get the full code of each result. Use --json for machine-readable output. The query guide explains how to write queries that land, and the feature guide covers every command.

Choosing a model backend

Indexing, storage, and search always run locally. The backend only decides where the embedding model runs.

Backend Setup When to use it
Potion Code on CPU (default) vera setup --potion-code Almost everyone. Small, fast, works offline after a one-time download.
Jina ONNX on GPU vera setup --onnx-jina-cuda (also ROCm, CoreML, DirectML, OpenVINO) You have a supported GPU and want a transformer embedding model locally.
API vera setup --api You want hosted models. Qwen3 embeddings plus reranking through OpenRouter scored highest in our model screening. Any OpenAI-compatible endpoint works, including a local llama.cpp server.

See models and backends for measurements and setup details.

Privacy

With a local backend, your code and queries stay on your machine; only the first model download needs the network. Code or queries go elsewhere only to endpoints you configure: API mode sends chunk text and queries to the embedding endpoint, an API reranker receives queries and candidate chunks (even with a local backend), and --deep with a completion endpoint sends the query to it. Vera checks GitHub for a new release once a day; set VERA_NO_UPDATE_CHECK=1 to turn that off.

Benchmarks

The main benchmark is Semble's task set: 1,251 code search queries across 63 open-source repositories, each with known correct answers. Semble is a popular local code search tool from MinishLab, the team behind the Potion embedding model. Both tools below used that same potion-code-16M-v2 model and the same tasks and nDCG@10 formula; see the benchmark page for how answers were matched.

Tool nDCG@10 Recall@1 Recall@5 Recall@10 Index size
Vera 2.0.1 0.844 0.671 0.920 0.950 4.7 GB
Semble 0.5.5 0.851 0.675 0.918 0.966 32 GB

Vera also scored slightly higher than Semble on the 320-task tuning subset (0.854 vs 0.849) and on an independent set of 180 tasks from 10 repositories outside Semble's benchmark (0.767 vs 0.766). That second set exists to check that neither tool, nor the shared embedding model, was tuned to Semble's own tasks.

In a small agent experiment (10 code-tracing questions about Flask, each answered by a fresh coding agent), every setup answered every question correctly. Agents with Vera used 27% less context than agents limited to grep and file reads, and 48% less with the Qwen API backend; agents with Semble used 12% less. With only 10 questions, the 48% result is the only one that is statistically significant.

Methodology, hardware, latency numbers, and the full history are on the benchmarks page.

How it works

query ─┬─ BM25 keyword search (Tantivy) ─┐
       └─ vector search (embeddings) ────┴─ rank fusion ─ optional reranker ─ code-aware ranking ─ results

Files are parsed with tree-sitter into symbol-sized chunks. Each chunk is indexed twice: as text for keyword search and as an embedding for semantic search. Everything is stored in .vera/ inside your project (SQLite, a Tantivy index, and a flat vector file), so there is no database or background service to run. How Vera works has the details, and the architecture decisions record why each piece was chosen.

Background

Before Vera, I maintained Pampax, my fork of an existing code search tool called PAMPA. I fixed and improved a lot of it, but kept running into limits in its foundation, so I started over. Vera is written from scratch in Rust, and its design choices (storage, chunking, ranking, default model) were each picked by measuring the alternatives. The experiments that did not pan out are documented alongside the ones that did.

Community and support

Vera is MIT licensed.

README fetched from the repository 1 hours ago. The original is authoritative.

Questions

About Vera

How do I install Vera?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Vera safe to use with an AI agent?

Its trust score is 52 out of 100 (fair). It passes 5 of the 5 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Vera still maintained?

Yes — the latest release is v2.1.4 (14 Oct 2026), and the last commit was 3 days ago. The repository has 120 stars.