Git-сервер вещей
Этот репозиторий содержит приложение Node.js, которое действует как сервер MCP (Model Context Protocol) для предоставления функций, связанных с Git. В настоящее время он предлагает инструмент для генерации diff для коммита слияния Git против его первого родителя.
Функции
Сервер MCP: работает как стандартный сервер MCP, используя stdio для связи.
Инструмент
Принимает хэш коммита слияния Git.
Выполняет скрипт PowerShell
GenerateMergeDiff.ps1.Возвращает текстовое содержимое различий, сгенерированное командой
git show -m --first-parent <commitHash>.
Предпосылки
Node.js (версия, поддерживающая модули ES, проверьте
enginesв package.json , если они указаны, в противном случае проверьте цельtsconfig.json- ES2022)npm (обычно идет с Node.js)
Git установлен и доступен в системной переменной PATH.
PowerShell (Windows) или
pwsh(Linux/macOS), установленные и доступные в системной переменной PATH.
Установка
Клонируйте репозиторий:
git clone <your-repo-url> cd GitStuffServerУстановите зависимости:
npm install
Использование
Создайте код TypeScript:
npm run buildЭто компилирует код TypeScript из
src/в JavaScript вbuild/.Запустите сервер:
Чтобы запустить скомпилированный код:
npm startДля сборки и запуска в режиме разработки:
npm run dev
Сервер запустится и будет прослушивать запросы MCP на стандартном вводе/выводе.
Использование инструмента get_git_merge_diff
При подключении через клиент MCP вы можете вызвать инструмент get_git_merge_diff со следующими входными данными:
commitHash(строка): хэш коммита Git (SHA) коммита слияния, который вы хотите сравнить.
Инструмент вернет содержимое различий в виде текста.
Как это работает
Сервер MCP (
src/index.ts) получает запрос на инструментget_git_merge_diff.Он проверяет входные данные
commitHash.Он выполняет скрипт PowerShell
GenerateMergeDiff.ps1, передаваяcommitHash.Скрипт PowerShell запускает
git show -m --first-parent <commitHash>и сохраняет вывод (включая любые ошибки) во временный файл с именемmerge_changes.diffв текущем рабочем каталоге сервера.Сервер Node.js считывает содержимое
merge_changes.diff.Сервер удаляет временный файл
merge_changes.diff.Сервер возвращает содержимое различий (или сообщение об ошибке) клиенту MCP.
Конфигурация
Ключевые точки конфигурации определены как константы в src/index.ts :
SERVER_NAME: Имя, зарегистрированное сервером MCP.SCRIPT_NAME: имя файла скрипта PowerShell для выполнения.OUTPUT_DIFF_FILE: Имя временного файла различий, созданного скриптом.
Лицензия
Этот проект лицензирован по лицензии MIT — подробности смотрите в файле package.json .
Related MCP Servers
- AsecurityFlicenseAqualityMCP Server for the GitHub API, providing features for file operations, repository management, and advanced search, with automatic branch creation and comprehensive error handling.Last updated -1804
- AsecurityAlicenseAqualityA specialized MCP server for in-depth analysis of git repositories, offering tools for branch overview, time period analysis, file changes, and merge recommendations.Last updated -42Apache 2.0
- AsecurityFlicenseAqualityThe Git MCP Server allows AI assistants to perform enhanced Git operations via the Model Context Protocol, supporting core Git functions, branch and tag management, GitHub integration, and more.Last updated -21596