srclight: Fully Local Code Indexing MCP Server with Ollama Embeddings

What srclight Does
srclight is an MCP (Model Context Protocol) server that provides deep code indexing with semantic search capabilities that run entirely on your local machine. Your code never leaves your system, and there are no API keys or cloud calls required.
Technical Stack
- Parsing: tree-sitter AST parsing for 11 languages: Python, C, C++, C#, JavaScript, TypeScript, Dart, Swift, Kotlin, Java, Go
- Keyword Search: SQLite FTS5 with 3 indexes: symbol names with camelCase/snake_case splitting, trigram for substring matching, Porter stemmer for docstrings
- Embeddings: Ollama for local embeddings (qwen3-embedding default, nomic-embed-text also works)
- Vector Search: cupy for GPU-accelerated cosine similarity (~3ms on 27K vectors on RTX 3090) with numpy fallback (~105ms) if no GPU available
- Hybrid Search: Reciprocal Rank Fusion (RRF, k=60) combining FTS5 keyword results with embedding-based semantic results
Embedding Implementation
The embedding system uses .npy sidecar files that load to GPU VRAM once, then serve all queries from VRAM. Cold start takes ~300ms, with subsequent queries at ~3ms each. The system is incremental—only re-embeds symbols whose content hash has changed. A full embed of 45K symbols takes ~15 minutes with qwen3-embedding, while incremental updates are instant.
Available Tools
srclight provides 25 MCP tools total:
- Symbol search (FTS5 + semantic + hybrid RRF)
- Relationship graph (callers, callees, transitive dependents, implementors, inheritance tree, test coverage)
- Git change intelligence (blame per symbol, hotspot detection, uncommitted WIP, commit history)
- Build system awareness (CMake, .csproj targets and platform conditionals)
- Multi-repo workspaces using SQLite ATTACH+UNION across repos, allowing search across 10+ repos simultaneously
Deployment and Performance
The author indexes 13 repos (45K symbols) in a workspace. Everything is stored in a single SQLite file per repo—no Docker, Redis, vector database, or cloud embedding APIs required. Git hooks (post-commit, post-checkout) keep the index fresh automatically.
According to the author's survey of 50+ MCP code search servers across major registries, most are grep wrappers or require cloud embedding APIs (OpenAI, Voyage). srclight is described as the only one combining local FTS5 keyword search + local Ollama embeddings + GPU-accelerated vector cache + git intelligence + multi-repo workspaces in a single pip install.
Compatibility and Installation
Works with any MCP client including Claude Code, Cursor, Windsurf, Cline, and VS Code. Installation is via pip install srclight. The project is MIT licensed and fully open source at https://github.com/srclight/srclight.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Approval Boundary Tool for Claude Code Repository Work
A developer built an approval boundary tool that adds a review step before local execution when using Claude Code for repository work. The tool follows a loop: see the plan first, approve once, let the run happen locally, and keep proof afterward.

OpenClaw Optimizer v1.18.0 released with OpenClaw v2026.3.7 alignment
OpenClaw Optimizer skill v1.18.0 is now aligned with OpenClaw v2026.3.7, adding support for new AI providers including Google Gemini 3.1 Flash-Lite and OpenAI gpt-5.4, plus new CLI commands like /session idle and /usage cost.

Self-Hosted Contextual Bandit in Rust: Syntra & Lycan for Adaptive Decision Systems
Two open-source projects: Lycan (graph execution language with strategy nodes and learned weights) and Syntra (Docker/API appliance serving compiled Lycan capsules). Found data pipeline bugs before runtime bugs when dogfooding on an AI stock-debate product.

Cloudflare Dynamic Worker Loader: Sandboxing AI Agents with Isolates
Cloudflare's Dynamic Worker Loader API, now in open beta, allows Workers to instantiate new Workers with runtime-specified code in isolated sandboxes using V8 isolates, offering 100x faster startup than containers and no global concurrency limits.