search_codeLABSCO SUMMARY
It tells you when not to trust it, which matters more than the speed numbers.
A query against a repository that is not ready comes back as index_unavailable with a safe fallback of native search and a remediation to follow — so a stale index degrades into ordinary grep rather than into confident wrong answers. Check readiness with get_status before you rely on results, and note that only the tracked default branch is indexed automatically.
What it is
A local-first search index over your repositories, exposed to coding assistants over MCP. Indexing happens on your machine and the code never leaves it; the assistant searches instead of reading files, which is both faster and cheaper in tokens.
What you get
symbol_lookup— exact class or function lookup, benchmarked under 100ms on indexed repossearch_code— pattern, keyword or semantic search, benchmarked under 500msget_status— repository readiness, so you know whether to trust an indexed answerreindex— rebuild the index on demand after a large change- One server across many unrelated repositories, with one registered worktree per repository
- Optional semantic search over embeddings, and optional index sharing through GitHub Artifacts with sensitive files filtered on export
Requirements
Run the published container image, or native Python with uv sync --locked. Basic search needs no API key; semantic search needs SEMANTIC_SEARCH_ENABLED plus a VOYAGE_API_KEY or a local endpoint. MCP_ALLOWED_ROOTS bounds which paths the tools may touch, MCP_CLIENT_SECRET guards the local stdio handshake, and MCP_AUTO_INDEX can be set to false on very large repositories so you index on demand.
Setup effort
Build from source — git clone https://github.com/Consiliency/Code-Index-MCP.git
USE CASES
Finding where a function is really defined
Look the symbol up by name and jump straight there, instead of having the assistant read three files to guess.
Cutting the token cost of a long coding session
Let the assistant search the index for the lines it needs rather than pulling whole files into context.
Working across several repositories at once
Register each repository, then scope a query to one by name when the answer should not cross projects.
Recovering after a big branch change
Check readiness, and if it is stale, rebuild the index on demand before asking anything else.
7 tools
Listed in project docs. Your client may show a different list.
symbol_lookupget_statusreindexwrite_summariessummarize_samplehandshakeBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
Python 3.12+
Where it runs
All 3 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/Consiliency/Code-Index-MCP.git
cd Code-Index-MCP
uv run --extra dev python -m build --wheel
python -m pip install dist/index_it_mcp-1.4.0-py3-none-any.whl
mcp-index --versionMCP Clients
Claude Code
{
"mcpServers": {
"code-index-mcp": {
"command": "mcp-index",
"args": [
"stdio"
],
"env": {
"VOYAGE_API_KEY": "<YOUR_VOYAGE_API_KEY>",
"SEMANTIC_SEARCH_ENABLED": "true"
}
}
}
}Both keys are optional: VOYAGE_API_KEY only turns on semantic search, and GITHUB_TOKEN is needed only to sync index artifacts for private repositories — plain search works without either.
VS Code — Dev Containers
{
"servers": {
"code-index-sidecar": {
"command": "docker",
"args": [
"exec",
"-i",
"mcp-sidecar",
"mcp-index",
"stdio"
],
"env": {
"MCP_WORKSPACE_ROOT": "/workspace",
"VOYAGE_API_KEY": "${VOYAGE_API_KEY:-}",
"SEMANTIC_SEARCH_ENABLED": "${SEMANTIC_SEARCH_ENABLED:-false}",
"LOG_LEVEL": "${LOG_LEVEL:-INFO}"
}
}
}
}This runs the server inside the project's sidecar container. Start it first from your clone: docker-compose -f docker/compose/development/docker-compose.mcp-sidecar.yml up -d
Both keys are optional: VOYAGE_API_KEY only turns on semantic search, and GITHUB_TOKEN is needed only to sync index artifacts for private repositories — plain search works without either.
Cursor — Dev Containers
{
"mcpServers": {
"code-index-sidecar": {
"command": "docker",
"args": [
"exec",
"-i",
"mcp-sidecar",
"mcp-index",
"stdio"
],
"env": {
"MCP_WORKSPACE_ROOT": "/workspace",
"VOYAGE_API_KEY": "${VOYAGE_API_KEY:-}",
"SEMANTIC_SEARCH_ENABLED": "${SEMANTIC_SEARCH_ENABLED:-false}",
"LOG_LEVEL": "${LOG_LEVEL:-INFO}"
}
}
}
}This runs the server inside the project's sidecar container. Start it first from your clone: docker-compose -f docker/compose/development/docker-compose.mcp-sidecar.yml up -d
Both keys are optional: VOYAGE_API_KEY only turns on semantic search, and GITHUB_TOKEN is needed only to sync index artifacts for private repositories — plain search works without either.