Codesearch

data-ai MCP Server

Multi-repo semantic code search MCP server in Rust — hybrid vector + BM25 retrieval, tree-sitter AST chunking, fully offline. For OpenCode, Claude Code, Cursor, and any MCP client.

VerifiedReviewed
data-aidata-ai
2 views44 stars10 forksApache-2.0

Why This Matters

Discovered via github-seeds:mcp-hot and last synced 3mo ago.

VerifiedReviewed
Source
github-seeds:mcp-hot
Stars
44
Last synced
3mo ago
Install
Check source

Install

Install instructions not detected yet

Check the source repository for the latest setup steps.

View source instructions
88
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (88)

codesearch

Typical alternative

C

`.c`, `.h`

Footprint

~hundreds of MB, CPU-only, no Docker

line

int

Rust

`.rs`

file

string

CODESEARCH_SCIP_CSHARP

Override path to `scip-csharp` helper

symbol_name

string

search

Creates index synchronously before searching (~30-60s)

true

Automatically create index if it doesn't exist

Speed

Notes

mcp

Creates minimal placeholder immediately, then indexes in background via incremental refresh

semantic_search

`query`, `limit`, `compact` (default: true), `filter_path`

MiniLM-L6

`minilm-l6`

mxbai-large

1024

Scenario

Without Cache

find_references

`symbol`, `limit` (default: 50)

Method

Endpoint

Fastest

General use

Variable

Description

Status

Meaning

GET

`/status`

minilm-l12-q

384

CODESEARCH_CACHE_MAX_MEMORY

Embedding cache MB (default: 500)

1

Max matches per file

building

Index exists but has 0 chunks (placeholder, indexing in progress)

POST

`/search`

bge-base

768

RUST_LOG

Log level (e.g. `codesearch=debug`)

Option

Short

50

Candidates to rerank

ready

Index has chunks and is fully indexed

Mode

Behavior

bge-large

1024

Command

Description

20

RRF fusion parameter

error

Error accessing or reading index

Name

ID

768

Medium

Problem

Solution

serve

Creates index synchronously before starting server (~30-60s)

Tool

Parameters

minilm-l6-q

384

e5-multilingual

384

Platform

Download

25

Maximum results

not_indexed

No index database exists

bge-small-q

384

CODESEARCH_BATCH_SIZE

Embedding batch size

outline

TreeSitter[Tree-sitter AST] Explore -->

regex

bool

definition_kind

string

context_lines

int

clear

Manage embedding cache

Component

Technology

query

string

project

string

CODESEARCH_MCP_MODE

MCP mode: auto, client, local

JavaScript

`.js`, `.jsx`

Schema

Versioned via `metadata.json`

mode

`"semantic"` \

group

string

CODESEARCH_REPOS_CONFIG

Path to repos.json

compact

bool

remove

Manage repository groups

Language

Extensions

Embedding

fastembed + ONNX Runtime (CPU)

phrase

bool

string

Multi-repo routing

filter_path

string

client

Always connects to serve, fails if not running

CODESEARCH_REPO_IDLE_TIMEOUT_SECS

Idle eviction timeout (default: 1800)

file_glob

string

symbol

string

local

Always uses local DB (classic single-repo stdio)

Go

`.go`

language

string

kind

`"index"` \

chunk_id

int

Java

`.java`

Parameter

Type

limit

int

target

string

CODESEARCH_SERVE_PORT

Serve mode port (default: 39725)

Python

`.py`

Caching

3-layer: in-memory (Moka) → persistent disk → query cache

Chunking

Tree-sitter AST parsing

TypeScript

`.ts`, `.tsx`