Перейти к содержимому
Выберите тему

Git

Git - эталонный MCP-сервер mcp-server-git: 12 инструментов для чтения и изменения локального репозитория, команда запуска, только stdio, четыре исправленные уязвимости

сверено с первичными источниками 4 октября 2026

По README сервера, это сервер для работы с репозиториями Git: он даёт инструменты, чтобы читать репозиторий, искать в нём и изменять его.

Там же стоит оговорка (в пересказе): сервер находится на ранней стадии разработки, его возможности и набор инструментов могут меняться.

Проект относит Git к эталонным реализациям. По корневому README, это учебные примеры, а не готовые решения для промышленной эксплуатации.

Настройка клиента: Git через uvx
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
}
}

Пример взят из документации выпуска 2026.8.18 и здесь не запускался.

Ключ --repository (короткая форма -r) задаёт репозиторий, с которым серверу разрешено работать. Второй способ из README - установка через pip и запуск python -m mcp_server_git.

Сервер работает с локальной копией, поэтому ему неважно, где лежит удалённый репозиторий: на GitHub или в SourceCraft, его аналоге от Яндекса.

Имена сверены с файлом server.py и с опубликованным пакетом 2026.8.18: набор совпадает, README перечисляет те же двенадцать. Описания - по README.

Инструмент Что делает Изменяет репозиторий
git_status состояние рабочего каталога нет
git_diff_unstaged изменения, ещё не добавленные в индекс нет
git_diff_staged изменения, добавленные в индекс нет
git_diff различия с указанной веткой или фиксацией нет
git_log журнал фиксаций; можно ограничить числом и датами нет
git_show содержимое фиксации нет
git_branch список веток: локальных, удалённых или всех нет
git_add добавляет файлы в индекс да
git_reset убирает из индекса все добавленные изменения да
git_commit записывает фиксацию с сообщением да
git_create_branch создаёт ветку да
git_checkout переключает ветку да

Каждый инструмент принимает repo_path - путь к репозиторию.

Столбец «Изменяет репозиторий» - разметка этого сайта по описаниям из README. Аннотаций инструментов README не описывает.

Ресурсов и промптов сервер не объявляет.

Только stdio: в исходном коде используется одна точка входа stdio_server().

Если клиент объявил возможность Roots, сервер запрашивает у него список корневых каталогов - это видно в том же файле server.py.

Все четыре записи взяты из базы советов по безопасности GitHub, уровень у всех «средний».

Номер Суть Затронуты версии Исправлено в
CVE-2025-68143 инструмент git_init без ограничений позволял создать репозиторий в любом месте файловой системы ниже 2025.9.25 2025.9.25
CVE-2025-68144 подстановка аргументов в git_diff и git_checkout позволяла перезаписать локальные файлы ниже 2025.12.18 2025.12.18
CVE-2025-68145 при запуске с ключом --repository путь не проверялся ниже 2025.12.18 2025.12.18
CVE-2026-27735 обход пути в git_add позволял добавить в индекс файлы за пределами репозитория ниже 2026.1.14 2026.1.14

Первые три записи опубликованы 17 декабря 2025 года, четвёртая - 26 февраля 2026 года. Опубликованная версия 2026.8.18 новее всех исправлений.

В README сервера об этих уязвимостях ничего не сказано. Если сервер у вас закреплён на старом номере версии, сверьте его с таблицей.

В коде есть функция validate_repo_path: она проверяет, что переданный путь лежит внутри разрешённого репозитория. В нескольких обработчиках отклоняются аргументы, которые начинаются с дефиса.

Пять инструментов изменяют репозиторий. Модель может записать фиксацию или переключить ветку без вашего участия, если клиент не спрашивает подтверждения на каждый вызов. Как настроено подтверждение - свойство клиента, а не сервера.

Сервер не заявляет, по какой редакции протокола он работает: ни README, ни исходный код её не называют.

README опубликованного пакета сообщает о зависимости: нужен MCP Python SDK 1.x (mcp>=1.29.0,<2), а перенос на SDK 2.0 ещё идёт. Это факт о пакете. Вывода о редакции протокола из него этот сайт не делает.