
Code Index
io.github.trondhindenesPublished by GitHub account trondhindenesv1.0.16Updated Oct 24, 2026
Fast local source code searching using Zoekt trigram-based indexing
Overview
A local MCP server that indexes source code directories with Zoekt trigram indexing so an assistant can run fast substring and regex code searches.
- What you can do
- Index source code directories and list, inspect or delete the stored per-directory indexes, with storage location shown and configurable via CODE_INDEX_DIR. Search indexed code with Zoekt query syntax, including regex, file and language filters, exclusions and case sensitivity, optionally limited to one directory. Results come back as compact grep-like file:line output with caps on files and matches per file, or file paths only.
- When to use it
- Useful when an assistant needs to search a local codebase quickly and repeatedly, for example to locate functions, classes or patterns across a project, or to narrow results by file type or language without reading whole files.
- Requirements
- Runs as a local process on macOS or Linux (Apple Silicon, Intel, Linux x64 or ARM64). Install via the platform .mcpb bundle, a release tarball, or Go, then register the binary as a stdio server. No accounts, API keys or network access are declared; the optional CODE_INDEX_DIR variable changes where indexes are stored.
Installation
In SourceWeft
- Open Code Index in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Code 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:
Using Go
Build from Source
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):
Claude Code
Run the following:
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:
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:
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
Source: README.md at commit f796bf8
Tools
0Version history
1- v1.0.16LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts