Token导航 LogoToken导航TokenDH.com
Git MCP Go logo
开发工具未说明官方级别未说明来源级核验

Git MCP Go

MCP Server

一个基于Go语言的Git仓库交互与自动化服务,提供通过大型语言模型读取、搜索和操作Git仓库的工具。

工具数

0

提示词数

0

GitHub Stars

36

资源数

0
版本控制GoCline代码管理Cline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

geropl

提供方

geropl

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Git MCP服务器(Go)

用于Git存储库交互和自动化的模型上下文协议(MCP)服务器,用Go编写。此服务器提供通过大型语言模型读取、搜索和操作Git存储库的工具。

特性

此MCP服务器提供以下Git操作作为工具:

  • git_status:显示工作树状态
  • git_diff_已安装:显示工作目录中尚未暂存的更改
  • git_diff_stated:显示已提交的更改
  • 使用 git_diff:显示分支或提交之间的差异
  • git_提交:记录对存储库的更改
  • git_add:将文件内容添加到暂存区
  • git_reset:取消所有分阶段的更改
  • git_log:显示提交日志
  • git_create_branch:从可选的基分支创建新分支
  • git_checkout:切换分支
  • git_show:显示提交的内容
  • git_init:初始化新的Git存储库
  • git_push:将本地提交推送到远程存储库(需要 --write-access 旗帜)
  • git_list_存储库:列出所有可用的Git存储库

安装

先决条件

  • 上涨1.18或更高
  • Git已安装在您的系统上

下载预构建的二进制文件

您可以从以下网址下载适用于您平台的预构建二进制文件 页面。

从源头构建

# Clone the repository
git clone https://github.com/geropl/git-mcp-go.git
cd git-mcp-go

# Build the server
go build -o git-mcp-go .

安装时使用 go install

go install github.com/geropl/git-mcp-go@latest

用法

命令行结构

Git MCP服务器使用带有子命令的命令行结构:

git-mcp-go
├── serve [flags] [repository-paths...]
│   ├── --repository, -r 
                  # Repository paths (multiple ways to specify)
│   ├── --mode 
│   ├── --write-access
│   └── --verbose, -v
└── setup [flags] [repository-paths...]
    ├── --repository, -r 
                  # Repository paths (multiple ways to specify)
    ├── --mode 
    ├── --write-access
    ├── --auto-approve 
    └── --tool 

多存储库支持

Git MCP服务器现在可以同时监视和操作多个存储库。您可以通过多种方式指定存储库:

  1. 使用 -r/--repository 标志:

- 路径以逗号分隔: -r=/path/to/repo1,/path/to/repo2 - 具有多个标志实例: -r=/path/to/repo1 -r=/path/to/repo2

  1. 作为立场论据: serve /path/to/repo1 /path/to/repo2
  2. 两种方法的结合

当使用多个存储库时,对于未指定特定存储库的操作,服务器将默认使用第一个存储库。

serve 命令

serve 命令启动Git MCP服务器:

# Run with verbose logging
./git-mcp-go serve -v /path/to/repo1 /path/to/repo2 /path/to/repo3

# Run with go-git implementation
./git-mcp-go serve --mode go-git -r=/path/to/repo1,/path/to/repo2

# Enable write access for remote operations
./git-mcp-go serve -r=/path/to/repo1,/path/to/repo2 --write-access

--mode flag允许您在两种不同的实现之间进行选择:

  • 外壳:通过shell执行使用Git CLI命令(默认)
  • go git:尽可能使用go git库进行git操作

--write-access 标志允许修改远程状态的操作(目前只有推送操作)。默认情况下,为了安全起见,此选项被禁用。

setup 命令

setup 命令设置Git MCP服务器,以便与AI助手一起使用。它将自己复制到 ~/mcp-servers/git-mcp-go 并修改工具配置(cline: cline_mcp_settings.json)使用该二进制文件。

# Set up for Cline with a single repository
./git-mcp-go setup -r /path/to/git/repository

# Set up with repositories as arguments
./git-mcp-go setup /path/to/repo1 /path/to/repo2 /path/to/repo3

# Set up with write access enabled
./git-mcp-go setup -r=/path/to/repo1,/path/to/repo2 --write-access

# Set up with auto-approval for read-only tools
./git-mcp-go setup -r=/path/to/repo1,/path/to/repo2 --auto-approve=allow-read-only

# Set up with specific tools auto-approved
./git-mcp-go setup -r=/path/to/repo1,/path/to/repo2 --auto-approve=git_status,git_log

# Set up with write access and auto-approval for read-only tools
./git-mcp-go setup -r=/path/to/repo1,/path/to/repo2 --write-access --auto-approve=allow-read-only

--auto-approve 标志允许您指定哪些工具应自动批准(不需要明确的用户批准):

  • 允许只读:自动批准所有只读工具(git_status、git_diff_unstrated、git_diff_staged、git_log、git_show、git_diff)
  • 仅允许本地:自动批准所有仅限本地的工具(包括git_comit、git_add、git_reset,但不包括git_push)
  • 逗号分隔列表:自动批准特定工具(例如git_status、git_log)

库管理

git_list_repositories 工具

此工具列出了服务器正在监视的所有可用Git存储库。它显示:

  • 存储库的总数
  • 每个存储库的路径
  • 存储库名称(从目录名称派生)

输出示例:

Available repositories (3):

1. repo1 (/path/to/repo1)
2. repo2 (/path/to/repo2)
3. another-project (/path/to/another-project)

存储库选择

运行需要存储库路径的命令时:

  1. 如果具体 repo_path 如果命令中提供了,则将使用它。
  2. 如果没有 repo_path 如果提供并配置了多个存储库,则第一个存储库将用作默认存储库。
  3. 每个命令输出将指示哪个存储库用于该操作。

安装

自动安装和配置

在Cline中安装和注册Git MCP服务器的最简单方法是使用setup命令:

# Download linux binary for the latest release
RELEASE="$(curl -s https://api.github.com/repos/geropl/git-mcp-go/releases/latest)"
DOWNLOAD_URL="$(echo $RELEASE | jq -r '.assets[] | select(.name | contains("linux-amd64")) | .browser_download_url')"
curl -L -o ./git-mcp-go $DOWNLOAD_URL
chmod +x ./git-mcp-go

# Setup the mcp server with a single repository
./git-mcp-go setup -r /path/to/git/repository --tool=cline --auto-approve=allow-local-only

# Setup the mcp server with multiple repositories
./git-mcp-go setup -r=/path/to/repo1,/path/to/repo2 --tool=cline --auto-approve=allow-local-only

rm -f ./git-mcp-go

setup命令将:

  1. 将可执行文件复制到Cline MCP目录
  2. 创建一个注册脚本,配置Cline使用Git MCP服务器

手动配置

或者,您可以手动将其添加到您的 claude_desktop_config.json:

"mcpServers": {
  "git": {
    "command": "/path/to/git-mcp-go",
    "args": ["serve", "-r=/path/to/repo1,/path/to/repo2", "--mode", "shell"]
  }
}
"mcpServers": {
  "git": {
    "command": "/path/to/git-mcp-go",
    "args": ["serve", "-r", "/path/to/git/repository"]
  }
}

实现细节

此服务器使用以下方式实现:

  • mcp走:模型上下文协议的Go SDK
  • go gitGit的纯Go实现(用于 go-git 模式)

对于go git不支持的操作,服务器将恢复使用git CLI。

发展

测试

该服务器包括对所有Git操作的全面测试。测试旨在针对两种实现模式运行:

# Run all tests
go test ./pkg -v

# Run specific tests
go test ./pkg -v -run TestGitOperations/push

测试套件为每个测试用例创建临时存储库,并验证操作在两种模式下是否正常工作。

持续集成

本项目使用GitHub Actions进行持续集成和部署:

  • 对主分支的每个拉取请求运行自动测试
  • 当标签的格式为 v* 被推
  • 每个版本都包含多个平台的二进制文件:

- Linux(amd64、arm64) - macOS(amd64、arm64) - Windows(amd64)

要创建新版本,请执行以下操作:

# 1. Update the version in pkg/server.go (line ~26)
# Edit the version string in NewGitServer function

# 2. Commit the version change
git add pkg/server.go
git commit -m "Bump version to v1.3.1"

# 3. Push the commit
git push origin main

# 4. Tag the current commit
git tag v1.3.1

# 5. Push the tag to GitHub (this triggers the release)
git push origin v1.3.1

许可证

该项目根据MIT许可证获得许可。

目录标签

目录标签

版本控制GoCline代码管理Git自动化本地部署开发工具LLM集成

支持客户端

Cline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP