codeindex
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-инструменты
Инструмент | Что делает |
| Статистика индекса: количество файлов, количество символов, состояние индексации, экономия токенов % |
| Полнотекстовый поиск с ускорением по триграммам по всем проиндексированным файлам |
| Находит определения символов (функции, структуры, классы…) по имени |
| Точный поиск слова/идентификатора в инвертированном индексе слов |
| Приблизительные места вызова символа (эвристика, без полного разрешения имён) |
| Структурное описание файла (символы, количество строк) |
| Дерево каталогов с метаданными файлов |
| Какие файлы импортирует/от каких зависит данный файл |
| Обратные зависимости — кто импортирует этот файл |
| Транзитивный радиус поражения: что сломается, если файл изменится |
| Полный план рефакторинга для символа или файла — определения, вызывающий код, роль файла, литералы, радиус поражения |
| Недавно изменённые файлы, отсортированные по давности |
| Читает содержимое файла с опциональным диапазоном строк |
| Читает только исходный код символа (с опциональными строками контекста) |
| Индексирует или переиндексирует рабочий каталог |
| Запускает один из 16 анализов кода (см. ниже) |
Анализы (инструмент analyze)
Анализ | Что находит |
| Жёстко заданные секреты, паттерны SQL-инъекций, небезопасные блоки, использование eval |
| Неиспользуемые файлы и символы |
|
|
| Файлы без тестового покрытия |
| Архитектурные запахи — божественные модули, циклические зависимости, острова |
| Межфайловые ссылки на символы |
| Несоответствия сигнатур типов между модулями |
| Расхождение схемы базы данных между миграциями и кодом |
| Отсутствующие миграции для изменений схемы |
| Проблемы соответствия package.json / Cargo.toml / go.mod |
| Жёстко заданные URL-адреса, IP-адреса, порты, абсолютные пути, TODO |
| Метрики связанности модулей |
| Обнаружение циклических зависимостей |
| Переизобретённые свободные функции — одна и та же задача, написанная дважды |
| Скопированные тела функций, игнорируя имена и пробельные символы |
| Сводка всех анализов выше в один отчёт о здоровье индекса |
Поддерживаемые языки
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-idcodeindex автоматически определяет корень проекта, поднимаясь от рабочего каталога в поисках .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/testzig build test передаёт результаты через IPC-протокол сборщика в stdout, который подключённые C-исходники tree-sitter портят своими отладочными выводами printf. Сборка тестового бинарного файла и его прямой запуск — это те же тесты, но без этого протокола на пути.
Сравнение с аналогами
codeindex | ast-grep | ctags | LSIF | Sourcegraph | |
Встроенная поддержка MCP | Да | Нет | Нет | Нет | Нет |
Экономия токенов | Да (структуры, а не полные файлы) | Нет | Частично | Да | Да |
Один бинарный файл | Да | Да | Да | Нет | Нет (сервер) |
Живой наблюдатель | Да (inotify / опрос) | Нет | Нет | Нет | Нет |
Граф зависимостей | Да | Нет | Нет | Да | Да |
Радиус поражения | Да (транзитивный) | Нет | Нет | Нет | Частично |
Планировщик рефакторинга | Да ( | Нет | Нет | Нет | Нет |
Языки | 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.
This server cannot be installed
Maintenance
Related MCP Connectors
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Code intelligence platform for AI agents. 20 tools for architecture, security & impact analysis.
Codebase intelligence for agents: 152 structured artifacts across 21 programs, one call.
Hosted code graph over MCP: exact callers, dependencies, and cross-repo blast radius for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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.4817MIT
- AlicenseNot gradedqualityAmaintenanceProvides 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.3Apache 2.0
- FlicenseNot gradedqualityCmaintenanceProvides structural code intelligence via 26 MCP tools, enabling AI assistants to query code symbols, dependencies, and call graphs accurately without file-pasting.
- AlicenseAqualityAmaintenanceEnables AI coding agents to efficiently explore codebases by providing structural outlines, module digests, symbol bodies, and AST-aware grep via MCP.4171MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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