AiDex
AiDex
Verschwenden Sie nicht 80% des Kontextfensters Ihrer KI mit der Suche nach Code.
AiDex ist ein MCP-Server, der KI-Programmierassistenten durch einen persistenten, vorgefertigten Index sofortigen Zugriff auf Ihre gesamte Codebasis ermöglicht. Funktioniert mit jedem MCP-kompatiblen KI-Assistenten: Claude Code, Claude Desktop, Cursor, Windsurf, Gemini CLI, VS Code Copilot und mehr.


Was ist enthalten — 30 Tools in einem Server
Kategorie | Tools | Was es tut |
Suche & Index |
| Indizieren Sie Ihr Projekt, suchen Sie Bezeichner nach Namen (exakt/enthält/beginnt_mit), zeitbasierte Filterung |
Signaturen |
| Klassen + Methoden jeder Datei abrufen, ohne sie zu lesen — einzelne Datei oder Glob-Muster |
Projektübersicht |
| Einstiegspunkte, Sprachaufschlüsselung, Dateibaum mit Statistiken, Dateiauflistung nach Typ |
Projektübergreifend |
| Abhängigkeiten verknüpfen, indizierte Projekte entdecken |
Globale Suche |
| Suchen Sie in ALLEN Ihren Projekten gleichzeitig — "Habe ich jemals X geschrieben?" |
Richtlinien |
| Persistente KI-Anweisungen & Programmierkonventionen — projektübergreifend geteilt |
Sitzungen |
| Sitzungen verfolgen, externe Änderungen erkennen, Notizen für die nächste Sitzung hinterlassen (mit durchsuchbarem Verlauf) |
Aufgaben-Backlog |
| Integrierte Aufgabenverwaltung mit Prioritäten, Tags, automatisch protokolliertem Verlauf und geplanten/wiederkehrenden Aufgaben |
Log Hub |
| Universeller Log-Empfänger — jedes Programm sendet Logs per HTTP, abfragbar durch die KI, live im Viewer |
Screenshots |
| Plattformübergreifende Bildschirmaufnahme mit LLM-Optimierung — Skalierung + Farbreduzierung spart bis zu 95% Token |
Viewer |
| Interaktive Browser-UI mit Dateibaum, Signaturen, Aufgaben, Logs und Live-Reload |
11 Sprachen — C#, TypeScript, JavaScript, Rust, Python, C, C++, Java, Go, PHP, Ruby
# Find where "PlayerHealth" is defined — 1 call, ~50 tokens
aidex_query({ term: "PlayerHealth" })
→ Engine.cs:45, Player.cs:23, UI.cs:156
# All methods in a file — without reading the whole file
aidex_signature({ file: "src/Engine.cs" })
→ class GameEngine { Update(), Render(), LoadScene(), ... }
# What changed in the last 2 hours?
aidex_query({ term: "render", modified_since: "2h" })
# Search across ALL your projects at once
aidex_global_query({ term: "TransparentWindow", mode: "contains" })
→ Found in: LibWebAppGpu (3 hits), DebugViewer (1 hit)
# Leave a note for your next session
aidex_note({ path: ".", note: "Test the parser fix after restart" })
# Create a task while working
aidex_task({ path: ".", action: "create", title: "Fix edge case in parser", priority: 1, tags: "bug" })Inhaltsverzeichnis
Das Problem
Jedes Mal, wenn Ihr KI-Assistent nach Code sucht:
Grept er durch Tausende von Dateien → Hunderte von Ergebnissen überfluten den Kontext
Liest er Datei für Datei, um die Struktur zu verstehen → mehr Kontext verbraucht
Vergisst er alles, wenn die Sitzung endet → Wiederholung von vorne
Eine einzige Frage wie "Wo ist X definiert?" kann über 2.000 Token verbrauchen. Wenn Sie das 10 Mal tun, haben Sie die Hälfte Ihres Kontextes allein für die Navigation verbrannt.
Die Lösung
Einmal indizieren, für immer abfragen:
# Before: grep flooding your context
AI: grep "PlayerHealth" → 200 hits in 40 files
AI: read File1.cs, File2.cs, File3.cs...
→ 2000+ tokens consumed, 5+ tool calls
# After: precise results, minimal context
AI: aidex_query({ term: "PlayerHealth" })
→ Engine.cs:45, Player.cs:23, UI.cs:156
→ ~50 tokens, 1 tool callErgebnis: 50-80% weniger Kontextverbrauch für die Codenavigation.
Warum nicht einfach Grep?
Grep/Ripgrep | AiDex | |
Kontextverbrauch | 2000+ Token pro Suche | ~50 Token |
Ergebnisse | Alle Textübereinstimmungen | Nur Bezeichner |
Präzision |
|
|
Persistenz | Startet jedes Mal neu | Index überdauert Sitzungen |
Struktur | Flache Textsuche | Kennt Methoden, Klassen, Typen |
Die wahren Kosten von Grep: Jedes Grep-Ergebnis enthält den umgebenden Kontext. Suchen Sie nach User in einem großen Projekt und Sie erhalten Hunderte von Treffern - Kommentare, Strings, Teilübereinstimmungen. Ihre KI liest sie alle durch und verbrennt Kontext-Token für Rauschen.
AiDex indiziert Bezeichner: Es verwendet Tree-sitter, um Ihren Code tatsächlich zu parsen. Wenn Sie nach User suchen, erhalten Sie die Klassendefinition, die Methodenparameter, die Variablendeklarationen - nicht jeden Kommentar, der "user" erwähnt.
Wie es funktioniert
Indizieren Sie Ihr Projekt einmal (~1 Sekunde pro 1000 Dateien)
aidex_init({ path: "/path/to/project" })KI durchsucht den Index anstatt zu greppen
aidex_query({ term: "Calculate", mode: "starts_with" }) → All functions starting with "Calculate" + exact line numbers aidex_query({ term: "Player", modified_since: "2h" }) → Only matches changed in the last 2 hoursErhalten Sie Dateiübersichten, ohne ganze Dateien zu lesen
aidex_signature({ file: "src/Engine.cs" }) → All classes, methods, and their signatures
Der Index befindet sich in .aidex/index.db (SQLite) - schnell, portabel, keine externen Abhängigkeiten.
Funktionen
Tree-sitter Parsing: Echte Code-Analyse, kein Regex — indiziert Bezeichner, ignoriert Schlüsselwörter und Rauschen
~50 Token pro Suche: vs 2000+ mit Grep — Ihre KI behält ihren Kontext für die eigentliche Arbeit
Persistenter Index: Überdauert Sitzungen — kein erneutes Scannen, kein erneutes Lesen
Inkrementelle Updates: Re-Indizierung einzelner Dateien nach Änderungen, nicht des gesamten Projekts
Zeitbasierte Filterung: Finden Sie, was sich in der letzten Stunde, dem letzten Tag oder der letzten Woche geändert hat
Automatische Bereinigung: Ausgeschlossene Dateien (z. B. Build-Ausgaben) werden automatisch aus dem Index entfernt
Null Abhängigkeiten: SQLite mit WAL-Modus — einzelne Datei, schnell, portabel
Unterstützte Sprachen
Sprache | Erweiterungen |
C# |
|
TypeScript |
|
JavaScript |
|
Rust |
|
Python |
|
C |
|
C++ |
|
Java |
|
Go |
|
PHP |
|
Ruby |
|
Schnellstart
1. Installieren
npm install -g aidex-mcpDas war's. Das Setup läuft nach der Installation automatisch — es erkennt Ihre installierten KI-Clients (Claude Code, Claude Desktop, Cursor, Windsurf, Gemini CLI, VS Code Copilot) und registriert AiDex als MCP-Server. Es fügt auch Nutzungshinweise zur Konfiguration Ihrer KI hinzu (~/.claude/CLAUDE.md, ~/.gemini/GEMINI.md).
Um das Setup manuell erneut auszuführen: aidex setup | Zum Aufheben der Registrierung: aidex unsetup | Um das automatische Setup zu überspringen: AIDEX_NO_SETUP=1 npm install -g aidex-mcp
2. Oder registrieren Sie sich manuell bei Ihrem KI-Assistenten
Für Claude Code (~/.claude/settings.json oder ~/.claude.json):
{
"mcpServers": {
"aidex": {
"type": "stdio",
"command": "aidex",
"env": {}
}
}
}Für Claude Desktop (%APPDATA%/Claude/claude_desktop_config.json unter Windows):
{
"mcpServers": {
"aidex": {
"command": "aidex"
}
}
}Hinweis: Sowohl
aidexals auchaidex-mcpfunktionieren als Befehlsnamen.
Wichtig: Der Servername in Ihrer Konfiguration bestimmt das MCP-Tool-Präfix. Verwenden Sie wie oben gezeigt
"aidex"— dies gibt Ihnen Tool-Namen wieaidex_query,aidex_signatureusw. Die Verwendung eines anderen Namens (z. B."codegraph") würde das Präfix entsprechend ändern.
Für Gemini CLI (~/.gemini/settings.json):
{
"mcpServers": {
"aidex": {
"command": "aidex"
}
}
}Für VS Code Copilot (führen Sie MCP: Open User Configuration in der Befehlspalette aus):
{
"servers": {
"aidex": {
"type": "stdio",
"command": "aidex"
}
}
}Für andere MCP-Clients: Siehe die Dokumentation Ihres Clients zur MCP-Serverkonfiguration.
3. Bringen Sie Ihre KI dazu, es tatsächlich zu nutzen
Fügen Sie dies zu den Anweisungen Ihrer KI hinzu (z. B. ~/.claude/CLAUDE.md für Claude Code oder das Äquivalent für Ihren KI-Client). Dies sagt der KI, wann und wie sie AiDex anstelle von Grep verwenden soll:
## AiDex - Persistent Code Index (MCP Server)
AiDex provides fast, precise code search through a pre-built index.
**Always prefer AiDex over Grep/Glob for code searches.**
### REQUIRED: Before using Grep/Glob/Read for code searches
Will ich Code durchsuchen? ├── .aidex/ existiert → STOPP! Verwende stattdessen AiDex ├── .aidex/ fehlt → führe aidex_init aus (nicht fragen), DANN verwende AiDex └── Config/Logs/Text → Grep/Lesen ist in Ordnung
**NEVER do this when .aidex/ exists:**
- ❌ `Grep pattern="functionName"` → ✅ `aidex_query term="functionName"`
- ❌ `Grep pattern="class.*Name"` → ✅ `aidex_query term="Name" mode="contains"`
- ❌ `Read file.cs` to see methods → ✅ `aidex_signature file="file.cs"`
- ❌ `Glob pattern="**/*.cs"` + Read → ✅ `aidex_signatures pattern="**/*.cs"`
### Session-Start Rule (REQUIRED — every session, no exceptions)
1. Call `aidex_session({ path: "<project>" })` — detects external changes, auto-reindexes
2. If `.aidex/` does NOT exist → run `aidex_init` automatically (don't ask)
3. If a session note exists → **show it to the user** before continuing
4. **Before ending a session:** always leave a note about what to do next
### Question → Right Tool
| Question | Tool |
|----------|------|
| "Where is X defined?" | `aidex_query term="X"` |
| "Find anything containing X" | `aidex_query term="X" mode="contains"` |
| "All functions starting with X" | `aidex_query term="X" mode="starts_with"` |
| "What methods does file Y have?" | `aidex_signature file="Y"` |
| "Explore all files in src/" | `aidex_signatures pattern="src/**"` |
| "Project overview" | `aidex_summary` + `aidex_tree` |
| "What changed recently?" | `aidex_query term="X" modified_since="2h"` |
| "What files changed today?" | `aidex_files path="." modified_since="8h"` |
| "Have I ever written X?" | `aidex_global_query term="X" mode="contains"` |
| "Which project has class Y?" | `aidex_global_signatures term="Y" kind="class"` |
| "All indexed projects?" | `aidex_global_status` |
### Search Modes
- **`exact`** (default): Finds only the exact identifier — `log` won't match `catalog`
- **`contains`**: Finds identifiers containing the term — `render` matches `preRenderSetup`
- **`starts_with`**: Finds identifiers starting with the term — `Update` matches `UpdatePlayer`, `UpdateUI`
### All Tools (30)
| Category | Tools | Purpose |
|----------|-------|---------|
| Search & Index | `aidex_init`, `aidex_query`, `aidex_update`, `aidex_remove`, `aidex_status` | Index project, search identifiers (exact/contains/starts_with), time filter |
| Signatures | `aidex_signature`, `aidex_signatures` | Get classes + methods without reading files |
| Overview | `aidex_summary`, `aidex_tree`, `aidex_describe`, `aidex_files` | Entry points, file tree, file listing by type |
| Cross-Project | `aidex_link`, `aidex_unlink`, `aidex_links`, `aidex_scan` | Link dependencies, discover projects |
| Global Search | `aidex_global_init`, `aidex_global_query`, `aidex_global_signatures`, `aidex_global_status`, `aidex_global_refresh` | Search across ALL projects |
| Guidelines | `aidex_global_guideline` | Persistent AI instructions & conventions (key-value, global) |
| Sessions | `aidex_session`, `aidex_note` | Track sessions, leave notes (with searchable history) |
| Tasks | `aidex_task`, `aidex_tasks` | Built-in backlog with priorities, tags, summaries, auto-logged history, scheduled/recurring tasks |
| Log Hub | `aidex_log` | Universal log receiver — any program sends logs via HTTP, AI queries them, live in Viewer |
| Screenshots | `aidex_screenshot`, `aidex_windows` | Screen capture with LLM optimization (scale + color reduction, no index needed) |
| Viewer | `aidex_viewer` | Interactive browser UI with file tree, signatures, tasks, and live logs |
**11 languages:** C#, TypeScript, JavaScript, Rust, Python, C, C++, Java, Go, PHP, Ruby
### Session Notes
Leave notes for the next session — they persist in the database:aidex_note({ path: ".", note: "Test the fix after restart" }) # Schreiben aidex_note({ path: ".", note: "Also check edge cases", append: true }) # Anhängen aidex_note({ path: "." }) # Lesen aidex_note({ path: ".", search: "parser" }) # Verlauf durchsuchen aidex_note({ path: ".", clear: true }) # Löschen
- **Before ending a session:** automatically leave a note about next steps
- **User says "remember for next session: ..."** → write it immediately
### Task Backlog
Track TODOs, bugs, and features right next to your code index:aidex_task({ path: ".", action: "create", title: "Fix bug", priority: 1, tags: "bug" }) aidex_task({ path: ".", action: "update", id: 1, status: "done" }) aidex_task({ path: ".", action: "log", id: 1, note: "Root cause found" }) aidex_tasks({ path: ".", status: "active" })
Geplante & wiederkehrende Aufgaben
aidex_task({ path: ".", action: "create", title: "Check PR status", due: "3d", interval: "3d", task_action: "gh pr list" })
Priority: 1=high, 2=medium, 3=low | Status: `backlog → active → done | cancelled`
### Global Search (across all projects)
aidex_global_init({ path: "/path/to/all/repos" }) # Scannen & registrieren aidex_global_init({ path: "...", index_unindexed: true }) # + kleine Projekte automatisch indizieren aidex_global_query({ term: "TransparentWindow", mode: "contains" }) # Überall suchen aidex_global_signatures({ term: "Render", kind: "method" }) # Methoden überall finden aidex_global_status({ sort: "recent" }) # Alle Projekte auflisten
### Screenshots
aidex_screenshot() # Vollbild aidex_screenshot({ mode: "active_window" }) # Aktives Fenster aidex_screenshot({ mode: "window", window_title: "VS Code" }) # Bestimmtes Fenster aidex_screenshot({ scale: 0.5, colors: 2 }) # S/W, halbe Größe (ideal für LLM) aidex_screenshot({ colors: 16 }) # 16 Farben (UI lesbar) aidex_windows({ filter: "chrome" }) # Fenstertitel finden
No index needed. Returns file path → use `Read` to view immediately.
**LLM optimization strategy:** Always start with aggressive settings, then retry if unreadable:
1. First try: `scale: 0.5, colors: 2` (B&W, half size — smallest possible)
2. If unreadable: retry with `colors: 16` (adds shading for UI elements)
3. If still unclear: `scale: 0.75` or omit `colors` for full quality
4. **Remember** what works for each window/app during the session — don't retry every time.4. Indizieren Sie Ihr Projekt
Fragen Sie Ihre KI: "Indiziere dieses Projekt mit AiDex"
Oder manuell im KI-Chat:
aidex_init({ path: "/path/to/your/project" })Verfügbare Tools
Tool | Beschreibung |
| Projekt indizieren (erstellt |
| Nach Begriff suchen (exakt/enthält/beginnt_mit) |
| Klassen + Methoden einer Datei abrufen |
| Signaturen für mehrere Dateien abrufen (Glob) |
| Einzelne geänderte Datei neu indizieren |
| Gelöschte Datei aus dem Index entfernen |
| Projektübersicht |
| Dateibaum mit Statistiken |
| Dokumentation zur Zusammenfassung hinzufügen |
| Ein weiteres indiziertes Projekt verknüpfen |
| Verknüpftes Projekt entfernen |
| Verknüpfte Projekte auflisten |
| Index-Statistiken |
| Indizierte Projekte im Verzeichnisbaum finden |
| Projektdateien nach Typ auflisten (Code/Config/Doc/Asset) |
| Sitzungsnotizen lesen/schreiben (bleiben zwischen Sitzungen erhalten) |
| Sitzung starten, externe Änderungen erkennen, automatisch neu indizieren |
| Interaktiven Projektbaum im Browser öffnen |
| Aufgaben mit Priorität und Tags erstellen, lesen, aktualisieren, löschen |
| Aufgaben nach |
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/CSCSoftware/AiDex'
If you have feedback or need assistance with the MCP directory API, please join our Discord server