MCP-сервер
Repomix поддерживает Model Context Protocol (MCP), позволяя ИИ-ассистентам напрямую взаимодействовать с вашей кодовой базой. При запуске в качестве MCP-сервера Repomix предоставляет инструменты, которые позволяют ИИ-ассистентам упаковывать локальные или удалённые репозитории для анализа без необходимости ручной подготовки файлов.
NOTE
Это экспериментальная функция, которую мы будем активно улучшать на основе отзывов пользователей и реального использования
Запуск Repomix как MCP-сервера
Для запуска Repomix в качестве MCP-сервера используйте флаг --mcp:
repomix --mcpЭто запускает Repomix в режиме MCP-сервера, делая его доступным для ИИ-ассистентов, поддерживающих Model Context Protocol.
Настройка MCP-серверов
Для использования Repomix в качестве MCP-сервера с ИИ-ассистентами, такими как Claude, вам нужно настроить параметры MCP:
Для VS Code
Вы можете установить MCP-сервер Repomix в VS Code одним из следующих способов:
- Используя значок установки:
- Используя командную строку:
code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'Для VS Code Insiders:
code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'Для Cline (расширение VS Code)
Отредактируйте файл cline_mcp_settings.json:
{
"mcpServers": {
"repomix": {
"command": "npx",
"args": [
"-y",
"repomix",
"--mcp"
]
}
}
}Для Cursor
В Cursor добавьте новый MCP-сервер из Cursor Settings > MCP > + Add new global MCP server с конфигурацией, аналогичной Cline.
Для Claude Desktop
Отредактируйте файл claude_desktop_config.json с конфигурацией, аналогичной конфигурации Cline.
Для Claude Code
Настройте Repomix как MCP-сервер в Claude Code с помощью следующей команды:
claude mcp add repomix -- npx -y repomix --mcpАльтернативно вы можете использовать официальные плагины Repomix для более удобного опыта. Плагины предоставляют команды на естественном языке и упрощённую настройку. Подробнее см. в документации Плагины Claude Code.
Использование Docker вместо npx
Вместо npx вы также можете использовать Docker для запуска Repomix в качестве MCP-сервера:
{
"mcpServers": {
"repomix-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/yamadashy/repomix",
"--mcp"
]
}
}
}Доступные MCP-инструменты
При запуске в качестве MCP-сервера Repomix предоставляет следующие инструменты:
pack_codebase
Этот инструмент упаковывает локальную директорию кода в консолидированный XML-файл для анализа ИИ. Он анализирует структуру кодовой базы, извлекает релевантное содержимое кода и генерирует комплексный отчёт, включающий метрики, дерево файлов и отформатированное содержимое кода.
Параметры:
directory: (Обязательный) Абсолютный путь к директории для упаковкиcompress: (Опциональный, по умолчанию: false) Включить сжатие Tree-sitter для извлечения существенных сигнатур и структуры кода при удалении деталей реализации. Уменьшает использование токенов на ~70%, сохраняя семантическое значение. Обычно не требуется, так как grep_repomix_output позволяет инкрементальное получение содержимого. Используйте только когда вам конкретно нужно всё содержимое кодовой базы для больших репозиториев.includePatterns: (Опциональный) Указать файлы для включения с помощью паттернов fast-glob. Несколько паттернов можно разделить запятыми (например, "/*.{js,ts}", "src/,docs/**"). Будут обработаны только соответствующие файлы.ignorePatterns: (Опциональный) Указать дополнительные файлы для исключения с помощью паттернов fast-glob. Несколько паттернов можно разделить запятыми (например, "test/,*.spec.js", "node_modules/,dist/**"). Эти паттерны дополняют .gitignore и встроенные исключения.topFilesLength: (Опциональный, по умолчанию: 10) Количество самых больших файлов по размеру для отображения в сводке метрик для анализа кодовой базы.
Пример:
{
"directory": "/path/to/your/project",
"compress": false,
"includePatterns": "src/**/*.ts,**/*.md",
"ignorePatterns": "**/*.log,tmp/",
"topFilesLength": 10
}pack_remote_repository
Этот инструмент получает, клонирует и упаковывает GitHub-репозиторий в консолидированный XML-файл для анализа ИИ. Он автоматически клонирует удалённый репозиторий, анализирует его структуру и генерирует комплексный отчёт.
Параметры:
remote: (Обязательный) URL GitHub-репозитория или формат user/repo (например,yamadashy/repomix,https://github.com/user/repoилиhttps://github.com/user/repo/tree/branch)compress: (Опциональный, по умолчанию: false) Включить сжатие Tree-sitter для извлечения существенных сигнатур и структуры кода при удалении деталей реализации. Уменьшает использование токенов на ~70%, сохраняя семантическое значение. Обычно не требуется, так как grep_repomix_output позволяет инкрементальное получение содержимого. Используйте только когда вам конкретно нужно всё содержимое кодовой базы для больших репозиториев.includePatterns: (Опциональный) Указать файлы для включения с помощью паттернов fast-glob. Несколько паттернов можно разделить запятыми (например, "/*.{js,ts}", "src/,docs/**"). Будут обработаны только соответствующие файлы.ignorePatterns: (Опциональный) Указать дополнительные файлы для исключения с помощью паттернов fast-glob. Несколько паттернов можно разделить запятыми (например, "test/,*.spec.js", "node_modules/,dist/**"). Эти паттерны дополняют .gitignore и встроенные исключения.topFilesLength: (Опциональный, по умолчанию: 10) Количество самых больших файлов по размеру для отображения в сводке метрик для анализа кодовой базы.
Пример:
{
"remote": "yamadashy/repomix",
"compress": false,
"includePatterns": "src/**/*.ts,**/*.md",
"ignorePatterns": "**/*.log,tmp/",
"topFilesLength": 10
}read_repomix_output
Этот инструмент читает содержимое выходного файла, сгенерированного Repomix. Поддерживает частичное чтение с указанием диапазона строк для больших файлов. Этот инструмент предназначен для сред, где прямой доступ к файловой системе ограничен.
Параметры:
outputId: (Обязательный) ID выходного файла Repomix для чтенияstartLine: (Опциональный) Начальный номер строки (с 1, включительно). Если не указан, читает с начала.endLine: (Опциональный) Конечный номер строки (с 1, включительно). Если не указан, читает до конца.
Возможности:
- Специально разработан для веб-сред или изолированных приложений
- Извлекает содержимое ранее сгенерированных выходных файлов по их ID
- Обеспечивает безопасный доступ к упакованной кодовой базе без необходимости доступа к файловой системе
- Поддерживает частичное чтение для больших файлов
Пример:
{
"outputId": "8f7d3b1e2a9c6054",
"startLine": 100,
"endLine": 200
}grep_repomix_output
Этот инструмент ищет паттерны в выходном файле Repomix с использованием функциональности grep с синтаксисом JavaScript RegExp. Возвращает совпадающие строки с опциональными контекстными строками вокруг совпадений.
Параметры:
outputId: (Обязательный) ID выходного файла Repomix для поискаpattern: (Обязательный) Паттерн поиска (синтаксис регулярных выражений JavaScript RegExp)contextLines: (Опциональный, по умолчанию: 0) Количество контекстных строк для показа до и после каждого совпадения. Переопределяется beforeLines/afterLines, если указаны.beforeLines: (Опциональный) Количество контекстных строк для показа перед каждым совпадением (как grep -B). Имеет приоритет над contextLines.afterLines: (Опциональный) Количество контекстных строк для показа после каждого совпадения (как grep -A). Имеет приоритет над contextLines.ignoreCase: (Опциональный, по умолчанию: false) Выполнять поиск без учёта регистра
Возможности:
- Использует синтаксис JavaScript RegExp для мощного сопоставления паттернов
- Поддерживает контекстные строки для лучшего понимания совпадений
- Позволяет отдельно контролировать контекстные строки до/после
- Опции поиска с учётом и без учёта регистра
Пример:
{
"outputId": "8f7d3b1e2a9c6054",
"pattern": "function\\s+\\w+\\(",
"contextLines": 3,
"ignoreCase": false
}file_system_read_file и file_system_read_directory
MCP-сервер Repomix предоставляет два инструмента файловой системы, которые позволяют ИИ-ассистентам безопасно взаимодействовать с локальной файловой системой:
file_system_read_file
- Читает содержимое файла из локальной файловой системы по абсолютному пути
- Включает встроенную проверку безопасности для обнаружения и предотвращения доступа к файлам с конфиденциальной информацией
- Реализует проверку безопасности с помощью Secretlint
- Предотвращает доступ к файлам с конфиденциальной информацией (API-ключи, пароли, секреты)
- Проверяет абсолютные пути для предотвращения атак обхода директорий
- Возвращает отформатированное содержимое с понятными сообщениями об ошибках для недопустимых путей или проблем безопасности
file_system_read_directory
- Выводит содержимое директории по абсолютному пути
- Возвращает отформатированный список, показывающий файлы и поддиректории с понятными индикаторами
- Показывает файлы и директории с понятными индикаторами (
[FILE]или[DIR]) - Обеспечивает безопасный обход директорий с правильной обработкой ошибок
- Проверяет пути и гарантирует, что они абсолютные
- Полезно для изучения структуры проекта и понимания организации кодовой базы
Оба инструмента включают надёжные меры безопасности:
- Проверка абсолютных путей для предотвращения атак обхода директорий
- Проверки прав доступа для обеспечения правильных прав
- Интеграция с Secretlint для обнаружения конфиденциальной информации
- Понятные сообщения об ошибках для лучшей отладки и осведомлённости о безопасности
Пример:
// Чтение файла
const fileContent = await tools.file_system_read_file({
path: '/absolute/path/to/file.txt'
});
// Вывод содержимого директории
const dirContent = await tools.file_system_read_directory({
path: '/absolute/path/to/directory'
});Эти инструменты особенно полезны, когда ИИ-ассистентам нужно:
- Анализировать конкретные файлы в кодовой базе
- Навигировать по структурам директорий
- Проверять существование и доступность файлов
- Обеспечивать безопасные операции с файловой системой
Преимущества использования Repomix как MCP-сервера
Использование Repomix в качестве MCP-сервера предлагает несколько преимуществ:
- Прямая интеграция: ИИ-ассистенты могут напрямую анализировать вашу кодовую базу без ручной подготовки файлов.
- Эффективный рабочий процесс: Оптимизирует процесс анализа кода, устраняя необходимость вручную генерировать и загружать файлы.
- Согласованный вывод: Гарантирует, что ИИ-ассистент получает кодовую базу в согласованном, оптимизированном формате.
- Продвинутые функции: Использует все возможности Repomix, такие как сжатие кода, подсчёт токенов и проверки безопасности.
После настройки ваш ИИ-ассистент может напрямую использовать возможности Repomix для анализа кодовых баз, делая рабочие процессы анализа кода более эффективными.