Skip to main content
Glama

AiDex

npm version MIT License Node.js 18+ MCP Server GitHub Discussions

Перестаньте тратить 80% контекстного окна вашего ИИ на поиск кода.

AiDex — это MCP-сервер, который предоставляет ИИ-ассистентам мгновенный доступ ко всей вашей кодовой базе через постоянный, предварительно созданный индекс. Работает с любым ИИ-ассистентом, поддерживающим MCP: Claude Code, Claude Desktop, Cursor, Windsurf, Gemini CLI, VS Code Copilot и другими.

AiDex Demo - grep vs aidex

AiDex Demo GIF

Что внутри — 30 инструментов в одном сервере

Категория

Инструменты

Что делает

Поиск и индексация

init, query, update, remove, status

Индексирует проект, ищет идентификаторы по имени (точное совпадение/содержит/начинается с), фильтрация по времени

Сигнатуры

signature, signatures

Получает классы + методы любого файла без его чтения — один файл или glob-шаблон

Обзор проекта

summary, tree, describe, files

Точки входа, разбивка по языкам, дерево файлов со статистикой, список файлов по типам

Кросс-проект

link, unlink, links, scan

Связывает зависимости, обнаруживает проиндексированные проекты

Глобальный поиск

global_init, global_query, global_signatures, global_status, global_refresh

Поиск по ВСЕМ вашим проектам сразу — "Писал ли я когда-нибудь X?"

Рекомендации

global_guideline

Постоянные инструкции для ИИ и соглашения по написанию кода — общие для всех проектов

Сессии

session, note

Отслеживает сессии, обнаруживает внешние изменения, оставляет заметки для следующей сессии (с поиском по истории)

Бэклог задач

task, tasks

Встроенное управление задачами с приоритетами, тегами, автоматическим логированием истории и запланированными/повторяющимися задачами

Центр логов

log

Универсальный приемник логов — любая программа отправляет логи через HTTP, доступные для запроса ИИ, в реальном времени в Viewer

Скриншоты

screenshot, windows

Кроссплатформенный захват экрана с оптимизацией для LLM — масштабирование + уменьшение цветов экономит до 95% токенов

Viewer

viewer

Интерактивный браузерный интерфейс с деревом файлов, сигнатурами, задачами, логами и живой перезагрузкой

11 языков — 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" })

Оглавление

Проблема

Каждый раз, когда ваш ИИ-ассистент ищет код, он:

  • Ищет через grep тысячи файлов → сотни результатов переполняют контекст

  • Читает файл за файлом, чтобы понять структуру → расходуется еще больше контекста

  • Забывает всё, когда сессия заканчивается → повторяет всё с нуля

Один вопрос "Где определен X?" может съесть 2000+ токенов. Сделайте это 10 раз, и вы потратите половину контекста только на навигацию.

Решение

Проиндексируйте один раз, запрашивайте вечно:

# 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 call

Результат: на 50-80% меньше контекста, используемого для навигации по коду.

Почему не просто grep?

Grep/Ripgrep

AiDex

Использование контекста

2000+ токенов на поиск

~50 токенов

Результаты

Все текстовые совпадения

Только идентификаторы

Точность

log совпадает с catalog, logarithm

log находит только log

Постоянство

Начинает каждый раз с нуля

Индекс сохраняется между сессиями

Структура

Плоский текстовый поиск

Знает методы, классы, типы

Реальная стоимость grep: Каждый результат grep включает окружающий контекст. Ищите User в большом проекте, и вы получите сотни совпадений — комментарии, строки, частичные совпадения. Ваш ИИ читает их все, сжигая токены контекста на шум.

AiDex индексирует идентификаторы: Он использует Tree-sitter для реального парсинга вашего кода. Когда вы ищете User, вы получаете определение класса, параметры метода, объявления переменных — а не каждый комментарий, где упоминается "user".

Как это работает

  1. Проиндексируйте проект один раз (~1 секунда на 1000 файлов)

    aidex_init({ path: "/path/to/project" })
  2. ИИ ищет по индексу вместо grep

    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 hours
  3. Получайте обзор файлов без чтения всего файла целиком

    aidex_signature({ file: "src/Engine.cs" })
    → All classes, methods, and their signatures

Индекс хранится в .aidex/index.db (SQLite) — быстро, портативно, без внешних зависимостей.

Функции

  • Парсинг Tree-sitter: Реальный парсинг кода, а не регулярные выражения — индексирует идентификаторы, игнорирует ключевые слова и шум

  • ~50 токенов на поиск: против 2000+ с grep — ваш ИИ сохраняет контекст для реальной работы

  • Постоянный индекс: сохраняется между сессиями — никакого повторного сканирования или чтения

  • Инкрементальные обновления: переиндексация отдельных измененных файлов, а не всего проекта

  • Фильтрация по времени: находите то, что изменилось за последний час, день или неделю

  • Автоматическая очистка: исключенные файлы (например, результаты сборки) автоматически удаляются из индекса

  • Нулевые зависимости: SQLite в режиме WAL — один файл, быстро, портативно

Поддерживаемые языки

Язык

Расширения

C#

.cs

TypeScript

.ts, .tsx

JavaScript

.js, .jsx, .mjs, .cjs

Rust

.rs

Python

.py, .pyw

C

.c, .h

C++

.cpp, .cc, .cxx, .hpp, .hxx

Java

.java

Go

.go

PHP

.php

Ruby

.rb, .rake

Быстрый старт

1. Установка

npm install -g aidex-mcp

Это всё. Настройка запускается автоматически после установки — она обнаруживает установленные ИИ-клиенты (Claude Code, Claude Desktop, Cursor, Windsurf, Gemini CLI, VS Code Copilot) и регистрирует AiDex как MCP-сервер. Она также добавляет инструкции по использованию в конфигурацию вашего ИИ (~/.claude/CLAUDE.md, ~/.gemini/GEMINI.md).

Чтобы запустить настройку вручную: aidex setup | Чтобы отменить регистрацию: aidex unsetup | Чтобы пропустить автонастройку: AIDEX_NO_SETUP=1 npm install -g aidex-mcp

2. Или зарегистрируйте вручную в вашем ИИ-ассистенте

Для Claude Code (~/.claude/settings.json или ~/.claude.json):

{
  "mcpServers": {
    "aidex": {
      "type": "stdio",
      "command": "aidex",
      "env": {}
    }
  }
}

Для Claude Desktop (%APPDATA%/Claude/claude_desktop_config.json в Windows):

{
  "mcpServers": {
    "aidex": {
      "command": "aidex"
    }
  }
}

Примечание: Имена команд aidex и aidex-mcp работают одинаково.

Важно: Имя сервера в вашей конфигурации определяет префикс инструментов MCP. Используйте "aidex", как показано выше — это даст вам имена инструментов, такие как aidex_query, aidex_signature и т.д. Использование другого имени (например, "codegraph") изменит префикс соответствующим образом.

Для Gemini CLI (~/.gemini/settings.json):

{
  "mcpServers": {
    "aidex": {
      "command": "aidex"
    }
  }
}

Для VS Code Copilot (запустите MCP: Open User Configuration в палитре команд):

{
  "servers": {
    "aidex": {
      "type": "stdio",
      "command": "aidex"
    }
  }
}

Для других MCP-клиентов: См. документацию вашего клиента по настройке MCP-сервера.

3. Заставьте ваш ИИ использовать его

Добавьте в инструкции вашего ИИ (например, ~/.claude/CLAUDE.md для Claude Code или эквивалент для вашего ИИ-клиента). Это говорит ИИ, когда и как использовать AiDex вместо grep:

## 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

Хочу ли я искать код? ├── .aidex/ существует → СТОП! Используй AiDex ├── .aidex/ отсутствует → запусти aidex_init (не спрашивай), ЗАТЕМ используй AiDex └── Config/Logs/Text → Grep/Read — ок


**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: "Протестировать исправление после перезапуска" }) # Записать aidex_note({ path: ".", note: "Также проверить граничные случаи", append: true }) # Добавить aidex_note({ path: "." }) # Прочитать aidex_note({ path: ".", search: "parser" }) # Поиск по истории aidex_note({ path: ".", clear: true }) # Очистить

- **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: "Исправить баг", priority: 1, tags: "bug" }) aidex_task({ path: ".", action: "update", id: 1, status: "done" }) aidex_task({ path: ".", action: "log", id: 1, note: "Причина найдена" }) aidex_tasks({ path: ".", status: "active" })

Запланированные и повторяющиеся задачи

aidex_task({ path: ".", action: "create", title: "Проверить статус PR", 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" }) # Сканировать и зарегистрировать aidex_global_init({ path: "...", index_unindexed: true }) # + автоиндексация малых проектов aidex_global_query({ term: "TransparentWindow", mode: "contains" }) # Поиск везде aidex_global_signatures({ term: "Render", kind: "method" }) # Найти методы везде aidex_global_status({ sort: "recent" }) # Список всех проектов


### Screenshots

aidex_screenshot() # Весь экран aidex_screenshot({ mode: "active_window" }) # Активное окно aidex_screenshot({ mode: "window", window_title: "VS Code" }) # Конкретное окно aidex_screenshot({ scale: 0.5, colors: 2 }) # Ч/Б, половинный размер (идеально для LLM) aidex_screenshot({ colors: 16 }) # 16 цветов (читаемо для UI) aidex_windows({ filter: "chrome" }) # Найти заголовки окон

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. Индексация проекта

Попросите ваш ИИ: "Проиндексируй этот проект с помощью AiDex"

Или вручную в чате с ИИ:

aidex_init({ path: "/path/to/your/project" })

Доступные инструменты

Инструмент

Описание

aidex_init

Индексировать проект (создает .aidex/)

aidex_query

Поиск по термину (точное/содержит/начинается с)

aidex_signature

Получить классы + методы одного файла

aidex_signatures

Получить сигнатуры для нескольких файлов (glob)

aidex_update

Переиндексировать один измененный файл

aidex_remove

Удалить удаленный файл из индекса

aidex_summary

Обзор проекта

aidex_tree

Дерево файлов со статистикой

aidex_describe

Добавить документацию к обзору

aidex_link

Связать другой проиндексированный проект

aidex_unlink

Удалить связанный проект

aidex_links

Список связанных проектов

aidex_status

Статистика индекса

aidex_scan

Найти проинде

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

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