关于 Vexor
Vexor 是一款面向文件与代码的语义搜索引擎,可构建可复用的索引,并支持可配置的 embedding 与重排序提供方。它同时提供 Python API、命令行工具和 MCP 服务,适合开发者及 AI 编码 Agent 按含义查找文件。
主要功能
- 01构建可复用的文件与代码索引
- 02支持可配置的 embedding 与重排序提供方
- 03提供 Python API、命令行与 MCP 服务三种入口
- 04支持本地 embedding 模型离线使用
- 05支持混合关键词与语义排序
适用场景
- 01根据文件用途而非文件名查找源码
- 02让 AI 编码 Agent 在工作流中发现相关文件
- 03在 CI 中预先构建索引
MCP 相关
Vexor 内置 MCP stdio 服务,向 MCP 客户端暴露 vexor_search 和 vexor_index 两个工具,搜索结果会返回匹配的源码文本。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx vexorVEXOR_API_KEY密钥Embedding provider API key (optional; overrides a stored key; providers can also be configured via `vexor init`)VEXOR_REMOTE_RERANK_API_KEY密钥Remote 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)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
2收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| top | integer | 否 | 要返回的结果数。 |
| mode | enum | 否 | 索引粒度:auto 按文件类型路由;name 仅嵌入文件名;head/full/brief 控制内容深度;code 按 AST 分块;outline 按 Markdown 标题分块。auto | brief | code | full | head | name | outline |
| path | string | 否 | 要操作的目录。可以是绝对路径,也可以是相对于服务器默认路径(/tmp)的路径。 |
| query | string | 是 | 要查找的文件或代码的自然语言描述,例如“在哪里配置了 API 重试”。 |
| no_cache | boolean | 否 | 为此搜索构建临时内存索引,并禁用所有磁盘缓存。速度较慢,且可能会重新生成嵌入向量。 |
| recursive | boolean | 否 | 递归搜索子目录(默认)。设为 false 时,仅扫描目录的顶层。 |
| extensions | array | 否 | 仅包含这些文件扩展名,例如 ['.py', '.md']。 |
| content_budget | integer | 否 | 单次响应可返回的源文本总字符数;优先分配给排名最高的匹配项。 |
| include_hidden | boolean | 否 | 包含以点开头的文件和目录,例如 .github 或 .env(默认排除)。 |
| include_content | boolean | 否 | 在每个匹配项的路径旁返回其源文本。文本在搜索时从文件读取。如果模式未记录行范围、文件在索引后发生更改,或预算耗尽,则结果会改为包含 content_unavailable。 |
| exclude_patterns | array | 否 | 用于排除文件的 Gitignore 风格模式。 |
| respect_gitignore | boolean | 否 | 遵循 .gitignore 规则(默认)。设为 false 时,也会扫描被忽略的文件,例如构建输出。 |
详细介绍
Vexor 是一款语义搜索引擎,可为文件和代码构建可复用的索引。 它支持可配置的嵌入和重排序提供商,并通过 Python API、CLI 工具和 MCP 服务提供相同的核心功能。
Vexor 演示视频精选推荐
Vexor 获得了社区认可并被多处推荐:
- 阮一峰的周刊(第 379 期) - 中国开发者社区中颇具影响力的技术通讯。
- Awesome Claude Skills - 为 AI Agent 精选的优质技能列表。
- Awesome MCP Servers - 精选的模型上下文协议服务列表。
- Awesome CLI Apps - 精选的命令行应用列表。
为什么选择 Vexor?
当你记得某个文件的用途,却忘了它的名称或位置时,Vexor 能即刻找到它——无需 grep 模式或遍历目录。
Vexor 专为人类和 AI 编码助手打造,可在自主 Agent 工作流中实现语义文件发现。
安装
从 releases 下载独立二进制文件(无需 Python),或:
pip install vexor # also works with pipx, uv
快速入门
0. 引导式设置(推荐)
vexor init
如果不存在配置,向导也会在首次运行交互式操作命令前自动启动。
配置管理(vexor config)、MCP、帮助和版本命令会直接运行。
1. 搜索
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 会在首次搜索时自动建立索引。输出示例:
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. 显式建立索引(可选)
vexor index # indexes current directory
# or explicit path:
vexor index --path ~/projects/demo --mode code
适用于 CI 预热,或禁用 auto_index 时。
Python API
也可以直接在 Python 中导入并使用 Vexor:
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)
配置解析方式与 CLI 相同,遵循全局和项目级配置。
有关运行时覆盖、缓存控制和单次调用选项,请参阅
docs/api/python.md。
AI Agent 技能
此代码库包含一项技能,供 AI Agent 高效使用 Vexor:
vexor install --skills claude # Claude Code
vexor install --skills codex # Codex
技能源文件:plugins/vexor/skills/vexor-cli
MCP 服务
说明
Agent Skill 和 MCP 服务提供相同的核心能力——每个 Agent 任选其一。 该技能教会具备 shell 操作能力的 Agent(Claude Code、Codex)使用完整 CLI,并假设
vexor已安装在 PATH 上;MCP 服务将搜索功能作为原生工具公开,可用于任何 MCP 客户端(Cursor、Windsurf、Zed 等),并可通过uvx和环境变量在无需预先设置的情况下启动。
Vexor 内置了 MCP stdio 服务,因此任何支持 MCP 的 Agent 都能将语义文件搜索用作原生工具:
claude mcp add vexor -- vexor mcp # Claude Code
codex mcp add vexor -- vexor mcp # Codex
或者在任何 MCP 客户端中手动配置,也可以选择通过 env 提供 API 密钥
和任何配置覆盖项(无需运行 vexor init):
{
"mcpServers": {
"vexor": {
"command": "vexor",
"args": ["mcp"],
"env": {
"VEXOR_API_KEY": "sk-...",
"VEXOR_CONFIG_JSON": "{\"provider\": \"gemini\", \"rerank\": \"bm25\"}"
}
}
}
}
该服务提供两个工具:vexor_search(语义文件搜索,返回匹配的源文本,因此 Agent 通常无需再读取文件)和 vexor_index(显式预热索引)。无需额外依赖。Vexor 已列入官方 MCP 注册表,名称为 io.github.scarletkc/vexor。工具架构、环境变量和客户端设置详情,请参阅 docs/mcp.md。
配置
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
全局配置位于 ~/.vexor/config.json;最近的
<project>/.vexor/config.json 可为该项目覆盖一组受限的行为字段。也可以通过 VEXOR_CONFIG_JSON
注入非机密字段(适用于 MCP 客户端和 CI),并且支持通过
本地嵌入模型完全离线使用。
完整参考请参阅 docs/configuration.md:项目配置字段及优先级、所有配置命令、API 密钥和环境变量、重排策略(混合 / BM25 / FlashRank / 远程)、远程与本地提供方、嵌入维度,以及离线本地模型设置。
CLI 参考
日常使用只需 vexor "query"、vexor search 和 vexor index(参见快速入门)。完整命令表、常用标志、索引模式(--mode auto/name/head/brief/full/code/outline)、.vexorignore 文件、项目本地索引(vexor index --local)、缓存行为和 porcelain 输出格式,均记录在 docs/cli.md 中。
文档
- 配置 — 提供方、API 密钥、重排、嵌入维度、本地模型
- CLI 参考 — 命令、标志、索引模式、缓存行为
- MCP 服务 — 客户端设置、环境变量、工具架构
- Python API — 编程式用法
- 集合 API — 由数据库支持的文本记录和筛选搜索
参与贡献
欢迎贡献、提交问题和 PR!提交消息和 PR 标题遵循 Conventional Commits 规范(例如 feat(mcp): add stdio server)。如果觉得有帮助,请点个 Star。
Star 历史
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。