关于 Code Index
Code Index 是用于索引本地源码目录并通过 Zoekt 搜索代码的 MCP 服务,面向需要在项目中快速查找内容的开发者。它支持子串、正则表达式及带文件和语言过滤的查询。
主要功能
- 01分别索引源码目录
- 02使用 Zoekt 三元组索引搜索
- 03支持正则表达式和布尔运算符
- 04按文件类型和语言筛选
- 05列出、查看和删除索引
适用场景
- 01在已索引项目中查找符号
- 02将搜索限定到特定语言或文件类型
- 03管理本地存储的目录索引
MCP 相关
该服务提供索引目录、搜索已索引代码、列出或删除索引以及查看索引配置的工具。可注册到 Claude Desktop、Claude Code 等 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Code Index MCP Server
一个 MCP(Model Context Protocol)服务,使用 Zoekt 快速搜索本地源代码。
功能
- 快速代码搜索:使用 Zoekt 基于三元组的索引,实现快速子串和正则表达式匹配
- 按目录建立索引:每个已索引目录都有自己的索引,并存储在用户配置文件中
- 丰富的查询语言:支持正则表达式、文件筛选、语言筛选和布尔运算符
- 跨平台:支持 macOS 和 Linux
安装
此服务已收录在 MCP Registry。
下载预构建的 MCPB bundle(实验性)
从 GitHub Releases 页面下载适用于你平台的 .mcpb bundle:
code-index-mcp-darwin-arm64.mcpb- macOS Apple Siliconcode-index-mcp-darwin-amd64.mcpb- macOS Intelcode-index-mcp-linux-amd64.mcpb- Linux x64code-index-mcp-linux-arm64.mcpb- Linux ARM64
.mcpb 文件是一个包含二进制文件和清单的 ZIP 压缩包。你可以直接在 Claude Desktop 中打开它进行安装
手动安装(推荐)
要将二进制文件下载到电脑上,可以采用以下任一方式:
从 releases 下载
前往 GitHub Releases,下载 适用于你平台的文件(不是 mcpb,而是对应平台的 tar/gzipped 文件)。 例如:
curl -sL https://github.com/trondhindenes/code-index-mcp/releases/download/1.0.13/code-index-mcp-darwin-arm64.tar.gz | tar xz
chmod +x code-index-mcp
使用 Go
go install github.com/trondhindenes/code-index-mcp@latest
从源代码构建
git clone https://github.com/trondhindenes/code-index-mcp
cd code-index-mcp
go build -o code-index-mcp .
配置
现在你已在本地安装了二进制文件,可以在你选择的工具中注册它。 如果你通过 mcpb bundle 安装,则通常无需进行此操作,但实际情况可能有所不同。
Claude Desktop
将以下内容添加到 Claude Desktop 配置文件中(macOS 上的路径为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"code-index": {
"command": "/path/to/code-index-mcp"
}
}
}
Claude Code
运行以下命令:
claude mcp add --scope user --transport stdio code-index /path/to/code-index-mcp
环境变量
CODE_INDEX_DIR:覆盖默认的索引存储位置
默认索引位置:
- macOS:
~/Library/Application Support/code-index/ - Linux:
~/.local/share/code-index/或$XDG_DATA_HOME/code-index/
可用工具
index_directory
为源代码目录建立索引,以便快速搜索。
参数:
directory(必填):要建立索引的目录路径
示例:
Index the directory /Users/me/projects/myapp
search_code
在所有已索引目录中搜索代码。返回类似 grep 的精简输出,以尽量减少上下文窗口占用。
参数:
query(必填):使用 Zoekt 语法编写的搜索查询directory(可选):将搜索范围限制在指定的已索引目录中max_files(可选):最多返回的文件数(默认值:20)max_lines_per_file(可选):每个文件最多返回的匹配数(默认值:3)files_only(可选):仅返回文件路径,不包含行内容(默认值:false)
输出格式:
/path/to/file.go:42: matching line content here
/path/to/file.go:58: another matching line
... and 5 more matches in this file
查询语法示例:
func main- 简单文本搜索file:\.go$ func main- 仅搜索 .go 文件lang:python class.*Model- 在 Python 文件中搜索-test func main- 排除包含 "test" 的文件case:yes MyFunc- 区分大小写的搜索
list_indexes
列出所有已索引的目录及其位置。
delete_index
删除指定目录的索引。
参数:
directory(必填):要删除其索引的目录路径
index_info
获取索引配置的信息,包括存储位置。
跳过的目录
建立索引时会自动跳过以下目录:
- 隐藏目录(以
.开头) node_modules、vendor、__pycache__target、build、distvenv、.venv、env、.env
已跳过的文件
系统会自动跳过二进制文件和常见的非代码文件,包括:
- 可执行文件(
.exe、.dll、.so、.dylib) - 归档文件(
.zip、.tar、.gz) - 图片(
.png、.jpg、.gif) - 文档(
.pdf、.doc、.docx)
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。