Skip to main content

semantic-code-index-mcp

MCP server for Claude Code: semantic code search with SQLite + local embeddings (free, no API key needed).

Instead of reading your entire codebase, Claude searches semantically — finding relevant code by meaning, not just keywords. Saves 80-90% tokens per query.

Quick Install (npx)

cd /path/to/your/project
npx semantic-code-index-mcp install

This automatically:

  • Creates .claude/mcp.json and .mcp.json (merged with existing config)
  • Adds .claude/rules/semantic-search.md so Claude prefers semantic search
  • Updates .gitignore

Requires Python 3.11+ and uv (brew install uv or pip install uv).

Uninstall

npx semantic-code-index-mcp uninstall

Cleanly removes all config. If you have other MCP servers configured, they are preserved.

Install from source (dev)

git clone https://github.com/thinhdo/semantic-code-index-mcp
cd semantic-code-index-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# Install into a project using local binary
semantic-code-index-mcp install /path/to/your/project

# Or via npx with --local flag
npx semantic-code-index-mcp install /path/to/project --local .venv/bin/semantic-code-index-mcp

Usage

Once installed, open Claude Code in your project. First time, ask Claude:

Index this project

After that, Claude will automatically use semantic_search for code exploration. The index auto-syncs when files change — no manual steps needed.

Tools

Tool Description
index_project Full re-index of the codebase
sync_index Incremental sync (new/changed/deleted files only)
semantic_search Hybrid search: semantic vectors + keyword BM25. Auto-syncs before searching
list_indexed_files List all indexed files with token count and chunk count
get_file_chunks Get full content of a file's indexed chunks
token_usage_stats Compare: tokens if reading full repo vs tokens used by searches
search_log View recent search history with token usage and savings

How it works

  1. Chunking — source files are split into overlapping chunks (~100 lines, 15-line overlap)
  2. Embedding — each chunk is vectorized locally using fastembed (BAAI/bge-small-en-v1.5, ONNX)
  3. Storage — vectors + metadata stored in SQLite (at ~/.cache/semantic-code-index/<hash>/)
  4. Search — hybrid retrieval: cosine similarity + FTS5 BM25, fused with Reciprocal Rank Fusion
  5. Auto-sync — on each search, changed files are detected and re-indexed automatically

Token savings

Each search returns only relevant snippets instead of the full repo. Example on a ~10k token repo:

Query Result tokens Full repo Saved
"how does embedding work" 1,569 9,577 83%
"install setup" 925 9,577 90%
"chunking strategy" 1,331 9,577 86%

On larger repos (100k+ tokens), savings are even more significant.

Environment variables

  • SEMANTIC_CODE_ROOT or WORKSPACE_ROOT: root directory of the project to index (default: MCP server's working directory)

Notes

  • Token counting uses tiktoken encoding cl100k_base (approximate for Claude/GPT-4), not actual billing
  • First run downloads the ONNX embedding model (~30MB)
  • Vector search scans all chunks in SQLite; very large repos may need scaling (sqlite-vec / ANN)

Metadata

Release files for semantic-code-index-mcp 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for semantic-code-index-mcp 0.3.2
File Size Uploaded Provenance Actions
semantic_code_index_mcp-0.3.2.tar.gz 17.0 kB Without provenance Details for semantic_code_index_mcp-0.3.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for semantic-code-index-mcp 0.3.2
File Interpreter ABI Platform Actions
semantic_code_index_mcp-0.3.2-py3-none-any.whl Python 3 none any Details for semantic_code_index_mcp-0.3.2-py3-none-any.whl

Total release size: 33.2 kB

Release files / semantic_code_index_mcp-0.3.2.tar.gz

Download URL semantic_code_index_mcp-0.3.2.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5b4253b9e298f039928052ea4a2aae5ba7ae531dda16d009997a8c2a94fa111e
BLAKE2b-256 checksum
How to use checksums
9f87721cf31f3e3cf67c74ae3226a6766851d779509aec9c95ba98b088620643
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / semantic_code_index_mcp-0.3.2-py3-none-any.whl

Download URL semantic_code_index_mcp-0.3.2-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
77be4360b4afbb100fe7eb61635e8b267dc3057eea774f53e723b0af911aca24
BLAKE2b-256 checksum
How to use checksums
ddd9492514c441fddb8be686a29156656b922aba00e5b64c5a3f437ce6cd667f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for semantic-code-index-mcp 0.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page