语义代码搜索工具

Codebaxing是一款用于语义代码搜索的MCP服务器,能够通过自然语言查询理解代码含义,适用于代码库索引和搜索。

  • by duysolo
  • TypeScript
  • 本地部署
  • 53 星标
  • 更新于
在 GitHub 查看 duysolo/codebaxing

使用说明

Codebaxing

英语 | 越南语

MCP服务器 语义代码搜索。对代码库进行一次索引,然后使用自然语言进行搜索。

运作原理

Your Code → Tree-sitter Parser → Symbols → Embedding Model → Vectors → ChromaDB
                                                                           ↓
"find auth logic" → Embedding → Query Vector → Similarity Search → Results

传统搜索会匹配精确的文本。Codebaxing理解其含义:

查询 查找(即使没有完全匹配)
“身份验证” login()、validateCredentials()、authMiddleware()
“数据库连接” connectDB()、prismaClient、repository.query()

快速开始

1.启动ChromaDB

docker run -d -p 8000:8000 --name chromadb chromadb/chroma

2.索引您的代码库(CLI)

npx codebaxing@latest index /path/to/your/project

这创建了一个 .codebaxing/ 带有索引的文件夹。每个项目只需要做一次。

性能说明: 本地嵌入速度较慢(约4000个文件需要约4分钟)。为了更快地索引,请使用Gemini嵌入(免费)——请参阅 云嵌入 在......下面

3.为AI编辑器安装MCP服务器

npx codebaxing install              # Claude Desktop
npx codebaxing install --cursor     # Cursor
npx codebaxing install --windsurf   # Windsurf
npx codebaxing install --all        # All editors

重新启动编辑器。现在你可以问: “查找身份验证逻辑”

CLI命令

命令 描述
npx codebaxing@latest index <path> 为代码库建立索引(先要求)
npx codebaxing search <query> 搜索索引代码
npx codebaxing stats [path] 显示索引统计信息
npx codebaxing clean [path] 删除索引(重置)
npx codebaxing install [--editor] 安装MCP服务器
npx codebaxing uninstall [--editor] 卸载MCP服务器

提示: 使用 @latest 为了 index 以确保您拥有最新版本。

搜索选项

npx codebaxing search "auth middleware" --path ./src --limit 10
  • --path, -p -代码库路径(默认:当前目录)
  • --limit, -n -结果数(默认值:5)

MCP工具(用于AI代理)

安装后,AI代理可以使用这些工具:

工具 说明
search 语义代码搜索
stats 指数统计
languages 支持的文件扩展名
remember 存储项目内存
recall 找回记忆
forget 删除记忆

注: 这 index AI代理的工具已禁用。使用CLI: npx codebaxing@latest index <path>

配置

云嵌入(最快)

本地嵌入在CPU上运行,对于大型代码库可能很慢(对于约4000个文件,大约需要4分钟)。云嵌入是 速度提高约25倍 并推荐用于任何有1000+个文件的项目。

# Gemini (FREE - recommended, 1500 RPM free tier)
CODEBAXING_EMBEDDING_PROVIDER=gemini GEMINI_API_KEY=... npx codebaxing@latest index /path

# OpenAI (text-embedding-3-small, 384 dims)
CODEBAXING_EMBEDDING_PROVIDER=openai OPENAI_API_KEY=sk-... npx codebaxing@latest index /path

# Voyage (voyage-code-3, 1024 dims, code-optimized)
CODEBAXING_EMBEDDING_PROVIDER=voyage VOYAGE_API_KEY=va-... npx codebaxing@latest index /path
供应商 型号 速度 成本
双子座 text-embedding-004 (768调暗) ~10000条文本/秒 免费(1500转/分)
开放人工智能 text-embedding-3-small (384 dims) 约10000条文本/秒 约0.02美元/1M代币
航行 voyage-code-3 (1024 dims) 约10000条文本/秒 约0.06美元/1M代币
本地 all-MiniLM-L6-v2 (384调光) ~200条文本/秒 免费(CPU)

注: 在提供商之间切换需要完全重新索引(npx codebaxing@latest index <path>)由于尺寸差异。

环境变量

变量 描述 默认值
CHROMADB_URL ChromaDB服务器URL http://localhost:8000
CODEBAXING_EMBEDDING_PROVIDER 嵌入后端: local, gemini, openai, voyage local
CODEBAXING_DEVICE 计算设备(仅限本地): cpu, cuda cpu
CODEBAXING_DTYPE 模型量化(仅限于本地): fp32, fp16, q8, q4 q8
CODEBAXING_WORKERS 用于并行嵌入的工作线程(仅限本地,0=关闭) 2
CODEBAXING_MAX_FILE_SIZE 最大文件大小(MB) 1
CODEBAXING_MAX_CHUNKS 要索引的最大块数 500000
CODEBAXING_FILES_PER_BATCH 每批文件数(较低=RAM较少) 100
CODEBAXING_PARALLEL_BATCHES 并发批次 3
CODEBAXING_METADATA_SAVE_INTERVAL 每N批保存进度 10
CODEBAXING_MODEL_CACHE 模型缓存目录(仅限本地) ~/.cache/codebaxing/models
CODEBAXING_OPENAI_API_KEY OpenAI API密钥(或使用 OPENAI_API_KEY) -
CODEBAXING_VOYAGE_API_KEY Voyage API密钥(或使用 VOYAGE_API_KEY) -
CODEBAXING_GEMINI_API_KEY Gemini API密钥(或使用 GEMINI_API_KEY) -
CODEBAXING_EMBEDDING_MODEL 覆盖嵌入模型名称 每个提供程序的默认值
CODEBAXING_EMBEDDING_DIMENSIONS 覆盖嵌入维度 每个提供程序的默认值
CODEBAXING_EMBEDDING_BASE_URL 云提供程序的自定义API端点 提供程序默认值

手动编辑器配置

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "codebaxing": {
      "command": "npx",
      "args": ["-y", "codebaxing"],
      "env": { "CHROMADB_URL": "http://localhost:8000" }
    }
  }
}
Cursor

~/.cursor/mcp.json

{
  "mcpServers": {
    "codebaxing": {
      "command": "npx",
      "args": ["-y", "codebaxing"],
      "env": { "CHROMADB_URL": "http://localhost:8000" }
    }
  }
}
Other Editors

风浪: ~/.codeium/windsurf/mcp_config.json Zed: ~/.config/zed/settings.json (使用 context_servers 按键) VS代码+继续: ~/.continue/config.json

支持的语言

Python、JavaScript、TypeScript、Go、Rust、Java、C/C++、C#、Ruby、PHP、Kotlin、Swift、Scala、Lua、Dart、Elixir、Haskell、OCaml、Zig、Perl、Bash、HTML、CSS、Vue、JSON、YAML、TOML、Makefile

需求

  • Node.js>=20.0.0
  • Docker(用于ChromaDB)
  • ~500MB磁盘空间(嵌入式型号)

技术细节

组件 技术
本地嵌入 all-MiniLM-L6-v2 (384调光,ONNX,q8量化)
云嵌入 双子座 text-embedding-004 (免费)、OpenAI或Voyage
模型缓存 ~/.cache/codebaxing/models/ (仅限本地,下载一次)
矢量数据库 ChromaDB
代码解析器 树形图(28种语言)
MCP-SDK @modelcontextprotocol/sdk

本地模式:嵌入模型在第一次运行时从HuggingFace下载并缓存在 ~/.cache/codebaxing/models/.使用q8量化(比fp32快约3倍)。首次下载后无法访问网络。

云模式:将代码块发送到OpenAI/Vyage API进行嵌入。比本地CPU快约25倍。需要API密钥。

许可证

麻省理工学院