Перейти к содержимому

Git Server

MCP-сервер для взаимодействия с Git-репозиториями — статус, diff, коммиты, ветки и история изменений

Git Server предоставляет полный набор инструментов для работы с Git-репозиториями через MCP. Позволяет LLM читать, искать и манипулировать Git-репозиториями.

  • Просмотр статуса рабочей директории
  • Просмотр различий (staged, unstaged, между ветками)
  • Создание коммитов и управление staging area
  • Создание и переключение веток
  • Просмотр истории с фильтрацией по датам
Окно терминала
uvx mcp-server-git --repository /path/to/repo

Показывает статус рабочей директории.

ПараметрТипОписание
repo_pathstringПуть к Git-репозиторию

Показывает изменения в рабочей директории, не добавленные в staging.

ПараметрТипПо умолчаниюОписание
repo_pathstringПуть к репозиторию
context_linesnumber3Строк контекста

Показывает изменения, добавленные в staging для коммита.

ПараметрТипПо умолчаниюОписание
repo_pathstringПуть к репозиторию
context_linesnumber3Строк контекста

Показывает различия между ветками или коммитами.

ПараметрТипПо умолчаниюОписание
repo_pathstringПуть к репозиторию
targetstringЦелевая ветка или коммит
context_linesnumber3Строк контекста

Пример:

{
"repo_path": "/projects/myapp",
"target": "main",
"context_lines": 5
}

Добавляет файлы в staging area.

ПараметрТипОписание
repo_pathstringПуть к репозиторию
filesstring[]Массив путей к файлам

Убирает все файлы из staging area.

ПараметрТипОписание
repo_pathstringПуть к репозиторию

Записывает изменения в репозиторий.

ПараметрТипОписание
repo_pathstringПуть к репозиторию
messagestringСообщение коммита

Возвращает: подтверждение с хешем нового коммита.

Показывает историю коммитов с опциональной фильтрацией по датам.

ПараметрТипПо умолчаниюОписание
repo_pathstringПуть к репозиторию
max_countnumber10Максимум коммитов
start_timestampstring?Начальная дата
end_timestampstring?Конечная дата

Форматы дат:

  • ISO 8601: 2024-01-15T14:30:25
  • Относительные: 2 weeks ago, yesterday
  • Абсолютные: 2024-01-15, Jan 15 2024

Возвращает: массив коммитов с хешем, автором, датой и сообщением.

Создаёт новую ветку.

ПараметрТипОписание
repo_pathstringПуть к репозиторию
branch_namestringИмя новой ветки
base_branchstring?Базовая ветка (по умолчанию: текущая)

Переключает ветку.

ПараметрТипОписание
repo_pathstringПуть к репозиторию
branch_namestringИмя ветки

Показывает содержимое коммита.

ПараметрТипОписание
repo_pathstringПуть к репозиторию
revisionstringРевизия (хеш, ветка, тег)

Выводит список веток.

ПараметрТипОписание
repo_pathstringПуть к репозиторию
branch_typestringlocal, remote или all
containsstring?SHA коммита, который должен содержаться
not_containsstring?SHA коммита, который НЕ должен содержаться
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "/path/to/repo"]
}
}
}
{
"servers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git"]
}
}
}

С Docker:

{
"mcp": {
"servers": {
"git": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--mount", "type=bind,src=${workspaceFolder},dst=/workspace",
"mcp/git"
]
}
}
}
}
{
"context_servers": [
"mcp-server-git": {
"command": {
"path": "uvx",
"args": ["mcp-server-git"]
}
}
]
}
  1. Проверить статус: git_status
  2. Посмотреть unstaged изменения: git_diff_unstaged
  3. Добавить файлы: git_add с массивом файлов
  4. Посмотреть staged изменения: git_diff_staged
  5. Создать коммит: git_commit с сообщением
{
"name": "git_diff",
"arguments": {
"repo_path": "/projects/myapp",
"target": "feature/new-api",
"context_lines": 5
}
}
{
"name": "git_log",
"arguments": {
"repo_path": "/projects/myapp",
"max_count": 20,
"start_timestamp": "2024-01-01",
"end_timestamp": "2024-01-31"
}
}
{
"name": "git_branch",
"arguments": {
"repo_path": "/projects/myapp",
"branch_type": "all",
"contains": "abc123"
}
}
Окно терминала
npx @modelcontextprotocol/inspector uvx mcp-server-git

Просмотр логов Claude:

Окно терминала
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
Окно терминала
cd src/git
docker build -t mcp/git .