Git版本控制工具

Git MCP 是一个集成多种Git命令的工具,提供git_status、git_diff、git_log等功能,方便开发者在聊天环境中直接查看和管理代码仓库状态。

  • by AI-Guiders
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 KarataevDmitry/git-mcp

使用说明

Git MCP

MCP-сервер с тулами git_status, git_diff, git_log, git_fetch, git_pull, git_branch, git_show, git_submodule, git_commit, git_push. Агент видит состояние репозитория и диффы без выхода из чата. Подключается в Cursor (и где угодно) — один exe, stdio.

Cursor: примеры правил для копипаста — docs/cursor-rules-examples.md.

Стек

  • C#, .NET 10, win-x64, self-contained (как agent-notes-mcp, dotnet-debug-mcp).
  • Вызовы git через процесс (требуется установленный git в PATH).
  • Семантика списка аргументов — пакет AIGuiders.GitMcp.Core; исходники — monorepo guiders-core (../guiders-core/src/GitMcp.Core).

Публикация

dotnet publish -c Release -o publish

Рекомендуется junction: например D:\git-mcp → каталог publish; в Cursor в mcp.json указать command: D:\git-mcp\GitMcp.exe, args: [].

Быстрый локальный publish (рекомендуется)

publish-and-deploy.ps1 делает publish self-contained win-x64, зеркалит в фиксированный путь (по умолчанию D:\git-mcp) и гасит процесс, если он лочит файлы:

.\publish-and-deploy.ps1

Релизы (без Runner)

См. scripts/publish-release-win.ps1: мультиплатформа (win-x64, linux-x64, osx-x64), загрузка в GitLab Generic Package и ссылка в релизе. Требуются GITLAB_URL, GITLAB_TOKEN.

Тулы

Имя Описание Аргументы
git_status Ветка + git status (изменённые/добавленные/удалённые файлы). workspace_path
git_diff Дифф (по умолчанию не застейдженный). workspace_path, опционально path, staged (bool)
git_log Последние коммиты (git log -n N --oneline). workspace_path, опционально n (по умолчанию 20, макс 500)
git_commit Коммит: add (указанные пути или всё) + commit -m. Только по решению пользователя. workspace_path, message, опционально paths (массив строк)
git_push Push в remote. По умолчанию origin и текущая ветка. По решению пользователя. workspace_path, опционально remote, branch
git_fetch Обновить refs с remote (fetch, опционально --all, --prune, имя remote). workspace_path, опционально remote, all, prune
git_pull Подтянуть в текущую ветку; по умолчанию --ff-only. Без remote/branch — upstream. workspace_path, опционально remote+branch вместе, ff_only
git_branch Список веток (list), создание (create), удаление (delete). workspace_path, action, опционально name, start_point, force
git_show Показать объект/коммит (rev), опционально файл или --stat. workspace_path, rev, опционально path, stat_only
git_submodule status или update --init (по умолчанию --recursive). workspace_path, опционально action, path, recursive

workspace_path — каталог с репозиторием (корень, где лежит .git).