ontomics
ontomics
ontomics предоставляет Claude Code мгновенные знания о вашей кодовой базе. Один вызов инструмента вместо 19. Примерно в 20 раз меньше токенов.
Бенчмарк
Протестировано с Claude Sonnet — один и тот же вопрос, с ontomics и без него.
«Что означает 'transform' в этой кодовой базе?» в voxelmorph (полная расшифровка):
С ontomics | Без | |
Вызовы инструментов | 1 | 19 |
Токены | ~3.7k | ~76k |
Время | 5с | 1м 15с |
Качество ответа | Полный | Полный |
«Каковы основные предметные концепции в этой кодовой базе?» в ScribblePrompt (полная расшифровка):
С ontomics | Без | |
Вызовы инструментов | 1 | 26 |
Токены | ~3.7k | ~61.6k |
Время | ~5с | 56с |
Качество ответа | Полный | Полный |
В обоих случаях были получены полные и правильные ответы. ontomics справился за один вызов.
Related MCP server: Code-Index-MCP
Что он делает, чего не может поиск
Поиск показывает, где встречается строка. LSP показывает, где определен и используется символ. Ни то, ни другое не отвечает на вопросы: каковы предметные концепции в этой кодовой базе? Как они связаны? Какие соглашения об именовании сложились? Что изменилось в предметном словаре с момента последнего релиза? Какие функции ведут себя схожим образом, независимо от их названия?
ontomics создает семантический индекс предметной области вашего проекта — группирует связанные символы в концепции, обнаруживает соглашения об именовании на основе частоты использования, разрешает аббревиатуры, группирует функции по поведенческому сходству и отслеживает эволюцию словаря с течением времени. Этот индекс можно экспортировать как переносимый артефакт для внедрения соглашений в другие репозитории.
Поведенческое сходство
Помимо именования и концепций, ontomics встраивает (embeds) тела функций, используя CodeRankEmbed (768-размерное, контрастное извлечение кода), и кластеризует их по поведенческому сходству. Это выявляет связи, которые не обнаруживаются ни именованием, ни графами вызовов:
❯ What functions behave like spatial_transform()?
random_transform() nn/functional.py:352 0.80
spatial_transform() functional.py:596 0.69
random_transform() functional.py:1399 0.67
random_disp() nn/functional.py:275 0.65
integrate_disp() functional.py:764 0.65
compose() nn/functional.py:216 0.63
disp_to_trf() functional.py:343 0.62Результат также показывает, что random_transform встречается в двух местах с разными показателями сходства — это признак дублирования реализации, который поиск на уровне концепций полностью упустил бы.
Установка
Установите один раз, доступно в каждом проекте. Конфигурация не требуется — ontomics автоматически обнаруживает репозиторий и индексирует его при первом запуске.
ontomics требует наличия git-репозитория (директория .git/). Он откажется индексировать домашние, корневые или временные директории. Чтобы проиндексировать директорию без git, используйте --force.
1. Установка бинарного файла
npm (macOS/Linux):
npm install -g @ontomics/ontomicsmacOS (Homebrew):
brew install EtienneChollet/tap/ontomicsShell-установщик (macOS/Linux):
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/EtienneChollet/ontomics/releases/latest/download/ontomics-installer.sh | shИз исходного кода:
git clone https://github.com/EtienneChollet/ontomics.git
cd ontomics
cargo build --release2. Регистрация в вашей среде
Claude Code:
claude mcp add -s user ontomics -- ontomicsCodex:
codex mcp add ontomics -- ontomicsOpenClaw:
openclaw mcp set ontomics '{"command":"ontomics"}'pi-coding-agent:
pi install npm:@ontomics/ontomicsПоделитесь с командой — добавьте .mcp.json в корень вашего репозитория:
{
"mcpServers": {
"ontomics": {
"command": "npx",
"args": ["-y", "@ontomics/ontomics", "--repo", "."]
}
}
}Поддерживаемые языки
Python, TypeScript, JavaScript, Rust. Автоматическое определение по расширениям файлов.
Инструменты
Концепции и словарь
Инструмент | Что он делает |
| Находит все варианты, связанные концепции и вхождения термина |
| Находит ключевые сигнатуры, классы и файлы для концепции |
| Получает сигнатуру, docstring и связи для функции или класса |
| Отслеживает, как концепция проходит через кодовую базу по цепочкам вызовов |
| Перечисляет основные предметные концепции по частоте |
| Перечисляет все обнаруженные шаблоны именования (префиксы, суффиксы, преобразования) |
| Перечисляет сущности кода (классы, функции), отфильтрованные по концепции, роли или типу |
| Проверяет идентификатор на соответствие соглашениям проекта; предлагает каноническую форму |
| Генерирует имя идентификатора, соответствующее словарю проекта |
| Измеряет покрытие соглашений, согласованность именования и сплоченность кластеров |
| Показывает новые, измененные или удаленные предметные концепции с момента git-референса |
| Экспортирует предметные знания в виде переносимого YAML для использования в других репозиториях |
Поведенческое сходство
Инструмент | Что он делает |
| Находит функции с поведенчески схожими реализациями, ранжированные по сходству эмбеддингов |
| Получает поведенческое описание, текст тела и принадлежность к кластеру логики для функции |
| Собирает многоуровневый контекст (концепции + логика) для символа, оптимизированный для потребления LLM |
Структура кодовой базы
Инструмент | Что он делает |
| Обзор сущностей, концепций и связей файла |
| Показывает, какие модули содержат какие предметные концепции |
| Показывает доминирующие типы и то, как данные проходят через кодовую базу |
| Отслеживает, как конкретный тип распространяется по файлам и местам вызовов |
Ресурсы
Ресурс | Что он делает |
| Брифинг сессии: основные соглашения, аббревиатуры, ключевые концепции, контрастные пары и предупреждения о словаре. Также доступно через CLI |
Как это работает
ontomics запускает многоэтапный конвейер полностью на вашей машине — ключи API не требуются:
Парсинг — tree-sitter извлекает каждый идентификатор, сигнатуру и место вызова из ваших исходных файлов
Анализ — TF-IDF оценка определяет предметно-ориентированные концепции и обнаруживает соглашения об именовании
Эмбеддинг (концепции) — BGE-small (384-размерное) кластеризует связанные концепции по семантическому сходству
Эмбеддинг (логика) — CodeRankEmbed (768-размерное) встраивает тела функций и кластеризует их по поведенческому сходству
Центральность — PageRank оценивает сущности по структурной важности
Обе модели эмбеддингов загружаются один раз при первом запуске и кэшируются локально. Индекс находится в <repo>/.ontomics/index.db — последующие запуски загружаются из кэша и отслеживают изменения файлов.
Конфигурация через .ontomics/config.toml в корне репозитория. Все поля имеют разумные значения по умолчанию. См. SPEC.md для полного описания дизайна.
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/EtienneChollet/ontomics'
If you have feedback or need assistance with the MCP directory API, please join our Discord server