Git
Git - эталонный MCP-сервер mcp-server-git: 12 инструментов для чтения и изменения локального репозитория, команда запуска, только stdio, четыре исправленные уязвимости
сверено с первичными источниками 4 октября 2026
Для чего он нужен
Заголовок раздела «Для чего он нужен»По README сервера, это сервер для работы с репозиториями Git: он даёт инструменты, чтобы читать репозиторий, искать в нём и изменять его.
Там же стоит оговорка (в пересказе): сервер находится на ранней стадии разработки, его возможности и набор инструментов могут меняться.
Проект относит Git к эталонным реализациям. По корневому README, это учебные примеры, а не готовые решения для промышленной эксплуатации.
{ "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 не описывает.
Ресурсов и промптов сервер не объявляет.
Транспорт и Roots
Заголовок раздела «Транспорт и Roots»Только 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 ещё идёт. Это факт о пакете. Вывода о редакции протокола из него этот сайт не делает.
Что читать дальше
Заголовок раздела «Что читать дальше»- Эталонные серверы - все семь серверов.
- Инциденты - разбор известных уязвимостей в серверах и клиентах.
- Filesystem - соседний сервер с той же задачей ограничения пути.
- Как выбрать и проверить сервер - порядок проверки перед подключением.