The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Code Index listing page.
An MCP (Model Context Protocol) server for fast local source code searching using Zoekt.
This server is available on the MCP Registry.
Download the appropriate .mcpb bundle for your platform from the GitHub Releases page:
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 ARM64The .mcpb file is a ZIP archive containing the binary and manifest. You can open it directly in Claude Desktop in order to install it
In order to get the binary onto your computer, you can do one of the following:
Go to GitHub Releases and download the appropriate file (not mcpb but the tar/gzipped ones corresponding to your platform). For example:
Now that you have the binary installed locally, you can register it in your tools of choice. This should not be necessary if you installed via mcpb bundle but your mileage may vary.
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Run the following:
CODE_INDEX_DIR: Override the default index storage locationDefault index locations:
~/Library/Application Support/code-index/~/.local/share/code-index/ or $XDG_DATA_HOME/code-index/index_directoryIndex a source code directory for fast searching.
Parameters:
directory (required): The path to the directory to indexExample:
search_codeSearch for code across indexed directories. Returns compact grep-like output to minimize context window usage.
Parameters:
query (required): The search query using Zoekt syntaxdirectory (optional): Limit search to a specific indexed directorymax_files (optional): Maximum files to return (default: 20)max_lines_per_file (optional): Maximum matches per file (default: 3)files_only (optional): Only return file paths, no line content (default: false)Output Format:
Query Syntax Examples:
func main - Simple text searchfile:\.go$ func main - Search only in .go fileslang:python class.*Model - Search in Python files-test func main - Exclude files containing "test"case:yes MyFunc - Case-sensitive searchlist_indexesList all indexed directories and their locations.
delete_indexDelete the index for a specific directory.
Parameters:
directory (required): The path to the directory whose index should be deletedindex_infoGet information about the indexing configuration, including storage location.
The following directories are automatically skipped during indexing:
.)node_modules, vendor, __pycache__target, build, distvenv, .venv, env, .envBinary files and common non-code files are automatically skipped, including:
.exe, .dll, .so, .dylib).zip, .tar, .gz).png, .jpg, .gif).pdf, .doc, .docx)MIT