# MCP-сервер
Repomix поддерживает [Model Context Protocol (MCP)](https://modelcontextprotocol.io), позволяя ИИ-ассистентам напрямую взаимодействовать с вашей кодовой базой. При запуске в качестве MCP-сервера Repomix предоставляет инструменты, которые позволяют ИИ-ассистентам упаковывать локальные или удалённые репозитории для анализа без необходимости ручной подготовки файлов.
> [!NOTE]
> Это экспериментальная функция, которую мы будем активно улучшать на основе отзывов пользователей и реального использования
## Запуск Repomix как MCP-сервера
Для запуска Repomix в качестве MCP-сервера используйте флаг `--mcp`:
```bash
repomix --mcp
```
Это запускает Repomix в режиме MCP-сервера, делая его доступным для ИИ-ассистентов, поддерживающих Model Context Protocol.
## Настройка MCP-серверов
Для использования Repomix в качестве MCP-сервера с ИИ-ассистентами, такими как Claude, вам нужно настроить параметры MCP:
### Для VS Code
Вы можете установить MCP-сервер Repomix в VS Code одним из следующих способов:
1. **Используя значок установки:**
[](vscode:mcp/install?%7B%22name%22%3A%22repomix%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22repomix%22%2C%22--mcp%22%5D%7D)<br>
[](vscode-insiders:mcp/install?%7B%22name%22%3A%22repomix%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22repomix%22%2C%22--mcp%22%5D%7D)
2. **Используя командную строку:**
```bash
code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'
```
Для VS Code Insiders:
```bash
code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'
```
### Для Cline (расширение VS Code)
Отредактируйте файл `cline_mcp_settings.json`:
```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](https://docs.anthropic.com/en/docs/claude-code/overview) с помощью следующей команды:
```bash
claude mcp add repomix -- npx -y repomix --mcp
```
Альтернативно вы можете использовать **официальные плагины Repomix** для более удобного опыта. Плагины предоставляют команды на естественном языке и упрощённую настройку. Подробнее см. в документации [Плагины Claude Code](/ru/guide/claude-code-plugins).
### Использование Docker вместо npx
Вместо npx вы также можете использовать Docker для запуска Repomix в качестве MCP-сервера:
```json
{
"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) Количество самых больших файлов по размеру для отображения в сводке метрик для анализа кодовой базы.
**Пример:**
```json
{
"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) Количество самых больших файлов по размеру для отображения в сводке метрик для анализа кодовой базы.
**Пример:**
```json
{
"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
- Обеспечивает безопасный доступ к упакованной кодовой базе без необходимости доступа к файловой системе
- Поддерживает частичное чтение для больших файлов
**Пример:**
```json
{
"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 для мощного сопоставления паттернов
- Поддерживает контекстные строки для лучшего понимания совпадений
- Позволяет отдельно контролировать контекстные строки до/после
- Опции поиска с учётом и без учёта регистра
**Пример:**
```json
{
"outputId": "8f7d3b1e2a9c6054",
"pattern": "function\\s+\\w+\\(",
"contextLines": 3,
"ignoreCase": false
}
```
### file_system_read_file и file_system_read_directory
MCP-сервер Repomix предоставляет два инструмента файловой системы, которые позволяют ИИ-ассистентам безопасно взаимодействовать с локальной файловой системой:
1. `file_system_read_file`
- Читает содержимое файла из локальной файловой системы по абсолютному пути
- Включает встроенную проверку безопасности для обнаружения и предотвращения доступа к файлам с конфиденциальной информацией
- Реализует проверку безопасности с помощью [Secretlint](https://github.com/secretlint/secretlint)
- Предотвращает доступ к файлам с конфиденциальной информацией (API-ключи, пароли, секреты)
- Проверяет абсолютные пути для предотвращения атак обхода директорий
- Возвращает отформатированное содержимое с понятными сообщениями об ошибках для недопустимых путей или проблем безопасности
2. `file_system_read_directory`
- Выводит содержимое директории по абсолютному пути
- Возвращает отформатированный список, показывающий файлы и поддиректории с понятными индикаторами
- Показывает файлы и директории с понятными индикаторами (`[FILE]` или `[DIR]`)
- Обеспечивает безопасный обход директорий с правильной обработкой ошибок
- Проверяет пути и гарантирует, что они абсолютные
- Полезно для изучения структуры проекта и понимания организации кодовой базы
Оба инструмента включают надёжные меры безопасности:
- Проверка абсолютных путей для предотвращения атак обхода директорий
- Проверки прав доступа для обеспечения правильных прав
- Интеграция с Secretlint для обнаружения конфиденциальной информации
- Понятные сообщения об ошибках для лучшей отладки и осведомлённости о безопасности
**Пример:**
```typescript
// Чтение файла
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-сервера предлагает несколько преимуществ:
1. **Прямая интеграция**: ИИ-ассистенты могут напрямую анализировать вашу кодовую базу без ручной подготовки файлов.
2. **Эффективный рабочий процесс**: Оптимизирует процесс анализа кода, устраняя необходимость вручную генерировать и загружать файлы.
3. **Согласованный вывод**: Гарантирует, что ИИ-ассистент получает кодовую базу в согласованном, оптимизированном формате.
4. **Продвинутые функции**: Использует все возможности Repomix, такие как сжатие кода, подсчёт токенов и проверки безопасности.
После настройки ваш ИИ-ассистент может напрямую использовать возможности Repomix для анализа кодовых баз, делая рабочие процессы анализа кода более эффективными.