jscpd CLI

Детектор дублирующегося кода на более чем 220 языках с MCP-сервером для агента и отчетом, экономящим токены

  • 6 545 ★ репозитория
  • Последний коммит
  • MIT
CLIОфициальный

Расширенный доступ

Почему такой уровень

  • Запускается локально и сканирует исходный код проекта на дубли
  • С флагом --mcp поднимает MCP-сервер по stdio и держит индекс в памяти
Все причины и проверки

kucherenko/jscpd

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/jscpd

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Запускается локально и сканирует исходный код проекта на дубли
  • С флагом --mcp поднимает MCP-сервер по stdio и держит индекс в памяти

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

jscpd токенизирует код по правилам конкретного языка (свой синтаксис строк и комментариев для каждого формата), а затем ищет повторяющиеся последовательности токенов между файлами алгоритмом Рабина-Карпа. Помимо копипаста, инструмент умеет находить мертвый код, ранжировать файлы по сложности и отслеживать динамику дублирования по истории git. Отдельный флаг поднимает встроенный MCP-сервер поверх stdio, чтобы агент мог сам проверять фрагмент кода на дублирование или искать структурно похожие функции.

Для кого. Для разработчиков и инженеров качества кода, которые хотят находить дублирование и мертвый код вручную или через агента.

Подходит, если

  • Нужно проверить проект на дублирующийся код перед мержем
  • Агент должен сам проверять фрагмент кода на совпадения перед рефакторингом
  • Нужно встроить проверку дублирования в CI как GitHub Action

Не подходит, если

  • Нужен статический анализ логических ошибок, а не совпадений кода
  • Формат файла не входит в список из 224 поддерживаемых

Пример запроса к агенту

Найди и исправь дублирование кода в этом проекте

Ограничения

Инструмент только читает исходный код проекта и не вносит изменений сам. MCP-режим запускает сканирование один раз при старте и держит его в памяти, поэтому на очень больших монорепозиториях старт может занимать заметное время.

Как отключить. Удалите пакет: npm uninstall -g jscpd (или cpd, если ставили под этим именем) либо удалите бинарник, поставленный через Homebrew, Cargo или Docker-образ.

Частые вопросы

Нужен ли Node.js для работы?

Нет, начиная с пятой версии jscpd это самодостаточный бинарник на Rust, Node.js нужен только для установки через npm.

Чем отличается MCP-режим от обычного сканирования?

Команда jscpd --mcp сканирует проект один раз и поднимает сервер по протоколу MCP через stdio, чтобы агент мог проверять отдельные фрагменты кода и искать похожие функции по запросу.

Обсуждение

Вопросов и отзывов пока нет.

MCP-сервер, который индексирует код через tree-sitter и отдает агенту отдельные функции и классы вместо целых файлов

MCP-серверРасширенный доступ2,8 тыс.Звезды репозитория
Официальный

MCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов

MCP-серверРасширенный доступ961Звезды репозитория

CLI и MCP-сервер без зависимостей: строит по репозиторию граф вызовов, чтобы агент понял код без чтения файлов целиком

CLIРасширенный доступ2,5 тыс.Звезды репозитория

Мост MCP и LSP: агент получает типы, ссылки, диагностику и рефакторинг от языковых серверов, например Pyright.

MCP-серверРасширенный доступ81Звезды репозитория
Официальный

Локальный индекс кодовой базы с десятью MCP-инструментами: граф зависимостей, история git, здоровье кода и архитектурные решения без повторного grep на каждом ш

MCP-серверРасширенный доступ8,1 тыс.Звезды репозитория

MCP-сервер, который дает агенту читать файлы, искать по коду и запускать команды в рабочей папке

MCP-серверШирокий доступ1,2 тыс.Звезды репозитория

Коротко о README

README описывает jscpd как детектор дублирующегося кода на более чем 220 языках с движком на Rust, который ставится как самодостаточный бинарник через npm, PyPI, Cargo, Homebrew, Nix или Docker. Кроме поиска копипаста, инструмент считает мертвый код, сложность файлов, динамику дублирования по git-истории и общий показатель здоровья проекта. Отдельно описан AI-режим: отчет с меньшим числом токенов для LLM-пайплайнов и встроенный MCP-сервер по stdio. Лицензия MIT.

Бейдж для README

Сообщить о проблеме