项目简介 Code Indexer ('cidx') 是一个强大的AI驱动的代码索引和搜索工具,旨在通过语义搜索而非传统关键词匹配来帮助开发者理解和查找代码。它支持多种编程语言,并提供三种搜索模式(语义搜索、全文搜索、正则表达式匹配)以及Git历史搜索功能。Code Indexer还提供守护进程模式以优化性能,并能通过MCP桥接集成到AI助手和LLM客户端,作为这些智能工具的上下文提供者和功能扩展器。
主要功能点
- AI语义代码搜索: 利用AI嵌入技术,通过代码的含义进行智能搜索。
- 多种搜索模式: 支持语义搜索、高速全文搜索(比'grep'快1.36倍)和正则表达式模式匹配。
- Git历史搜索: 索引并搜索完整的Git提交历史,用于代码溯源、bug分析和功能演进追踪。
- 实时文件监控: 在后台自动监控文件变化并进行增量索引。
- 灵活的过滤功能: 支持按语言、路径、分数等多种条件进行高级过滤。
- MCP服务器集成: 作为Model Context Protocol (MCP) 服务器,通过JSON-RPC协议向LLM客户端(如Claude Desktop)提供代码搜索能力,包括提供工具(Tools)、管理资源(Resources)和支持Prompt模板(Prompts)。
- 两种操作模式:
- CLI模式: 供个人开发者在本地命令行直接操作,无额外依赖,即时设置。
- 守护进程模式: 作为后台服务运行,提供内存缓存、Unix套接字通信和实时文件监控,实现毫秒级查询。
安装步骤 Code Indexer推荐使用 'pipx' 或 'pip' 进行安装。请确保您的系统已安装 Python 3.9+。
- 安装Python包:
- 使用 'pipx' (推荐):
pipx install git+https://github.com/jsbattig/[email protected] # 如果cidx命令未找到,可能需要将pipx的bin目录添加到PATH: # export PATH="$HOME/.local/bin:$PATH" - 使用 'pip' 与虚拟环境:
python3 -m venv code-indexer-env source code-indexer-env/bin/activate pip install git+https://github.com/jsbattig/[email protected]
- 使用 'pipx' (推荐):
- 设置全局注册表:
cidx setup-global-registry - 配置VoyageAI API Key: Code Indexer使用VoyageAI进行代码嵌入。请访问 https://www.voyageai.com/ 获取API Key,并将其设置为环境变量:
export VOYAGE_API_KEY="your-voyage-ai-api-key"
MCP服务器配置(适用于Claude Desktop等LLM客户端) Code Indexer通过一个名为 'MCP Bridge' ('mcpb') 的本地二进制文件充当MCP服务器,该桥接器负责将LLM客户端的请求转换为对 'cidx' 后端服务的调用。您需要配置您的LLM客户端(例如Claude Desktop)来启动这个 'mcpb' 桥接器。
-
运行MCP Bridge设置脚本: 此脚本将引导您配置 'mcpb' 桥接器如何连接到您的 'cidx' 后端服务。它会提示您输入 'cidx' 服务端的URL、用户名和密码,并生成 '~/.mcpb/config.json' 文件来存储认证令牌。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/jsbattig/code-indexer/master/scripts/setup-mcpb.sh)"请根据提示输入以下信息:
- Server URL: 您的 'cidx' 服务器地址,例如 'https://your-server.com:8383' 或 'http://localhost:8001' (如果您在本地运行Code Indexer的守护进程模式)。
- Username: 您的 'cidx' 服务器用户名。
- Password: 您的 'cidx' 服务器密码。
-
下载MCP Bridge二进制文件: 从 GitHub Releases 下载适用于您操作系统的 'mcpb' 二进制文件。选择正确的版本,例如:
- macOS (Apple Silicon): 'mcpb-darwin-arm64'
- macOS (Intel): 'mcpb-darwin-x64'
- Linux: 'mcpb-linux-x64'
- Windows: 'mcpb-windows-x64.exe'
下载后,如果您在macOS或Linux系统上,请赋予其执行权限:
chmod +x /path/to/your/downloaded/mcpb-binary # 替换为实际路径和文件名 -
配置LLM客户端: 编辑您的LLM客户端的配置文件,例如Claude Desktop的 'claude_desktop_config.json'。这个文件通常位于:
- macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%\Claude\claude_desktop_config.json'
- Linux: '~/.config/Claude/claude_desktop_config.json'
在配置文件中找到 'mcpServers' 部分,并添加 Code Indexer 的配置。例如:
{ "mcpServers": { "cidx": { "command": "/absolute/path/to/your/downloaded/mcpb-binary" // "args": [] // 如果mcpb需要额外的命令行参数,可以在这里添加,目前仓库信息未明确指出需要 } } }请务必将 '"/absolute/path/to/your/downloaded/mcpb-binary"' 替换为您下载的 'mcpb' 二进制文件的实际绝对路径。
-
重启LLM客户端: 配置完成后,重启您的LLM客户端(如Claude Desktop)以激活Code Indexer MCP服务器。
基本使用方法
- 初始化项目: 在您的代码项目根目录中运行,会创建 '.code-indexer/config.json'。
cd /path/to/your/project cidx init - 启动守护进程 (可选,推荐): 如果要使用守护进程模式以获得最佳性能。
cidx config --daemon cidx start # 启用实时监控 (可选) cidx watch - 索引代码: 运行此命令索引您的代码库。支持增量索引。
cidx index # 索引Git历史 (可选) cidx index --index-commits - 语义搜索: 使用自然语言进行代码搜索。
cidx query "authentication logic" - 全文搜索: 进行快速的文本匹配搜索。
cidx query "authenticate_user" --fts - 高级过滤: 结合多种过滤条件。
cidx query "database models" --language python --path-filter "*/src/*" --min-score 0.8 - 管理服务:
cidx status # 检查服务状态 cidx stop # 停止服务 cidx clean-data # 清除当前项目数据
信息
分类
开发者工具