Skip to main content
Glama

codeindex

Движок структурного анализа кода, работающий как MCP-сервер для ИИ-агентов программирования.

Он индексирует вашу кодовую базу с помощью tree-sitter (40+ языков), строит триграммный полнотекстовый индекс, инвертированный индекс слов и граф зависимостей — и предоставляет их через 16 MCP-инструментов.

 ┌─────────────┐      MCP (stdio)       ┌──────────────┐
 │  AI Agent   │ ◄─────────────────────► │   codeindex  │
 │ (Claude,    │   16 tools, JSON-RPC    │  (Zig binary) │
 │  Cursor…)   │                         │              │
 └─────────────┘                         └──────┬───────┘
                                                │
                                   tree-sitter parse (40+ langs)
                                         trigram + word index
                                         dependency graph
                                         snapshot persistence

Зачем

ИИ-агенты программирования тратят токены на чтение целых файлов. codeindex отвечает на структурные вопросы — описания символов, определения, вызывающий код, радиус поражения, цепочки зависимостей — за несколько сотен токенов вместо тысяч.

Один вызов plan_change возвращает: где определён символ, все места вызовов, архитектурную роль файла (божественный модуль / стабильное ядро / остров / драйвер), жёстко заданные литералы, которые стоит проверить, и полный транзитивный радиус поражения, если файл изменится.

Related MCP server: OpenCodeHub MCP Server

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

# Install (prebuilt binary or build from source)
curl -fsSL https://raw.githubusercontent.com/munhq/codeindex/main/install.sh | bash

# Or build manually:
cd zig && ./fetch-vendor.sh && zig build -Doptimize=ReleaseFast

Зарегистрируйте в вашем ИИ-агенте:

# Claude Code — the plugin is the one-step path. It ships the skill, the hook
# and the MCP server together, and its launcher finds or fetches the binary.
claude plugin marketplace add munhq/codeindex
claude plugin install codeindex@codeindex

# Without the plugin (or for a different MCP client), register the binary
# directly. Do not do both: two registrations mean two servers, two copies of
# every tool schema, and two writers on one snapshot. install.sh detects the
# plugin and skips this step when it is present.
claude mcp add -s user codeindex -- ~/.local/bin/codeindex --mcp

# Cursor / other MCP clients: add to your config
{
  "mcpServers": {
    "codeindex": {
      "command": "~/.local/bin/codeindex",
      "args": ["--mcp"]
    }
  }
}

При следующем запуске агента codeindex проиндексирует ваш проект в фоновом режиме и будет обслуживать структурные запросы.

MCP-инструменты

Инструмент

Что делает

status

Статистика индекса: количество файлов, количество символов, состояние индексации, экономия токенов %

search

Полнотекстовый поиск с ускорением по триграммам по всем проиндексированным файлам

find_symbol

Находит определения символов (функции, структуры, классы…) по имени

find_word

Точный поиск слова/идентификатора в инвертированном индексе слов

find_callers

Приблизительные места вызова символа (эвристика, без полного разрешения имён)

get_outline

Структурное описание файла (символы, количество строк)

get_tree

Дерево каталогов с метаданными файлов

get_imports

Какие файлы импортирует/от каких зависит данный файл

get_imported_by

Обратные зависимости — кто импортирует этот файл

get_change_impact

Транзитивный радиус поражения: что сломается, если файл изменится

plan_change

Полный план рефакторинга для символа или файла — определения, вызывающий код, роль файла, литералы, радиус поражения

get_hot_files

Недавно изменённые файлы, отсортированные по давности

read_file

Читает содержимое файла с опциональным диапазоном строк

read_symbol

Читает только исходный код символа (с опциональными строками контекста)

index_workspace

Индексирует или переиндексирует рабочий каталог

analyze

Запускает один из 16 анализов кода (см. ниже)

Анализы (инструмент analyze)

Анализ

Что находит

security

Жёстко заданные секреты, паттерны SQL-инъекций, небезопасные блоки, использование eval

dead_code

Неиспользуемые файлы и символы

unwrap_audit

.unwrap() / обработка ошибок, склонная к панике (Rust)

test_coverage

Файлы без тестового покрытия

architecture

Архитектурные запахи — божественные модули, циклические зависимости, острова

crossref

Межфайловые ссылки на символы

type_drift

Несоответствия сигнатур типов между модулями

db_schema

Расхождение схемы базы данных между миграциями и кодом

migration_parity

Отсутствующие миграции для изменений схемы

manifest_compliance

Проблемы соответствия package.json / Cargo.toml / go.mod

literal_scan

Жёстко заданные URL-адреса, IP-адреса, порты, абсолютные пути, TODO

coupling

Метрики связанности модулей

cycles

Обнаружение циклических зависимостей

duplication

Переизобретённые свободные функции — одна и та же задача, написанная дважды

clones

Скопированные тела функций, игнорируя имена и пробельные символы

health

Сводка всех анализов выше в один отчёт о здоровье индекса

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

40+ языков через tree-sitter: Rust, Python, TypeScript/TSX, Go, Zig, C, C++, Java, Ruby, Bash, C#, Kotlin, Lua, Scala, Elixir, R, Swift, Dart, Haskell, TOML, JSON, YAML, HTML, CSS, SCSS, SQL, HCL, Dockerfile, Markdown, Nix, Make и другие.

Конфигурация

codeindex --mcp                          # Run as MCP server (stdio)
codeindex --workspace ./my-project       # Index a specific directory
codeindex --project-id my-project        # Project identifier
codeindex -v                             # Print version
codeindex -h                             # Print help

# Environment variables
CODEINDEX_WORKSPACE=/path/to/project     # Same as --workspace
CODEINDEX_PROJECT_ID=my-project          # Same as --project-id

codeindex автоматически определяет корень проекта, поднимаясь от рабочего каталога в поисках .git, package.json, Cargo.toml, go.mod, build.zig, pyproject.toml и т. д.

Он отказывается индексировать весь ваш домашний каталог или корень файловой системы — передайте --workspace, чтобы указать явно.

Архитектура

  • Парсер: tree-sitter с 40+ грамматиками, компилируемый в единый бинарный файл

  • Индекс: триграммный индекс для нечёткого текстового поиска + инвертированный индекс слов для точного поиска идентификаторов

  • Граф зависимостей: разрешение импортов на уровне файлов с прямыми и обратными рёбрами

  • Хранилище версий: отслеживает изменения файлов с порядковыми номерами для инкрементальных обновлений

  • Живой наблюдатель: переиндексирует при создании/изменении/удалении файла (фоновый поток в MCP-режиме). inotify на Linux; опрос на macOS и Windows, который каждые несколько секунд сравнивает mtime и размер. status сообщает, какой бэкенд активен, в поле watcher_backend.

  • Снимок: сохраняет полный индекс в .codeindex.json, так что при перезапуске загружается снимок вместо повторной индексации

  • MCP-сервер: JSON-RPC через stdio, реализует протокол MCP 2024-11-05

Поддержка платформ

Каждая строка собирается в CI, и её тесты выполняются на этой платформе, если не указано иное. status сообщает активный бэкенд наблюдателя, так что это никогда не приходится угадывать.

Бинарный файл

Тесты в CI

Наблюдатель

install.sh

Плагин

Linux x86_64

Да

Да

inotify

Да

Да

Linux aarch64

Да

Кросс-компиляция

inotify

Да

Да

macOS aarch64

Да

Да

опрос

Да

Да

macOS x86_64

Да

Кросс-компиляция

опрос

Да

Да

Windows x86_64

Да

Да

опрос

нужен shell

см. ниже

Windows aarch64

Да

Кросс-компиляция

опрос

нужен shell

см. ниже

В Windows install.sh и лаунчер плагина являются shell-скриптами, поэтому им нужны Git Bash, MSYS2 или Cygwin — скрипты сами распознают окружение и находят нужный .exe-артефакт. Плагин регистрирует свой сервер через этот лаунчер, поэтому нативному Windows Claude Code без shell следует зарегистрировать бинарный файл напрямую:

claude mcp add -s user codeindex -- C:\path\to\codeindex.exe --mcp

Ничего здесь не подписано и не нотаризовано. В macOS бинарный файл, полученный через curl, запускается без запроса Gatekeeper; файл, загруженный через браузер, помечается карантином, и xattr -d com.apple.quarantine codeindex снимает его.

Сборка из исходников

Требуется Zig 0.16.0.

cd zig
./fetch-vendor.sh    # Clone tree-sitter + 40 grammar repos
zig build -Doptimize=ReleaseFast
# Binary: zig/zig-out/bin/codeindex

Запуск тестов:

cd zig && zig build test-bin && ./zig-out/bin/test

zig build test передаёт результаты через IPC-протокол сборщика в stdout, который подключённые C-исходники tree-sitter портят своими отладочными выводами printf. Сборка тестового бинарного файла и его прямой запуск — это те же тесты, но без этого протокола на пути.

Сравнение с аналогами

codeindex

ast-grep

ctags

LSIF

Sourcegraph

Встроенная поддержка MCP

Да

Нет

Нет

Нет

Нет

Экономия токенов

Да (структуры, а не полные файлы)

Нет

Частично

Да

Да

Один бинарный файл

Да

Да

Да

Нет

Нет (сервер)

Живой наблюдатель

Да (inotify / опрос)

Нет

Нет

Нет

Нет

Граф зависимостей

Да

Нет

Нет

Да

Да

Радиус поражения

Да (транзитивный)

Нет

Нет

Нет

Частично

Планировщик рефакторинга

Да (plan_change)

Нет

Нет

Нет

Нет

Языки

40+

20+

50+

Различается

Различается

Работает в паре с chat-recall

codeindex отвечает на вопросы о коде перед вами. chat-recall отвечает на вопросы о работе, которую вы уже сделали, — он индексирует ваши сессии Claude Code, Gemini CLI, Codex, OpenCode и Antigravity в одну доступную для поиска историю и тоже предоставляет её через MCP.

Вместе они покрывают обе половины того, что агент забывает: codeindex не даёт ему перечитывать файлы, которые можно было бы описать структурно, а chat-recall не даёт переделывать уже законченную работу. chat-recall обнаруживает бинарный файл codeindex в вашем PATH и при обнаружении регистрирует четыре дополнительных инструмента анализа кода — ни один из них не требует другого.

Лицензия

MIT. См. LICENSE.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search code by meaning, explore codebase structure, store and query knowledge with temporal facts, and read source code through a set of MCP tools.
    481
    7
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides code intelligence for AI coding agents by indexing repositories into a hybrid knowledge graph, enabling agents to query dependencies, impact, and context through 28 MCP tools.
    3
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides structural code intelligence via 26 MCP tools, enabling AI assistants to query code symbols, dependencies, and call graphs accurately without file-pasting.
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI coding agents to efficiently explore codebases by providing structural outlines, module digests, symbol bodies, and AST-aware grep via MCP.
    4
    17
    1
    MIT

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/munhq/codeindex'

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