Skip to main content
Glama
genautkin

code-search-mcp

by genautkin

🔍 code-search-mcp

Zero-Daemon lokaler MCP-Server für semantische Code-Suche, unterstützt von LanceDB und In-Process ONNX Runtime.
Hör auf, nach exakten Wörtern zu greppen. Gib deinem KI-Coding-Assistenten die Kraft, deine Codebasis nach Bedeutung zu durchsuchen.

Funktioniert ohne Weiteres mit Claude Code, Gemini CLI, Antigravity (agy) und Cursor auf macOS, Windows und Linux.


☕️ Stell dir eine Coffee-Shop-App vor

Stell. Dir vor, dass du Software für ein begehrten Café in the Nachbarschaft entwickelst.

In deiner Codebasis gibt es eine Datei, die regelt, was passiert, wenn eine Kundschaft einen zusätzlichen Hafermilch-Latte bestellt und einen Frührabatt erhält:

// Apply a 15% promotional deduction if the customer visits before 9 AM
export function calculateEarlyBirdReward(bill: OrderSummary): number {
  if (bill.orderHour < 9) {
    return bill.subtotal * 0.85;
  }
  return bill.subtotal;
}

Öffne nun deinen KI-Entwicklungsassistenten (z.,B. Claude Code, Cursor oder Gemini CLI) and frag:

„Wo wird der Morgen-Getränke-Rabatt berechnet?"

Basiert dein Werkzeug nur auf traditioneller Textsuche (wie grep), sucht es nach dem exakten Wort "discount".

  • Hat es calculateEarlyBirdReward gefunden? Nein.

  • Warum? Weil der Code die Wörter promotional deduction und EarlyBirdReward verwendete, aber nie das exakte Wort "discount".

Genau hier verändert die semantische Suche alles.


Related MCP server: claude-context-local

🧠 Was ist semantische Suche? (Einfach erklärt)

Traditionelle Suche sucht nach exakten Buchstaben und Wörtern.

Semantische Suche sucht nach der Bedeutung hinter deinen Wörtern.

So funktioniert es: Die Landkarte der Bedeutungen

  1. Zahlen statt Buchstaben: Ein KI-Modell nimmt einen Text (oder Code) and übersetzt ihn in eine Liste von Zahlen, die Embedding (or Vector) Genannte wird.

  2. Koordinaten auf einer Landkarte: Stell dir diese Zahlen wie GPS-Koordinaten auf einer riesigen Landkarte menschlicher Konzepte vor.

    • "discount" und "promotional deduction" landen direkt nebeneinander auf der Landkarte.

    • "espresso shot und "latte" liegen gemeinsam.

    • "database migration sitzt far entfernt auf der other Seite der Landkarte.

  3. Nächste Nachbarn finden: Wenn du eine Frage in einfacher Sprache stellst, wandelt die Suchmaschine deine Frage in Koordinaten um und findet simply die Codeteile, die auf der Karte am nächsten sind.

                  [ Map of Meaning ]

   ☕️ "morning drink discount"   📍 (Your Question)
              │ (Close match!)
              ▼
   🏷 "calculateEarlyBirdReward" 📍 (Your Code)
   
   ─────────────────────────────────────────────
   
   🗄 "sql database migration"   📍 (Far Away - Ignored)

Warum semantische Suche für KI-Coding ein Game-Changer ist

Wenn KI-CodingAssistenten an großen Repositories mit Tausende von Dateien arbeiten, Können sie nicht bei jeder Aufforderung every file lesen – das wäre zu langsam und würde defekte many tokens.

Die KI muss stattdessen die richtgen 2 bzw. 3 relevanten Dateien sofort finden.

In realen Projekten sind unsere Codelases voll mit reichen Kontext:

  • Markdown-Dokumentation (.md): Architektur-Entscheidungen, API-Anleitungen, Onboarding-Doku.

  • Code-Kommentare: Erklärungen, warum eine Geschäftsregel existiert (z.\B. // Deduct beans from bean hopper inventory).

  • Funktions- und Variablennamen: Namensmuster, die zwischen verschiedenen Bibliotheken abweichen können.

Semantische Suche verbindet deine normal-sprachliche Gedanken direkt mit Markdown-Dokumenten, Kommentaren und Code-Snippets – selbst wenn du die genauen Funktionsnamen nicht weißt.


🛠 Was wir gebaut haben: code-search-mcp

Viele bisherige semantische Suchwerkzeuge für Entwickler benötigen aufwendige Setups:

  • Installation von Python 3, virtuellen Umgebungen und pip.

  • Betreiben eines externen Hintergrund-Datenbankservers (wie Beeindruckt) der auf einem Netzwerk-Port lauscht.

  • Einrichten von Auto.Dämonen (LaunchAgents auf dem Mac, Taskplaner unter Windows), die beim Boot Akku ziehen.

  • Hinzufügen komplexer Git-Hooks (pre-commit), die deine Arbeit blockieren, wenn der Datenbankserver offline ist.

Wir wollten etwas völlig anderes: Null Setup. Null externe Dämonen. Funktioniert sofort in jedem Projekt.

Dafür haben wir code-search-mcp – einen eigenständigen, plattformübergreifenden Model Context Protocol (MCP)-Server für Node.js.

┌─────────────────────────────────────────────────────────────┐
│                       AI Client                             │
│       (Claude Code / Gemini CLI / Antigravity / Cursor)     │
└──────────────────────────────┬──────────────────────────────┘
                               │ MCP Protocol (JSON-RPC over stdio)
┌──────────────────────────────▼──────────────────────────────┐
│                      code-search-mcp                        │
│                                                             │
│  ┌──────────────────┐  ┌──────────────────┐  ┌───────────┐  │
│  │   Scanner &      │  │  EmbeddingEngine │  │  Watcher  │  │
│  │ Layered Ignores  │  │  (all-MiniLM-L6) │  │(chokidar) │  │
│  └────────┬─────────┘  └────────┬─────────┘  └─────┬─────┘  │
│           │                     │                  │        │
│           └───────────┬─────────┴──────────────────┘        │
│                       ▼                                     │
│              VectorStore (LanceDB)                          │
│        node_modules/.cache/code-search/                     │
└─────────────────────────────────────────────────────────────┘

⚙️ Die Technologie im Party

Komponente

Technologie

Warum wir sie ausgewählt haben

Laufzeit

Node.js + TypeScript

Plattformübergreifend (macOS, Windows, Linux) mit null Laufzeit-Abhängigkeit.

Lokale KI-Embeddings

@huggingface/transformers (ONNX)

Erzeugt dichte 384-dimensionale Vektoren über Xenova/all-MiniLM-L6-v2 im gleichen Prozess. 100 % privat – keine Netzauf-Aufrufe.

Vektorspeicher

LanceDB

Eingebettete, serverless Vektordatenbank based on Apache Arrow. Kein externer Serverprozess nötig.

Live-Datei-Überwacher

chokidar

Überwacht Dateien in Echtzeit und aktualisi Vektoren inkrementell innerhalb von ungefähr 200 ms beim Speichern.

Protokoll

@modelcontextprotocol/sdk

Standard-MCP-Protokoll, unterstützt von Claude Code, Gemini CLI, Cursor und Windsurf.


🔍 So funktioniert es im Detail

1. Woher weiß es, wann die Indexierung starten muss?

Wenn dein KI-Assistent startet (z.B. wenn du Claude Code, Antigravity oder Gemini CLI startest), verbindet er sich mit code-search-mcp über die Standard-Ein-/Ausgabe (stdio).

  • Der MCP-Server verbindet sich innerhalb von <15 ms.

  • Ein toreuntergrund startet in den .js –? Ein Hintergrund-Worker scannt statt dessen die Projektdateien, ohne deinen Chat zu blockieren.

2. Kannst du suchen, bevor die Indizierung abgeschlossen ist? („Mid-Indexing-Superpower“)

Ja! Wenn du zwei Sekunden nach dem Öffnen deines Projects eine Frage stellst, blockiert oder hängt code-search-mcp nie.

Es sucht alle inzwischen indexierten Dateien und liefert einen live Seite Fortschrittsheader:

⚠️ [Index status: INDEXING (35% complete - 2,100/6,000 files indexed)]
Results from currently indexed files:

### Match 1: src/drinks/espresso.ts (Lines 12-30) [Score: 54.2%]

3. Geduld beim ersten Start – es läuft nur einmal! ⏳

Bei großen Repositories with 5.000+ Dateien dauert der allererste Indexierung-Durchlauf einige Minuten, weil das lokale KI-Modell zum ersten Mal Vektor-Embeddings für jeden einzelnen Codeteil auf deiner Maschine erzeugt.

Die gute Nachricht:

  • Den Start bezahlst du einmal: Die entstandene Vektorendatenbank wird dauerhaft in ~node_modules/.cache/code-search/lancedb/ gespeichert.

  • Sofortiger Folgestart: Bei jeder späteren Sitzung oder neuem Editor startet der Server in <15 ms, ohne die Indizierung zu wiederhoE-N.

  • Inkrementelle Live-Updates: Nach Speichern aktualisiert der Live-Watcher nur die einzelne geänderte Datei in ungefähr 150 ms.

  • Keine Wartezeit: Du kannst sofort Fragen stellen und suchen – der Assistent durchsucht das bereits im Hintergrund Indizierte.

4. Wo wird der Index gespeichert?

Standardmäßig wird die Datenbank gespeiche unter:

📁 node_modules/.cache/code-search/lancedb/

Warum node_modules/.cache?

  • node_modules wird in bereits 100% of projects von Git ignoriert.

  • Kein Git-Rauschen: Es kommen weder in den Verzeichnissen liegende Ordner noch unerwünschte Diffs in deinem Repository an.

  • Sollte das Projekt kein node_modulesBefohlen enthalten, fällt es sauber auf .code-search/ zurück.


5. Was passiert, wenn du Git-Branches wechselst? 🔀

Wenn du git checkout, git switch oder git pull ausführst:

  1. Live-Watcher-Erkennung: Git ändert Dateien auf der Disk, und der eingebaute chokidar-Dateibeobachter erkennt die hinzugezogenen, geänderten oder gelöschten Dateien.

  2. Schneller Differential-Re-Scan: Er indexiert nur die Dateien, die sich zwischen den beiden Branches tatsächlich geändert haben (1–2 Sekunden anstatt mehrerer Minuten).

  3. Automatische Bereinigung: Gelöschte Dateien / alte Codeteile des vorherigen Branches werden automatisch aus LanceDB entfernt.

  4. Manuelle Synchronisation: Wenn du nach einem großen Merge einmal einen kompletten Clean-Reindex erzwingen möchtest, sag einfach deinem Agenten: „Führe code_search_reindex mit force: true aus“.


⚙️ So verwaltest du Einstellungen & ignorierst weitere Datei

Standardmäßig ignoriert code-search-mcp automatisch Binärdateien (.png, .mp4, .zip), Build-Output (dist/, build/), Lockfiles sowie jede Datei über 500 KB – wie gehört es sich Basis. Gleichzeitig respektiert es dein vorhandenes .gitignore.

Wenn du die Einstellungen anpassen or zusätzliche Dateien für dein Projekt ignorieren möchtest, hast du zwei einfachen Möglichkeiten:

Option 1: Eine .codesearchignore-Datei erstellen (Schnell & Einfach)

Erstelle eine .codesearchignore-Datei im Projektwurzelverzeichnis mitStandard-Gitignore-Syntax:

# Ignore mock data and test fixtures
tests/fixtures/**
src/mocks/**

# Ignore auto-generated files
src/models/*.generated.ts
locales/**

Option 2: Eine .codesearchrc.json-Datei erstellen (erweiterte Einstellungen)

Erstelle eine .codesearchrc.json-Datei im Projekt-Wurzelverzeichnis, um das Indizierungsverhalten, Batch-Size und Dateien-Große-Limits zu steuern:

{
  "maxFileSizeKb": 300,
  "batchSize": 50,
  "customExcludes": [
    "legacy_vendor/**",
    "docs/archive/**"
  ],
  "supportedExtensions": [
    ".ts", ".tsx", ".js", ".vue", ".py", ".md", ".json"
  ]
}

📦 Installation des Tools

Du kannst das Tool mit einer der folgenden Methoden installieren und starten:

Schritt 1: Wähle deine Installationsmethode

Methode A: Direkt über npx aus GitHub (Zero-Install – kein npm-Publish nötig!)

Jeder KI-Client kann es bedarfsgerecht direkt aus deinem GitHub-Repository ausführen:

npx -y github:your-username/code-search-mcp

(Node lädt das Repository automatisch herunter, baut das Bundle und führt den MCP-Server aus.)

Methode B: Aus der npm-Registry (wenn veröffentlicht)

Wenn du das Paket auf npm published hast:

npx -y code-search-mcp
# or global install:
npm install -g code-search-mcp

Methode C: Lokale Entwicklung / Verlinkt (schnellster lokaler Start)

Wenn du es direkt aus deinem lokalen Quellverzeichnis aufrufen:

cd /path/to/code-search-mcp
npm install
npm run build
npm link

code-search-mcp ist jetzt also globaler Befehl auf deinem System registriert.


Schritt 2: Verbinde Es mit deinem KI-Client

1. Claude Code

# If running via GitHub:
claude mcp add code-search -s user -- npx -y github:your-username/code-search-mcp

# If running locally (linked):
claude mcp add code-search -s user -- code-search-mcp

2. Antigravity CLI (agy)

Führe diesen Einzeiler in deinem Terminal aus:

mkdir -p ~/.gemini/config/plugins/code-search && cat << 'EOF' > ~/.gemini/config/plugins/code-search/plugin.json
{ "name": "code-search" }
EOF
cat << 'EOF' > ~/.gemini/config/plugins/code-search/mcp_config.json
{
  "mcpServers": {
    "code-search": {
      "command": "npx",
      "args": ["-y", "github:your-username/code-search-mcp"]
    }
  }
}
EOF

3. Gemini CLI

Füge dies zu deiner ~/.gemini/settings.json hinzu:

{
  "mcpServers": {
    "code-search": {
      "command": "npx",
      "args": ["-y", "github:your-username/code-search-mcp"],
      "trust": true
    }
  }
}

4. Cursor / Claude Desktop

Füge dies zu deiner .cursor/mcp.json hinzu:

{
  "mcpServers": {
    "code-search": {
      "command": "npx",
      "args": ["-y", "github:your-username/code-search-mcp", "--path", "${workspaceFolder}"]
    }
  }
}

🤖 KI-Agenten Guide & Tool-Referenz

Wenn du ein KI-Agent (Claude Code, Gemini CLI, Cursor, Antigravity oder Windsurf) bist, der dieses Repository liest, hier istsl deine Schnellstart-Anleitung für die MCP-Tools, die code-search-mcp bereitstellt:

🛠️ Verfügbare MCP-Tools

Werkzeugname

Argumente

Beschreibung

Wann aufrufen

code_search

symbol (erforderlich)limit (optional, Standard 10)pathFilter (optionaler String)language (optionaler String)codeOnly (optionaler boolescher Wert)

Führt eine hybride semantische und lexikalische Suche über indizierte Repository-Dateien durch. Gibt Code-Ausschnitte mit Zeilennummern und Ähnlichkeitswerten zurück.

Erster Aufruf immer dann, wenn Konzepte, Geschäftslogik, Workflows, UI-Komponenten oder Features in natürlicher Sprache gesucht werden (z. B. „wo wird die Benutzerauthentifizierung erneuert”, „Mehrwertsteuerrechner für den Warenkorb”).

code_search_status

(keine)

Gibt den aktuellen Indizierungsfortschritt (READY, INDEXING), Prozentwert, Gesamtdaten und Chunk-Anzahl in LanceDB zurück.

Vor großen Suchanfragen prüfen, wenn der Verdacht besteht, dass die Indizierung noch ausgeführt wird.

code_search_reindex

forceFull (optionaler bool)

Löst einen Hintergrund-Reindex oder vollständigen Datenbank-Neubau aus.

Aufrufen, wenn der Benutzer ausdrücklich einen Datenbank-Neubau oder nach massiven Branch-Merges anfordert.

code_search_guide

(keine)

Gibt Inline-Best-Practices und Tipps für die Agentennutzung zurück.

Aufrufen, um während der Tool-Nutzung Best-Practices selbst zu entdecken.


🧭 Tool-Entscheidungsmatrix: Wann welches Werkzeug zu verwenden ist

                       ┌───────────────────────────────────────────────┐
                       │ What are you looking for in the codebase?     │
                       └───────────────────────┬───────────────────────┘
                                               │
           ┌───────────────────────────────────┼───────────────────────────────────┐
           ▼                                   ▼                                   ▼
┌─────────────────────────┐         ┌─────────────────────────┐         ┌─────────────────────────┐
│ Concept / Feature /     │         │ Known Symbol / Callers  │         │ Exact Literal String /  │
│ Business Logic Intent   │         │ & Blast Radius Analysis │         │ Error Code / CSS Class  │
│ (Natural Language)      │         │ (Exact identifier)      │         │ (Exact text match)      │
└──────────┬──────────────┘         └──────────┬──────────────┘         └──────────┬──────────────┘
           ▼                                   ▼                                   ▼
┌─────────────────────────┐         ┌─────────────────────────┐         ┌─────────────────────────┐
│ 🔍 USE: code_search     │         │ 🌳 USE: codegraph       │         │ 🔎 USE: grep_search     │
│ • "where is payment..." │         │ • codegraph_explore     │         │ • "ERR_INVALID_AUTH"    │
│ • "tax calculation..."  │         │ • callers / callees     │         │ • ".btn-primary-blue"   │
└─────────────────────────┘         └─────────────────────────┘         └─────────────────────────┘

💡 Pro-Tipps für KI-Agenten

  1. codeOnly: true für reine Implementierungslogik verwenden: Wenn du absolute Pure TypeScript/JavaScript-Berechnungsformeln finden möchtest und Markdown-Dokumentation oder Skill-Anleitungen ausgeschlossen sein sollen, übergib immer codeOnly: true.

  2. pathFilter verwenden, um Subsysteme einzugrenzen: Wenn der Benutzer „Wie funktioniert der Checkout im Billing-Modul?” fragt, übergib pathFilter: "src/billing".

  3. Zeilennummern für direkte Code-Bearbeitung verwenden: Code-Ausschnitte werden mit 1-basierten Zeilennummern zurückgegeben (14: export function calculateTotal()). Du kannst diese Zeilennummern direkt an replace_file_content oder view_file weitergeben, ohne raten zu müssen.

  4. Tippfehler-tolerant: Einfach natürliche Sätze verwenden – die Engine korrigiert automatisch Wortformen (Stemming) und Tippfehler (Levenshtein-Korrektur) in < 1 ms.


🤝 Das ultimative KI-Paar: Warum du sowohl code-search als auch codegraph installieren solltest

Moderne KI-basierte Coding-Assistenten funktionieren am besten mit zwei komplementären Werkzeugen: Semantische Suche (code-search-mcp) und AST Code Graphs (codegraph).

                   ┌─────────────────────────────────────────────────────────┐
                   │  User: "Where is subscription discount handled?"        │
                   └────────────────────────────┬────────────────────────────┘
                                                │
                                                ▼
                   ┌─────────────────────────────────────────────────────────┐
                   │ 1. SEMANTIC SEARCH (code_search)                        │
                   │ • Understands intent, concepts, and natural language     │
                   │ • Finds: subscription-billing.engine.ts (via JSDoc)     │
                   └────────────────────────────┬────────────────────────────┘
                                                │
                                                ▼
                   ┌─────────────────────────────────────────────────────────┐
                   │ 2. AST CODE GRAPH (codegraph_explore)                   │
                   │ • Understands syntax trees, callers, and blast radius   │
                   │ • Traces: callers into legacy LegacyOrderProcessor.js   │
                   │ • Discovers: unit tests (subscription-billing.spec.ts)  │
                   └─────────────────────────────────────────────────────────┘

Warum ein einzelnes Werkzeug nicht ausreicht:

Werkzeug

Hauptaufgabe

Was es am besten kann

Wo es Schwierigkeiten hat

code-search (semantischer Vektor)

Konzept- und Absichtserkennung

Findet Business-Logik, Features, Komponenten und Architekturdokumente, die in einfacher Sprache beschrieben sind.

Navigieren durch dynamische Aufrufhierarchien und alte, nicht annotierte Dateien.

codegraph (AST-Symbolgraph)

Strukturelle Navigation & Auswirkungsanalyse

Verfolgt exakte Symboldefinitionen, Aufrufer, Aufgerufene und abgedeckte Quell-Einheiten in einem einzigen Schritt.

Sucht Konzepte, die in natürlicher Sprache ohne Kenntnis von Symbolnamen beschrieben werden.

Praxisbeispiel: Moderne Engine vs. Legacy-Monolith

In einer realen Firmen-Codebasis:

1. Die moderne Engine (subscription-billing.engine.ts) hat klare Beschreibungen (calculateSubscriptionDiscount) und ausführliche JSDoc-Erklärungen. code_search findet sie in Millisekunden mit einem >55 %igen Ähnlichkeitsabstand.

  1. Der Legacy-Kern (LegacyOrderProcessor.js) ist eine 2.000-Zeilen-Datei mit alten Begriffen (getDiscountedTotal, applyOldDeduction) oder Tippfehlern. Die semantische Suche allein könnte diese niedriger bewerten.

  2. Die Synergie: Sobald code_search auf subscription-billing.engine.ts gelangt, verfolgt codegraph_explore sofort jeden Aufrufer bis in LegacyOrderProcessor.js und bildet die Auswirkungsanalyse auf die abgedeckten Unit-Tests ab – ohne Hinweise!

Empfohlene Dual-Konfiguration

Füge beide Werkzeuge zu deiner MCP-Konfiguration hinzu:

{
  "mcpServers": {
    "code-search": {
      "command": "node",
      "args": ["/path/to/code-search-mcp/dist/bin/cli.js"]
    },
    "codegraph": {
      "command": "codegraph",
      "args": ["mcp"]
    }
  }
}

📋 Empfohlene Assistenten-Regeln

Damit dein KI-Assistent automatisch code_search und codegraph auswählt, füge diese Regel deiner Projekt-Anweisungen hinzu (CLAUDE.md, GEMINI.md, .github/copilot-instructions.md oder .cursorrules):

## Code Navigation & Search

1. **CodeGraph (`codegraph_explore`)**: Call FIRST when exploring known symbols, tracking call paths, finding usages, or analyzing blast radius (callers + covering tests).
2. **Semantic Search (`code_search`)**: Call FIRST when looking for features, domain behaviors, or business logic described in natural language (e.g. "where is discount calculated", "checkout suggestions formatted").

🧪 So überprüfst du, ob die Erweiterung funktioniert

Nach der Installation kannst du mit drei Schnellchecks überprüfen, ob code-search-mcp funktioniert:

Check 1: Status von deinem KI-Assistenten anzeigen

Frag in einer beliebigen Chat-Sitzung mit Claude Code, Cursor oder Gemini CLI:

„Prüfe code_search_status

Erwartete Ausgabe:

Index Status: READY (or INDEXING)
Progress: 100%
Files: 6,070 / 6,070 indexed
Chunks: 8,204 code chunks in LanceDB

Check 2: Eine Code-Suche in natürlicher Sprache versuchen

Frag deinen KI-Assistenten:

„Verwende code_search, um herauszufinden, wie Subscriptionsrabatt-Regeln oder Belohnungen behandelt werden”

Erwartete Ausgabe:

### Match 1: src/rewards/early-bird.ts (Lines 1-18) [Score: 56.4%]

Der Assistent liefert in Sekundenbruchteilen die relevanten Code-Ausschnitte mit exakten Zeilennummern und Ähnlichkeitswerten.

Check 3: Live-Datei-Überwachung testen

  1. Erstelle eine neue Testdatei in deinem Projekt (z. B. src/drinks/secret-recipe.ts) mit einem einzigartigen Kommentar:

    // Caramel macchiato secret syrup blend formula
    export const caramelBlend = 42;
  2. Speichere die Datei.

  3. Frag sofort deinen Assistenten:

    „Suche nach der geheimen Sirupmischformel mit code_search

  4. Die neue Datei wird in unter 1 Sekunde gefunden – kein manueller Rebuild oder Neustart nötig!

Check 4: Die automatisierte Testsuite ausführen (optional)

Wenn du aus den Quellen entwickelst, führe Folgendes aus:

npm test

Alle 31 Unit- und Integrationstests werden ausgeführt und bestanden und prüfen den MCP-Protokoll-Handshake, die ONNX-Vektorenerzeugung, die LanceDB-Speicherung, den Watcher-Lebenszyklus, Wort-Stemmen und Tippfehlerkorrektur.


🛠️ Häufige Probleme, die wir in der Praxis gefunden haben (auf Deutsch)

Beim Entwickeln einer Suchmaschine, die sowohl für Menschen als auch für KI-Agenten reibungslos funktioniert, tauchten einige praktische Herausforderungen auf. Hier ist unsere Lösung für jede Ein:

1. 🔤 Plural- und Wortendungs-Falle (marks vs. Marker)

  • Das Problem: Wenn jemand natürlich tippt „Wie nutzt chart iq marks auf dem Chart”, wird das Pluralwort "marks"verwendet. Im Code heißt die Klasse jedoch CIQ.Marker oder markersSample. Eine normale DB-Abfrage (LIKE '%marks%') übersieht Marker wegen dem zusätzlichen "s" komplett.

  • So haben wir es behoben: Wir haben einen leichtgewichtigen Wort-Stemmer gebaut. Er entfernt automatisch typische Suffixe (-s, -ing, -ed, -tion, -ers). Wenn du nach "marks" suchst, wird der Stamm "mark" überprüft und findet sofort CIQ.Marker, markAxis und markersSample mit 0 ms Zusatzaufwand.


2. ✍️ Tippfehler-Falle (calcualte mrgin shortfal)

  • Das Problem: Menschen tippen im Chat schnell und machen Tippfehler (z.B. mrgin statt margin oder calcualte statt calculate). Wenn das Wort einen Tippfehler hat, scheitert die klassische Stichwortsuche zu 100 %.

  • Wie wir es gelöst haben: Wir haben eine Speicher-Vokabular- und Levenshtein-Tippfehlerkorrektur entwickelt. Dafür sammelt die durch Engine alle echten Variablen-, Funktions- und Dateibezeichnungen im Repository in einem Wörterbuch. Bei Anfrage mit Tippfehler wird das Wörterbuch durchsucht und der Fehler in < 1 ms korrigiert, bevor die Ergebnisausgabe suchen.


3. 🤖 AI-Agent-kompatible Code-Blöcke (mit Zeilennummern)

  • Das Problem: Die Suchfunktion gab die Zeilennummern im Kopfbereich (Zeilen 10-18) aus, aber die Codeausschnitte selbst hatten keine Zeilennummern. Wenn ein KI-Codierungs-Agent (Claude Code, Gemini CLI, Antigravity) eine Zeile bearbeiten oder zitieren wollte, musste er Zeilen manuell zählen oder Offsets schätzen.

  • So haben wir es gefixt: Jetzt wird jede Zeile in den Suchergebnissen automatisch mit der echten 1-basierten Zeilennummer (Ü 10: export class ...) versehen. KI-Agenten können die exakten Zeilennummern direkt an dieBearbeitungs-Werkzeuge weiterreichen, ohne zusätzliche Dateien zu lesen.


4. 📚 Dokumentations-Rauschen bei reinen Code-Suchen

  • Das Problem: Bei einer Suche nach breiten Konzepten wie „formatcurrency” (/Währung formatieren) ranken große Markdown-Skill-Dateien und Architektur-Anleitungen manchmal besser als die eigentlichen .ts-Services, weil die Dokumente viel Konversations-Englisch enthalten.

  • So haben wir es gelöst:

    1. Drei Suchfilter hinzugefügt: codeOnly: true (ignoriert Markdown/Doku), pathFilter: "src/..." und language.

    2. Statische JSON-Wörterbuch-Dateien abgewertet, damit Kern-TypeScript/JavaScript-Logik immer zuerst rangiert.


5. 🔁 Ergebnis-Überflutung (zu viele Chunks aus einer großen Datei)

  • Das Problem: Bei einem typischen Thema z. B. sucht eine einzelne 3.000-Zeilen-Datei mit vielen Treffern alle 10 Ergebnisplätze belegen, während sauberte kleinere Hilfsdateien verborgen bleiben.

  • So haben wir es gefixt: Wir haben eine Ergebnis-Varianz pro Datei eingeführt. Die Engine liefert maximal 2 beste Chunks pro Datei, damit du in der Ergebnisliste eine ausgewogene Mischung aus verschiedenen Teilen der Codebasis bekommst.


6. ⚡ Datenbank-Sperrkonflikte bei schnellen Speichervorgängen

  • Das Problem: Beim schnellen Wechseln von Aufgaben oder wenn viele Dateien schnell nacheinander gespeichert werden, kommt es beim Schreibvorgang zu LanceDB manchmal zu gleichzeitigen Versionskonflikten.

  • Wir haben es gelöst: Wir haben eine asynchrone Schreibwarteschlange mit exponentiellem Backoff eingeführt. Wenn ein Schreibkonflikt auftritt, wartet das System automatisch einige Millisekunden und versucht es sicher erneut, statt den Server zu beenden.


💡 Zusammenfassung

Durch die Kombination von ONNX-Embeddings im Prozess mit eingebettetem LanceDB, intelligenter Token-Erweiterung und Model Context Protocol (MCP) haben wir die Reibung bei der lokalen semantischen Suche beseitigt:

  • Keine Hintergrund-Daemons auf deinem Rechner.

  • Keine Python/ChromaDB-Abhängigkeiten.

  • Kein Git-Rauschen (gespeichert in node_modules/.cache).

  • Typos und Wortvarianten werden automatisch in < 1 ms behandelt.

  • Sofortige Suche nach Bedeutung – verbindet deine natürsprachigen Fragen mit dem genauen Code und den Markdown-Dokumenten, die du brauchst.

Happy Coding! ☕️🚀

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.

  • Universal memory for AI agents and tools. Save, organize and search context anywhere.

  • Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/genautkin/code-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server