vex — Claude Code MCP server: code search, what it does, install
Local code search for coding agents: symbol lookup, callers, AST patterns and semantic matches. Useful when an agent gets lost in a large repo.
Open on GitHubWhat vex does
vex indexes a repository once and then answers code questions in milliseconds. vex check finds an exact name, vex show returns just the symbol body, and vex usages or vex callers reveal who references and who invokes a function. There is semantic vex search, AST matching through vex pattern, and vex bundle that packs a symbol body with its callers into a single response.
The index combines three channels: an FST of names, BM25 over body text and a vector search for meaning, fused into one ranked list. The call graph is persisted, so caller and callee lookups skip a fresh tree-sitter scan. Tree-sitter covers 20 languages; refactor-grade --strict references work for Rust, TypeScript, Python, C#, C++, Go, Java and Kotlin.
It is not an LSP replacement. Go-to-definition into third-party packages, renames and type checks stay with your language server. Decorator routing, string-resolved factories and reflection are invisible to vex, so vex grep remains the escape hatch there. Outside function bodies the call graph is patchy, and on Python or FastAPI codebases read docs/LIMITATIONS.md first.
What it helps with
- locate a class definition without opening the whole file
- list every caller and implementation of a function
- find a symbol by meaning when the name is forgotten
- match an AST pattern such as
fn $NAME($$$) -> Result - pull a symbol body and its callers in one request
Example prompts for the agent
- Use vex to check whether
TelemetryProcessorexists and show me its class body. - List everyone who calls
process_eventwith vex, then show all implementations ofBaseService. - Search the vex index for timeout retry handling; afterwards find symbols semantically close to
PaymentService.
How to install vex
Install
The MCP registry has no launch command for it: see the repository README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about vex
How do I install vex in Claude Code?
There is no install command for Claude: build the binary from the tenatarika/vex repository and register it as a local MCP server in the Claude configuration.
What does vex do?
It indexes your codebase and answers symbol questions: where it is defined, who calls it, which implementations exist, what is semantically nearby. Text grep and AST pattern search are included.
Do I need to build an index first?
Yes. Search reads a pre-built index: vex index costs a fraction of a second on a typical project, and queries then run in milliseconds. Without the index the search commands have nothing to query.