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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

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