Git MCP Server

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

  1. Установите пакет глобально:
    npm install @cyanheads/git-mcp-server

Установить из источника

  1. Клонируйте репозиторий:
    git clone https://github.com/cyanheads/git-mcp-server.git cd git-mcp-server
  2. Установить зависимости:
    npm install
  3. Создайте проект:
    npm run build (or `npm run rebuild`)
    Это компилирует код TypeScript в JavaScript в каталоге 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 ):

{ "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_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 .

Разработка

Сборка и тестирование

# 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 .


You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Сервер Model Context Protocol, который позволяет большим языковым моделям взаимодействовать с репозиториями Git через надежный API, поддерживая такие операции, как инициализация репозитория, клонирование, размещение файлов, фиксация и управление ветками.

  1. Оглавление
    1. Обзор
      1. Функции
        1. Основные утилиты (из шаблона)
        2. Операции Git
      2. Установка
        1. Предпосылки
        2. Установить через npm
        3. Установить из источника
      3. Конфигурация
        1. Переменные среды
        2. Настройки клиента MCP
      4. Структура проекта
        1. Инструменты
          1. Ресурсы
            1. Разработка
              1. Сборка и тестирование
            2. Лицензия

              Related MCP Servers

              • -
                security
                A
                license
                -
                quality
                A 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 -
                12
                45,886
                JavaScript
                MIT License
              • A
                security
                A
                license
                A
                quality
                A Model Context Protocol server for creating commit messages from git staged files.
                Last updated -
                2
                1
                TypeScript
                MIT License
              • A
                security
                F
                license
                A
                quality
                A 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 -
                1
                JavaScript
              • -
                security
                F
                license
                -
                quality
                Provides 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 -
                1
                TypeScript
                • Apple

              View all related MCP servers

              ID: e0hyslgby6