Skip to content

MCP-сервер

Repomix поддерживает Model Context Protocol (MCP), позволяя ИИ-ассистентам напрямую взаимодействовать с вашей кодовой базой. При запуске в качестве 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. Используя значок установки:

Install in VS Code
Install in VS Code Insiders

  1. Используя командную строку:
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 с помощью следующей команды:

bash
claude mcp add repomix -- npx -y repomix --mcp

Альтернативно вы можете использовать официальные плагины Repomix для более удобного опыта. Плагины предоставляют команды на естественном языке и упрощённую настройку. Подробнее см. в документации Плагины Claude Code.

Использование 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
  • Предотвращает доступ к файлам с конфиденциальной информацией (API-ключи, пароли, секреты)
  • Проверяет абсолютные пути для предотвращения атак обхода директорий
  • Возвращает отформатированное содержимое с понятными сообщениями об ошибках для недопустимых путей или проблем безопасности
  1. 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 для анализа кодовых баз, делая рабочие процессы анализа кода более эффективными.

Released under the MIT License.