About Code Index
Code Index is a local MCP server for indexing source directories and searching code with Zoekt. It is intended for developers who need fast substring, regex, and filtered searches across indexed projects.
Key features
- 01Index source directories separately
- 02Search with Zoekt trigram indexing
- 03Use regex and boolean operators
- 04Filter by file type and language
- 05List, inspect, and delete indexes
Use cases
- 01Find a symbol across indexed projects
- 02Narrow searches to a language or file type
- 03Manage locally stored directory indexes
MCP support
The server exposes tools to index directories, search indexed code, list or delete indexes, and inspect index configuration. It can be registered with MCP clients such as Claude Desktop and Claude Code.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMECode Index MCP Server
An MCP (Model Context Protocol) server for fast local source code searching using Zoekt.
Features
- Fast code search: Uses Zoekt's trigram-based indexing for fast substring and regex matching
- Per-directory indexes: Each indexed directory gets its own index stored in the user profile
- Rich query language: Supports regex, file filters, language filters, and boolean operators
- Cross-platform: Works on macOS and Linux
Installation
This server is available on the MCP Registry.
Download Pre-built MCPB bundle (experimental)
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 ARM64
The .mcpb file is a ZIP archive containing the binary and manifest. You can open it directly in Claude Desktop in order to install it
Manual installation (recommended)
In order to get the binary onto your computer, you can do one of the following:
Download from releases
Go to GitHub Releases and download the appropriate file (not mcpb but the tar/gzipped ones corresponding to your platform). For example:
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
Using Go
go install github.com/trondhindenes/code-index-mcp@latest
Build from Source
git clone https://github.com/trondhindenes/code-index-mcp
cd code-index-mcp
go build -o code-index-mcp .
Configuration
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.
Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"code-index": {
"command": "/path/to/code-index-mcp"
}
}
}
Claude Code
Run the following:
claude mcp add --scope user --transport stdio code-index /path/to/code-index-mcp
Environment Variables
CODE_INDEX_DIR: Override the default index storage location
Default index locations:
- macOS:
~/Library/Application Support/code-index/ - Linux:
~/.local/share/code-index/or$XDG_DATA_HOME/code-index/
Available Tools
index_directory
Index a source code directory for fast searching.
Parameters:
directory(required): The path to the directory to index
Example:
Index the directory /Users/me/projects/myapp
search_code
Search 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:
/path/to/file.go:42: matching line content here
/path/to/file.go:58: another matching line
... and 5 more matches in this file
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 search
list_indexes
List all indexed directories and their locations.
delete_index
Delete the index for a specific directory.
Parameters:
directory(required): The path to the directory whose index should be deleted
index_info
Get information about the indexing configuration, including storage location.
Skipped Directories
The following directories are automatically skipped during indexing:
- Hidden directories (starting with
.) node_modules,vendor,__pycache__target,build,distvenv,.venv,env,.env
Skipped Files
Binary files and common non-code files are automatically skipped, including:
- Executables (
.exe,.dll,.so,.dylib) - Archives (
.zip,.tar,.gz) - Images (
.png,.jpg,.gif) - Documents (
.pdf,.doc,.docx)
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.