Git MCP-сервер
Сервер MCP (Model Context Protocol), предоставляющий инструменты для взаимодействия с репозиториями Git. Позволяет LLM и агентам ИИ выполнять операции Git, такие как клонирование, фиксация, отправка, извлечение, ветвь, сравнение, журналирование, статус и многое другое через стандарт MCP.
Этот сервер, созданный на основе cyanheads/mcp-ts-template , имеет модульную архитектуру:
Примечание разработчика : этот репозиторий включает файл .clinerules , который служит шпаргалкой разработчика для вашего агента кодирования LLM с кратким справочником по шаблонам кодовой базы, расположению файлов и фрагментам кода.
Оглавление
| Обзор | Особенности | Установка |
| Конфигурация | Структура проекта |
| Инструменты | Ресурсы | Разработка | Лицензия |
Related MCP server: GitHub MCP Server
Обзор
Расширьте возможности своих ИИ-агентов и инструментов разработки с помощью бесшовной интеграции с Git!
Сервер Git MCP выступает в качестве моста, позволяя приложениям (клиентам MCP), которые понимают протокол контекста модели (MCP), например, продвинутым помощникам на основе искусственного интеллекта (LLM), расширениям IDE или пользовательским скриптам, напрямую и безопасно взаимодействовать с локальными репозиториями Git.
Вместо сложных сценариев или ручного CLI ваши инструменты могут использовать этот сервер для:
Автоматизируйте рабочие процессы Git : клонируйте репозитории, создавайте ветки, подготавливайте изменения, фиксируйте работу, отправляйте обновления и управляйте тегами программным способом.
Получайте информацию о репозитории : проверяйте статус, просматривайте журналы, сравнивайте изменения и проверяйте объекты Git, не покидая хост-приложения.
Интегрируйте Git в разработку на основе ИИ : предоставьте возможность магистрам права управлять версиями в рамках своих задач по кодированию или рефакторингу.
Этот сервер, построенный на надежном mcp-ts-template , обеспечивает стандартизированный, безопасный и эффективный способ раскрытия функциональности Git через стандарт MCP. Он достигает этого путем безопасного выполнения стандартного инструмента командной строки git , установленного в системе, с использованием модуля child_process Node.js, что обеспечивает совместимость и использование всей мощи Git.
Функции
Основные утилиты (из шаблона)
Использует надежные утилиты, предоставляемые mcp-ts-template :
Ведение журнала : структурированное, настраиваемое ведение журнала (ротация файлов, консоль, уведомления MCP) с редактированием конфиденциальных данных.
Обработка ошибок : централизованная обработка ошибок, стандартизированные типы ошибок (
McpError) и автоматическое ведение журнала.Конфигурация : загрузка переменных среды (
dotenv).Проверка/очистка входных данных : использует
zodдля проверки схемы и пользовательской логики очистки (важно для путей).Контекст запроса : отслеживание и корреляция операций с помощью уникальных идентификаторов запросов.
Безопасность типов : строгая типизация, обеспечиваемая схемами TypeScript и Zod.
Вариант HTTP-транспорта : встроенный сервер Express с SSE, управлением сеансами и поддержкой CORS.
Операции Git
Прямое выполнение Git CLI : взаимодействует с Git, безопасно выполняя стандартный инструмент командной строки
gitчерезchild_processNode.js, обеспечивая полную совместимость и доступ к функциям Git.Комплексное покрытие команд : предоставляет широкий спектр команд Git в качестве инструментов MCP (см. раздел «Инструменты» ).
Взаимодействие с репозиторием : поддерживает проверку состояния, ветвление, подготовку, фиксацию, извлечение, вытягивание, отправку, сравнение, регистрацию, сброс, тегирование и многое другое.
Управление рабочим каталогом : позволяет устанавливать и очищать рабочий каталог для конкретного сеанса для сохранения контекста между несколькими операциями Git.
Функции безопасности : Включает проверки и требует явного подтверждения для потенциально разрушительных операций, таких как
git cleanиgit reset --hard.Подписание коммитов : поддерживает подпись GPG или SSH для проверенных коммитов, управляется через переменную среды
GIT_SIGN_COMMITSи конфигурацию Git на стороне сервера. Включает необязательный параметр инструмента для возврата к неподписанным коммитам при сбое подписи.
Установка
Предпосылки
Установить через npm
Установите пакет глобально:
npm install @cyanheads/git-mcp-server
Установить из источника
Клонируйте репозиторий:
git clone https://github.com/cyanheads/git-mcp-server.git cd git-mcp-serverУстановить зависимости:
npm installСоздайте проект:
npm run build (or `npm run rebuild`)Это компилирует код TypeScript в JavaScript в каталоге
dist/и делает точку входа исполняемой.
Конфигурация
Переменные среды
Настройте сервер с помощью переменных окружения. Создайте файл .env в корне проекта (скопируйте из .env.example ) или задайте их в своем окружении.
Переменная | Описание | По умолчанию |
| Механизм транспортировки: |
|
| Порт для HTTP-сервера (если |
|
| Адрес хоста для HTTP-сервера (если |
|
| Список разрешенных источников для CORS, разделенных запятыми (если | (никто) |
| Уровень ведения журнала ( |
|
| Установите значение |
|
| Секретный ключ для подписи/проверки токенов аутентификации (требуется, если аутентификация будет включена в будущем). |
|
Настройки клиента MCP
Добавьте в настройки клиента MCP (например, cline_mcp_settings.json ):
{
"mcpServers": {
"git-mcp-server": {
// Use a descriptive name
"command": "node", // Use node to run the script
"args": ["/path/to/your/git-mcp-server/dist/index.js"], // Absolute path to the built entry point
"env": {
// "MCP_TRANSPORT_TYPE": "http", // Optional: if using http
// "MCP_HTTP_PORT": "3010", // Optional: if using http and non-default port
// "GIT_SIGN_COMMITS": "true" // Optional: Enable commit signing attempts if server is configured
},
"disabled": false,
"autoApprove": [] // Configure auto-approval rules if desired
}
}
}Структура проекта
Кодовая база имеет модульную структуру в каталоге src/ :
src/
├── index.ts # Entry point: Initializes and starts the server
├── config/ # Configuration loading (env vars, package info)
│ └── index.ts
├── mcp-server/ # Core MCP server logic and capability registration
│ ├── server.ts # Server setup, capability registration
│ ├── transports/ # Transport handling (stdio, http)
│ ├── resources/ # MCP Resource implementations (currently none)
│ └── tools/ # MCP Tool implementations (subdirs per tool)
├── types-global/ # Shared TypeScript type definitions
└── utils/ # Common utility functions (logger, error handler, etc.)Для получения подробного дерева файлов выполните команду npm run tree или посетите docs/tree.md .
Инструменты
Сервер Git MCP предоставляет набор инструментов для взаимодействия с репозиториями Git, вызываемых через протокол контекста модели.
Название инструмента | Описание | Ключевые аргументы |
| Этапы определяют файлы или шаблоны. |
|
| Управляет ветвями (список, создание, удаление, переименование, показ текущих). |
|
| Переключает ветви или восстанавливает рабочие файлы дерева. |
|
| Применяет изменения, внесенные существующими коммитами. |
|
| Удаляет неотслеживаемые файлы. Требуется . |
|
| Очищает рабочий каталог сеанса. | (никто) |
| Клонирует репозиторий по указанному абсолютному пути. |
|
| Фиксирует поэтапные изменения. Поддерживает переопределение автора, контроль подписи. |
|
| Показывает изменения между коммитами, рабочим деревом и т. д. |
|
| Загружает объекты и ссылки из других репозиториев. |
|
| Инициализирует новый репозиторий Git по указанному абсолютному пути. По умолчанию — «main» для начальной ветки. |
|
| Показывает журналы коммитов. |
|
| Объединяет указанную ветвь с текущей ветвью. |
|
| Извлекает данные из другого репозитория или локальной ветки и интегрируется с ними. |
|
| Обновляет удаленные ссылки, используя локальные ссылки. |
|
| Повторно применяет коммиты поверх другого базового наконечника. |
|
| Управляет удаленными репозиториями (список, добавление, удаление, отображение). |
|
| Сбрасывает текущий HEAD в указанное состояние. Поддерживает мягкий, смешанный, жесткий режимы. ИСПОЛЬЗУЙТЕ 'hard' С ОСТОРОЖНОСТЬЮ . |
|
| Устанавливает рабочий каталог по умолчанию. Может опционально инициализировать репозиторий, если он отсутствует. Требуется абсолютный путь. |
|
| Показывает информацию об объектах Git (коммитах, тегах и т. д.). |
|
| Управляет сохраненными изменениями (список, применение, извлечение, удаление, сохранение). |
|
| Получает статус репозитория (ветвь, подготовленный, измененный, неотслеживаемые файлы). |
|
| Управляет тегами (список, создание аннотированных/облегченных, удаление). |
|
| Управляет рабочими деревьями Git (перечисление, добавление, удаление, перемещение, обрезка). |
|
Примечание: Параметр
Ресурсы
Ресурсы MCP не реализованы в этой версии (v2.0.12).
Эта версия фокусируется на переработанной реализации инструментов Git на основе новейшего mcp-ts-template и MCP SDK v1.12.0. Возможности ресурсов, доступные ранее, были временно удалены во время этого крупного обновления.
Если вам требуется доступ к ресурсам MCP (например, для чтения содержимого файла непосредственно через сервер), используйте стабильную версию v1.2.4 .
В будущем в последующих версиях могут быть вновь введены возможности ресурсов.
Примечание: Эта версия (v2.0.0) фокусируется на рефакторинге и обновлении основных инструментов Git на основе новейшего MCP SDK. Возможности MCP Resource не реализованы в этой версии. Для доступа к ресурсам используйте v1.2.4 .
Разработка
Сборка и тестирование
# Build the project (compile TS to JS in dist/ and make executable)
npm run build
# Test the server locally using the MCP inspector tool (stdio transport)
npm run inspector
# Test the server locally using the MCP inspector tool (http transport)
npm run inspector:http
# Clean build artifacts (runs scripts/clean.ts)
npm run clean
# Generate a file tree representation for documentation (runs scripts/tree.ts)
npm run tree
# Clean build artifacts and then rebuild the project
npm run rebuild
# Start the server using stdio (default)
npm start
# Or explicitly:
npm run start:stdio
# Start the server using HTTP transport
npm run start:httpЛицензия
Данный проект лицензирован в соответствии с лицензией Apache License 2.0 — подробности см. в файле LICENSE .