mcpField
V
Vexor

Vexor

Local
github.com/scarletkcSearch247Updated 4w ago

About Vexor

Vexor is a semantic search engine that builds reusable indexes over files and code, with configurable embedding and reranking providers. It is offered as a Python API, a CLI and an MCP server, aimed at developers and AI coding agents that need to locate files by meaning.

Key features

  1. 01Reusable semantic indexes over files and code
  2. 02Configurable embedding and reranking providers
  3. 03Python API, command line and MCP server interfaces
  4. 04Offline use through local embedding models
  5. 05Hybrid keyword and semantic ranking option

Use cases

  1. 01Finding source files by what they do rather than their names
  2. 02Letting AI coding agents discover relevant files in workflows
  3. 03Warming up indexes in CI pipelines

MCP support

Vexor ships a built-in MCP stdio server that exposes vexor_search and vexor_index as tools, with search results including the matching source text.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"scarletkc-vexor": {
"command": "uvx",
"args": [
"vexor"
],
"env": {
"VEXOR_API_KEY": "<VEXOR_API_KEY>",
"VEXOR_REMOTE_RERANK_API_KEY": "<VEXOR_REMOTE_RERANK_API_KEY>",
"VEXOR_CONFIG_JSON": "<VEXOR_CONFIG_JSON>"
}
}
}
}
Run commanduvx vexor
Environment variables to set
VEXOR_API_KEYSecretEmbedding provider API key (optional; overrides a stored key; providers can also be configured via `vexor init`)
VEXOR_REMOTE_RERANK_API_KEYSecretRemote reranker API key (optional; overrides a stored key; only needed when rerank is set to remote)
VEXOR_CONFIG_JSONNon-secret Vexor config as a JSON object, e.g. {"provider": "gemini", "rerank": "bm25"} (optional; merged over ~/.vexor/config.json; credential fields are rejected, use the dedicated variables)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypivexor0.30.0

Tools

2

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
topintegerNoNumber of results to return.
modeenumNoIndex granularity: auto routes per file type; name embeds filenames only; head/full/brief cover content depth; code chunks by AST; outline chunks Markdown by headings.auto | brief | code | full | head | name | outline
pathstringNoDirectory to operate on. Absolute, or relative to the server's default path (/tmp).
querystringYesNatural-language description of the file or code you are looking for, e.g. 'where API retries are configured'.
no_cachebooleanNoBuild a temporary in-memory index and disable all disk caches for this search. Slower and may regenerate embeddings.
recursivebooleanNoRecurse into subdirectories (default). Set false to scan only the top level of the directory.
extensionsarrayNoOnly include these file extensions, e.g. ['.py', '.md'].
content_budgetintegerNoTotal characters of source text one response may return, spent on the highest-ranked matches first.
include_hiddenbooleanNoInclude dot-prefixed files and directories such as .github or .env (excluded by default).
include_contentbooleanNoReturn each match's source text alongside its path. Text is read from the file at search time. A result carries content_unavailable instead when the mode records no line range, the file changed since indexing, or the budget ran out.
exclude_patternsarrayNoGitignore-style patterns to exclude.
respect_gitignorebooleanNoHonor .gitignore rules (default). Set false to also scan ignored files such as build output.

Details

From the project README
Vexor

Vexor

Python PyPI CI Codecov CodeRabbit Pull Request Reviews License Ask DeepWiki


Vexor is a semantic search engine that builds reusable indexes over files and code. It supports configurable embedding and reranking providers, and exposes the same core through a Python API, a CLI tool, and an MCP server.

Vexor Demo Video

Featured In

Vexor has been recognized and featured by the community:

Why Vexor?

When you remember what a file does but forget its name or location, Vexor finds it instantly—no grep patterns or directory traversal needed.

Designed for both humans and AI coding assistants, enabling semantic file discovery in autonomous agent workflows.

Install

Download standalone binary from releases (no Python required), or:

pip install vexor  # also works with pipx, uv

Quick Start

0. Guided Setup (Recommended)
vexor init

The wizard also runs automatically before the first interactive operational command when no config exists. Configuration-management (vexor config), MCP, help, and version commands run directly.

1. Search
vexor "api client config"  # defaults to search current directory
# or explicit path:
vexor search "api client config" --path ~/projects/demo --top 5
# in-memory search only:
vexor search "api client config" --no-cache 

Vexor auto-indexes on first search. Example output:

Vexor semantic file search results
──────────────────────────────────
#   Similarity   File path                       Lines   Preview
1   0.923        ./src/config_loader.py          -       config loader entrypoint
2   0.871        ./src/utils/config_parse.py     -       parse config helpers
3   0.809        ./tests/test_config_loader.py   -       tests for config loader
2. Explicit Index (Optional)
vexor index  # indexes current directory
# or explicit path:
vexor index --path ~/projects/demo --mode code

Useful for CI warmup or when auto_index is disabled.

Python API

Vexor can also be imported and used directly from Python:

from vexor import index, search

index(path=".", mode="head")
response = search("config loader", path=".", mode="name")

for hit in response.results:
    print(hit.path, hit.score)

Configuration follows the same global and project-level resolution as the CLI. For runtime overrides, cache controls, and per-call options, see docs/api/python.md.

AI Agent Skill

This repo includes a skill for AI agents to use Vexor effectively:

vexor install --skills claude  # Claude Code
vexor install --skills codex   # Codex

Skill source: plugins/vexor/skills/vexor-cli

MCP Server

vexor MCP server

Note

The Agent Skill and the MCP server provide the same core capability — pick one per agent. The skill teaches shell-capable agents (Claude Code, Codex) to drive the full CLI and assumes vexor is installed on PATH; the MCP server exposes search as native tools, works in any MCP client (Cursor, Windsurf, Zed, ...), and can bootstrap without prior setup via uvx and environment variables.

Vexor ships a built-in MCP stdio server, so any MCP-capable agent can use semantic file search as a native tool:

claude mcp add vexor -- vexor mcp   # Claude Code
codex mcp add vexor -- vexor mcp    # Codex

Or configure manually in any MCP client, optionally supplying the API key and any config overrides via env (no vexor init needed):

{
  "mcpServers": {
    "vexor": {
      "command": "vexor",
      "args": ["mcp"],
      "env": {
        "VEXOR_API_KEY": "sk-...",
        "VEXOR_CONFIG_JSON": "{\"provider\": \"gemini\", \"rerank\": \"bm25\"}"
      }
    }
  }
}

The server exposes two tools: vexor_search (semantic file search, returning the matching source text so an agent rarely needs a follow-up file read) and vexor_index (explicit index warm-up). No extra dependencies are required. Vexor is listed on the official MCP registry as io.github.scarletkc/vexor. See docs/mcp.md for tool schemas, environment variables, and client setup details.

Configuration

vexor init                             # guided setup (recommended)
vexor config --set-api-key "YOUR_KEY"  # or env: VEXOR_API_KEY / OPENAI_API_KEY / ...
vexor config --set-provider openai     # default; also gemini/voyageai/custom/local
vexor config --rerank hybrid           # optional: fuse exact keyword + semantic ranking
vexor config --show                    # view effective settings and origins

Global config lives in ~/.vexor/config.json; the nearest <project>/.vexor/config.json can override a restricted set of behavior fields for that project. Non-secret fields can also be injected via VEXOR_CONFIG_JSON (useful for MCP clients and CI), and fully offline use is supported through local embedding models.

See docs/configuration.md for the complete reference: project config fields and precedence, all config commands, API keys and environment variables, rerank strategies (hybrid / BM25 / FlashRank / remote), remote vs local providers, embedding dimensions, and offline local model setup.

CLI Reference

Everyday usage fits in vexor "query", vexor search, and vexor index (see Quick Start). The full command table, common flags, index modes (--mode auto/name/head/brief/full/code/outline), .vexorignore files, project-local indexes (vexor index --local), cache behavior, and porcelain output format are documented in docs/cli.md.

Documentation

  • Configuration — providers, API keys, rerank, embedding dimensions, local models
  • CLI reference — commands, flags, index modes, cache behavior
  • MCP server — client setup, environment variables, tool schemas
  • Python API — programmatic usage
  • Collections API — database-backed text records and filtered search

Contributing

Contributions, issues, and PRs welcome! Commit messages and PR titles follow Conventional Commits (e.g. feat(mcp): add stdio server). Star if you find it helpful.

Star History

Star History Chart

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.