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.
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.
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.
251
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