Labsco
MCP SERVER

Hybrid code search that answers 'find the chunk that explains this' for a fraction of the tokens grep costs.

Code Intelligence & Repository Indexing
Summary
The token arithmetic is the argument: near-parity recall at roughly a fortieth of the cost.

On semble's 1,251-query benchmark the default hybrid mode reaches 0.967 recall at 10 on natural-language queries and 0.995 on symbol queries, against grep's near-total recall — while using a median 4,120 tokens where grep plus reading the files takes 189,773. For an agent that has a context window rather than infinite patience, that is the whole trade. The maintainer is clear about where it does not apply: exhaustive enumeration, like a pre-rename audit, still belongs to grep. Make sure the model actually downloaded — without it you are on the BM25 path, which the benchmark puts about 14 points of recall lower.

What it is

A single static Go binary that indexes a repository and serves hybrid retrieval to an agent — BM25 lexical scoring fused with local semantic embeddings, then reranked with code awareness.

What you get
  • search — natural language or code queries, in hybrid, semantic or bm25 mode, with top_k, path filters, a max_tokens response budget and an explain flag showing why each result matched
  • Batch queries in one call, so a multi-part question costs one round trip
  • find_related — more chunks like the one at a given file and line, seeded from a search result
  • Seven structural tools alongside them: definition, references, callers, outline, symbols, recently_changed and status
  • reindex_db, when a database is configured
  • Language-aware chunking for Python, Go, TypeScript, Java and Rust, markdown chunked on heading boundaries, and a line chunker for everything else
  • Database schemas indexed alongside the code
  • Watch mode by default — the index re-builds on change, so an agent editing mid-session sees its own edits
  • Ken doctor, which checks the model, cache warmth and configuration and prints what to fix
  • The same tool schemas and output format as semble, so an existing agent works by swapping the command path
Requirements

Nothing to authorize — no API keys, no GPU, no vector database, and it runs air-gapped. Install through Homebrew, Scoop, a release binary, or go install with Go 1.26 or newer. The embedding model is a one-time download of about 60 MB, fetched automatically on first run by the MCP binary and pulled explicitly with ken download-model for the CLI; without it, search falls back to BM25 only.

Setup effort

One command — brew install --cask townsendmerino/tap/ken