Integrations
Provides comprehensive Git operations including repository initialization, cloning, file staging, committing, branch management, tag operations, remote repository handling, and stash management, enabling LLMs to interact with Git repositories.
Supports interactions with GitHub repositories through Git operations like cloning from GitHub URLs, pushing to and pulling from GitHub remotes, enabling LLMs to manage code on GitHub.
Git MCP-сервер
Сервер MCP (Model Context Protocol), предоставляющий инструменты для взаимодействия с репозиториями Git. Позволяет LLM и агентам ИИ выполнять операции Git, такие как клонирование, фиксация, отправка, извлечение, ветвь, сравнение, журналирование, статус и многое другое через стандарт MCP.
Этот сервер, созданный на основе cyanheads/mcp-ts-template
, имеет модульную архитектуру:
Примечание разработчика : этот репозиторий включает файл .clinerules , который служит шпаргалкой разработчика для вашего агента кодирования LLM с кратким справочником по шаблонам кодовой базы, расположению файлов и фрагментам кода.
Оглавление
| Обзор | Особенности | Установка |
| Конфигурация | Структура проекта |
| Инструменты | Ресурсы | Разработка | Лицензия |
Обзор
Расширьте возможности своих ИИ-агентов и инструментов разработки с помощью бесшовной интеграции с 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_process
Node.js, обеспечивая полную совместимость и доступ к функциям Git. - Комплексное покрытие команд : предоставляет широкий спектр команд Git в качестве инструментов MCP (см. раздел «Инструменты» ).
- Взаимодействие с репозиторием : поддерживает проверку состояния, ветвление, подготовку, фиксацию, извлечение, вытягивание, отправку, сравнение, регистрацию, сброс, тегирование и многое другое.
- Управление рабочим каталогом : позволяет устанавливать и очищать рабочий каталог для конкретного сеанса для сохранения контекста между несколькими операциями Git.
- Функции безопасности : Включает проверки и требует явного подтверждения для потенциально разрушительных операций, таких как
git clean
иgit reset --hard
. - Подписание коммитов : поддерживает подпись GPG или SSH для проверенных коммитов, управляется через переменную среды
GIT_SIGN_COMMITS
и конфигурацию Git на стороне сервера. Включает необязательный параметр инструмента для возврата к неподписанным коммитам при сбое подписи.
Установка
Предпосылки
- Node.js (>=18.0.0)
- npm (входит в состав Node.js)
- Git установлен и доступен в системной переменной PATH.
Установить через npm
- Установите пакет глобально:Copy
Установить из источника
- Клонируйте репозиторий:Copy
- Установить зависимости:Copy
- Создайте проект:Это компилирует код TypeScript в JavaScript в каталогеCopy
dist/
и делает точку входа исполняемой.
Конфигурация
Переменные среды
Настройте сервер с помощью переменных окружения. Создайте файл .env
в корне проекта (скопируйте из .env.example
) или задайте их в своем окружении.
Переменная | Описание | По умолчанию |
---|---|---|
MCP_TRANSPORT_TYPE | Механизм транспортировки: stdio или http . | stdio |
MCP_HTTP_PORT | Порт для HTTP-сервера (если MCP_TRANSPORT_TYPE=http ). Повторяет попытки со следующих портов, если они заняты. | 3010 |
MCP_HTTP_HOST | Адрес хоста для HTTP-сервера (если MCP_TRANSPORT_TYPE=http ). | 127.0.0.1 |
MCP_ALLOWED_ORIGINS | Список разрешенных источников для CORS, разделенных запятыми (если MCP_TRANSPORT_TYPE=http ). | (никто) |
MCP_LOG_LEVEL | Уровень ведения журнала ( debug , info , notice , warning , error , crit , alert , emerg ). Унаследовано от шаблона. | info |
GIT_SIGN_COMMITS | Установите значение "true" , чтобы включить попытки подписи для коммитов, сделанных инструментом git_commit . Требуется настройка Git/key на стороне сервера (см. ниже). | false |
MCP_AUTH_SECRET_KEY | Секретный ключ для подписи/проверки токенов аутентификации (требуется, если аутентификация будет включена в будущем). | '' |
Настройки клиента MCP
Добавьте в настройки клиента MCP (например, cline_mcp_settings.json
):
Структура проекта
Кодовая база имеет модульную структуру в каталоге src/
:
Для получения подробного дерева файлов выполните команду npm run tree
или посетите docs/tree.md .
Инструменты
Сервер Git MCP предоставляет набор инструментов для взаимодействия с репозиториями Git, вызываемых через протокол контекста модели.
Название инструмента | Описание | Ключевые аргументы |
---|---|---|
git_add | Этапы определяют файлы или шаблоны. | path? , files? |
git_branch | Управляет ветвями (список, создание, удаление, переименование, показ текущих). | path? , mode , branchName? , newBranchName? , startPoint? , force? , all? , remote? |
git_checkout | Переключает ветви или восстанавливает рабочие файлы дерева. | path? , branchOrPath , newBranch? , force? |
git_cherry_pick | Применяет изменения, внесенные существующими коммитами. | path? , commitRef , mainline? , strategy? , noCommit? , signoff? |
git_clean | Удаляет неотслеживаемые файлы. Требуется force: true . | path? , force , dryRun? , directories? , ignored? |
git_clear_working_dir | Очищает рабочий каталог сеанса. | (никто) |
git_clone | Клонирует репозиторий по указанному абсолютному пути. | repositoryUrl , targetPath , branch? depth? quiet? |
git_commit | Фиксирует поэтапные изменения. Поддерживает переопределение автора, контроль подписи. | path? message , author? allowEmpty? amend? forceUnsignedOnFailure? |
git_diff | Показывает изменения между коммитами, рабочим деревом и т. д. | path? , commit1? , commit2? , staged? , file? |
git_fetch | Загружает объекты и ссылки из других репозиториев. | path? , remote? , prune? , tags? , all? |
git_init | Инициализирует новый репозиторий Git по указанному абсолютному пути. | path , initialBranch? bare? quiet? |
git_log | Показывает журналы коммитов. | path? , maxCount? , author? , since? , until? , branchOrFile? |
git_merge | Объединяет указанную ветвь с текущей ветвью. | path? , branch , commitMessage? , noFf? , squash? , abort? |
git_pull | Извлекает данные из другого репозитория или локальной ветки и интегрируется с ними. | path? , remote? , branch? , rebase? , ffOnly? |
git_push | Обновляет удаленные ссылки, используя локальные ссылки. | path? , remote? , branch? , remoteBranch? , force? , forceWithLease? , setUpstream? , tags? , delete? |
git_rebase | Повторно применяет коммиты поверх другого базового наконечника. | path? , mode? , upstream? , branch? , interactive? , strategy? , strategyOption? , onto? |
git_remote | Управляет удаленными репозиториями (список, добавление, удаление, отображение). | path? mode , name? url? |
git_reset | Сбрасывает текущий HEAD в указанное состояние. Поддерживает мягкий, смешанный, жесткий режимы. ИСПОЛЬЗУЙТЕ 'hard' С ОСТОРОЖНОСТЬЮ . | path? mode? commit? |
git_set_working_dir | Устанавливает рабочий каталог по умолчанию для текущего сеанса. Требуется абсолютный путь. | path , validateGitRepo? |
git_show | Показывает информацию об объектах Git (коммитах, тегах и т. д.). | path? ref , filePath? |
git_stash | Управляет сохраненными изменениями (список, применение, извлечение, удаление, сохранение). | path? mode , stashRef? message? |
git_status | Получает статус репозитория (ветвь, подготовленный, измененный, неотслеживаемые файлы). | path? |
git_tag | Управляет тегами (список, создание аннотированных/облегченных, удаление). | path? , mode , tagName? , message? , commitRef? , annotate? |
Примечание: Параметр path
для большинства инструментов по умолчанию соответствует рабочему каталогу сеанса, если он задан через git_set_working_dir
.
Ресурсы
Ресурсы MCP не реализованы в этой версии (v2.0.8).
Эта версия фокусируется на переработанной реализации инструментов Git на основе новейшего mcp-ts-template
и MCP SDK v1.11.0. Возможности ресурсов, доступные ранее, были временно удалены во время этого крупного обновления.
Если вам требуется доступ к ресурсам MCP (например, для чтения содержимого файла непосредственно через сервер), используйте стабильную версию v1.2.4 .
В будущем в последующих версиях могут быть вновь введены возможности ресурсов.
Примечание: Эта версия (v2.0.0) фокусируется на рефакторинге и обновлении основных инструментов Git на основе новейшего MCP SDK. Возможности MCP Resource не реализованы в этой версии. Для доступа к ресурсам используйте v1.2.4 .
Разработка
Сборка и тестирование
Лицензия
Данный проект лицензирован в соответствии с лицензией Apache License 2.0 — подробности см. в файле LICENSE .
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Сервер Model Context Protocol, который позволяет большим языковым моделям взаимодействовать с репозиториями Git через надежный API, поддерживая такие операции, как инициализация репозитория, клонирование, размещение файлов, фиксация и управление ветками.
Related Resources
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.Last updated -1245,886JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server for creating commit messages from git staged files.Last updated -21TypeScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.Last updated -1JavaScript
- -securityFlicense-qualityProvides integration with Github through the Model Context Protocol (MCP), allowing Large Language Models to interact with Github's repositories, issues, pull requests and search functionality.Last updated -1TypeScript