Code Index MCP
MCP-сервер индексирует локальный репозиторий через tree-sitter и дает агенту поиск по коду, список файлов и сводку по структуре файла
- 1 007 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Читает и индексирует все файлы выбранного проекта, в том числе конфигурации и ключи, лежащие в каталоге
- Сохраняет индекс и настройки в служебном каталоге на диске и держит фоновый наблюдатель за файлами
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/johnhuang316-code-index-mcpОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Читает и индексирует все файлы выбранного проекта, в том числе конфигурации и ключи, лежащие в каталоге
- Сохраняет индекс и настройки в служебном каталоге на диске и держит фоновый наблюдатель за файлами
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер запускается на вашей машине через `uvx code-index-mcp` и работает с одним проектом за раз: агент вызывает `set_project_path`, и сервер строит поверхностный индекс списка файлов. Для символов нужен глубокий индекс, его собирает `build_deep_index`. Десять языков (Python, JavaScript, TypeScript, Java, Kotlin, C#, Go, Objective-C, Zig и Rust) разбираются парсером tree-sitter на классы, функции и вызовы, остальные пятьдесят с лишним типов файлов получают базовую индексацию. Поиск `search_code_advanced` сам выбирает установленный инструмент из ugrep, ripgrep, ag и grep. По умолчанию ищет буквальную строку, с `regex=True` — регулярное выражение, но оно требует нативного инструмента, а запасной вариант понимает только буквальный поиск. Есть нечеткое совпадение, фильтр по маске файлов и постраничный вывод по десять результатов. `find_files` ищет файлы по glob-шаблону, `get_file_summary` показывает функции, импорты и сложность файла после глубокого индекса. Индекс лежит в хранилище, которое сервер готовит командой `create_temp_directory`. Наблюдатель за файлами на библиотеке watchdog обновляет список при изменениях, пакуя частые правки в одну пересборку. Инструмент `configure_file_watcher` включает и выключает его и меняет задержку.
Для кого. Для разработчиков, которые работают с большой кодовой базой через Claude Code, Codex или другой MCP-клиент и хотят, чтобы агент искал по индексу, а не перебирал каталоги.
Подходит, если
- В проекте сотни файлов, и агент тратит запросы на обход каталогов: `find_files` с шаблоном вроде `**/*.py` находит нужное за один вызов
- Нужно найти все вызовы устаревшего метода: `search_code_advanced` ищет по имени, по регулярному выражению или нечетко
- Требуется быстрая сводка по файлу, например `src/api/userService.ts`: `get_file_summary` покажет функции, импорты и сложность
- Проект на Java, Kotlin, C#, Go, Rust или Zig, где важны классы и методы: для них есть отдельные разборщики tree-sitter
- Индекс должен обновляться сам при правках агента: включается наблюдатель за файлами
Не подходит, если
- Нужны правки на уровне символов и переименование через языковой сервер: этим занимается Serena, а Code Index MCP только читает и ищет
- Нужна выдача отдельных функций и классов по полному имени с графом импортов: для такой работы подойдет jcodemunch-mcp
- На машине нет Python 3.10 и менеджера uv, а ставить их нельзя
- Проект на C, C++, Ruby, PHP или Swift и нужны символы: эти языки идут через запасной разбор и получают базовую индексацию без символов
Пример запроса к агенту
Задай путь проекта /Users/dev/my-react-app, построй глубокий индекс и найди все места, где вызывается старый метод getUserDataMCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
- Сводка по файлу и символы доступны только после `build_deep_index`. Без него сервер ответит `needs_deep_index`, а поверхностный индекс держит лишь список файлов.
- Регулярные выражения работают при установленном ugrep, ripgrep или ag. Запасной поиск понимает только буквальную строку.
- Автообновление идет через watchdog. Если оно не срабатывает, помогает `pip install watchdog` или ручной вызов `refresh_index`. На macOS наблюдатель можно переключить с FSEvents на kqueue или опрос, kqueue открывает по одному дескриптору на каждый файл, и для больших проектов может понадобиться `ulimit -n 10240`.
- В Windows для Codex в блок `env` нужно вписать `HOME`, `APPDATA`, `LOCALAPPDATA` и `SystemRoot`, иначе `uvx` может не запуститься.
- Сервер держит индекс одного проекта за раз. Для другого репозитория нужно снова вызывать `set_project_path` или запускать сервер с `--project-path`.
Как отключить. Удалите блок `code-index` из `mcpServers` в `claude_desktop_config.json` или `~/.claude.json`, у Codex удалите раздел `[mcp_servers.code-index]` из `~/.codex/config.toml`. Сохраненный индекс сбрасывает инструмент `clear_settings`. Установленный через pip пакет убирает `pip uninstall code-index-mcp`.
Частые вопросы
Чем отличаются поверхностный и глубокий индекс?
Поверхностный индекс хранит список файлов и строится при `set_project_path` и `refresh_index`. Глубокий индекс с символами строит `build_deep_index`, он нужен для `get_file_summary`. Наблюдатель за файлами обновляет только поверхностный индекс, а символы пересобираются повторным вызовом.
Как включить регулярные выражения?
Передайте `regex=True` в `search_code_advanced` и установите ugrep, ripgrep или ag. Если нативных инструментов нет, запасной поиск работает только с буквальной строкой. Список найденных инструментов обновляет `refresh_search_tools`.
Какие языки разбираются глубоко?
Десять: Python, JavaScript, TypeScript, Java, Kotlin, C#, Go, Objective-C, Zig и Rust. Остальные языки, веб-файлы, SQL, Markdown и конфигурации индексируются базово через запасной разборщик.
Как указать проект сразу при запуске?
Добавьте `--project-path /абсолютный/путь/к/репозиторию` в массив `args` конфигурации. Тогда сервер сам инициализирует проект при старте, и вызывать `set_project_path` не нужно.
Что делать, если сервер не видит новые файлы?
Проверьте `get_file_watcher_status`. Если наблюдатель не работает, поставьте `watchdog` или вызовите `refresh_index` после правок. Параметры наблюдателя меняет `configure_file_watcher`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер, который индексирует код через tree-sitter и отдает агенту отдельные функции и классы вместо целых файлов
MCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов
Локальный индекс кодовой базы для агентов: гибридный поиск, графы зависимостей и анализ последствий изменений
MCP-сервер, который дает агенту читать файлы, искать по коду и запускать команды в рабочей папке
MCP-сервер, который строит граф кода: функции, классы, вызовы и маршруты, и отвечает на структурные запросы агента локально
Локальный MCP-сервер индексирует код проекта, и агент достает из индекса нужные функции вместо чтения целых файлов
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Code Index MCP (эта запись) | нет | не нужна | 1 007 | |
| Serena | нет | не нужна | 30 818 | дает агенту правки на уровне символов через языковые серверы; Code Index MCP читает и ищет по индексу |
| jCodeMunch MCP | нет | не нужна | 2 817 | отдает отдельные функции и классы по полному имени, больше 70 языков; Code Index MCP делает упор на поиск и сводку по файлу |
Коротко о README
Документация описывает быстрый запуск через `uvx` для Claude Desktop и Codex, перечень инструментов по группам, примеры запросов к агенту и список поддерживаемых файлов. Отдельные разделы посвящены наблюдателю за файлами, решению проблем на macOS и сборке из исходников. В репозитории лежат манифесты `.well-known/mcp.json` и `fastmcp.json`, Dockerfile, исходники на Python с каталогами индексации и поиска, две справочные записки в `docs` и переводы документации на китайский, японский и корейский.