Git MCP Server (Go) 使用说明
项目简介
Git MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专注于为 LLM 客户端提供 Git 仓库的上下文信息和操作能力。它允许 LLM 通过标准化的 MCP 协议调用 Git 命令,从而实现代码仓库的查询、修改和自动化管理。例如,LLM 可以使用此服务器来查看代码状态、提交更改、创建分支等。
主要功能点
- 提供丰富的Git操作工具: 支持 'git status', 'git diff', 'git log', 'git commit', 'git add', 'git reset', 'git branch', 'git checkout', 'git show', 'git init', 'git push' 等常用的 Git 命令,方便 LLM 进行代码仓库操作。
- 两种Git操作模式: 支持 'shell' 和 'go-git' 两种模式,'shell' 模式通过调用 Git 命令行工具执行操作,'go-git' 模式则尽可能使用 Go 语言实现的 'go-git' 库,提供更灵活和可控的 Git 操作方式。
- 灵活的配置选项: 允许用户指定 Git 仓库路径、选择 Git 操作模式、启用写访问权限等。
- 易于集成: 通过标准的 MCP 协议与 LLM 客户端通信,易于与支持 MCP 协议的 LLM 应用集成,例如 Cline。
- 自动安装配置: 提供 'setup' 命令,可以自动将服务器安装到指定目录,并为 Cline 等 LLM 客户端生成配置文件。
安装步骤
-
前提条件:
- 确保已安装 Go 1.18 或更高版本。
- 确保您的系统已安装 Git 命令行工具,并已配置到环境变量 'PATH' 中。
-
下载预编译二进制文件 (推荐):
- 访问 GitHub Releases 页面,下载适用于您操作系统的预编译二进制文件。
- 将下载的二进制文件(例如 'git-mcp-go-linux-amd64')重命名为 'git-mcp-go',并添加到您的可执行文件路径中,或者在当前目录下使用 './git-mcp-go' 命令运行。
-
从源代码构建:
- 如果您没有找到合适的预编译版本,或者希望从源码构建,请执行以下步骤:
构建完成后,您将在当前目录下找到可执行文件 'git-mcp-go'。# 克隆仓库 git clone https://github.com/geropl/git-mcp-go.git cd git-mcp-go # 构建服务器 go build -o git-mcp-go .
- 如果您没有找到合适的预编译版本,或者希望从源码构建,请执行以下步骤:
服务器配置
MCP 服务器需要配置到 MCP 客户端中才能使用。以下是针对 Cline 客户端的 'claude_desktop_config.json' 配置文件示例,展示了如何配置 Git MCP Server:
{ "mcpServers": { "git": { "command": "/path/to/git-mcp-go", // Git MCP Server 的可执行文件路径,请替换为实际路径 "args": [ "serve", // 指定运行 "serve" 子命令,启动服务器 "-r", // 指定仓库路径的参数 "/path/to/git/repository", // Git 仓库的绝对路径,请替换为实际路径 "--mode", // 指定 Git 操作模式的参数 "shell" // Git 操作模式,可选 "shell" 或 "go-git",默认为 "shell" ] } } }
配置参数说明:
- '"git"': 服务器名称,客户端使用此名称来引用该服务器。
- '"command"': 必须配置。Git MCP Server 可执行文件的绝对路径。请根据您的实际安装位置进行修改。
- '"args"': 必须配置。 启动服务器的参数列表,包括:
- '"serve"': 固定参数,指定运行服务器的 "serve" 子命令。
- '"-r"': 参数名,指定 Git 仓库的路径。
- '"/path/to/git/repository"': 请替换为您的实际 Git 仓库的绝对路径。服务器将在此仓库上执行 Git 操作。
- '"--mode"': 参数名,指定 Git 操作的实现模式。
- '"shell"' 或 '"go-git"': 参数值,可选值:
- '"shell"' (默认): 使用 Git 命令行工具执行 Git 操作,依赖系统已安装 Git。
- '"go-git"': 尽可能使用 'go-git' 库执行 Git 操作,某些操作可能仍会回退到 shell 命令。
其他可选配置参数 (添加到 '"args"' 数组中):
- '"--verbose"', '"-v"': 启用详细日志输出,方便调试。
- '"--write-access"': 启用写访问权限,允许执行 'git push' 等修改远程仓库的操作。默认情况下,写访问是禁用的,以确保安全。 如果您需要 LLM 执行 'push' 操作,请添加此参数。
基本使用方法
-
启动 Git MCP Server:
- 根据您的配置,在命令行中执行 'git-mcp-go serve [flags]' 命令来启动服务器。
- 例如,在包含 'git-mcp-go' 可执行文件的目录下,运行以下命令 (请替换仓库路径):
./git-mcp-go serve -r /path/to/git/repository
-
配置 MCP 客户端:
- 将上面提供的 'claude_desktop_config.json' 配置信息添加到您的 MCP 客户端(例如 Cline)的配置文件中。
- 确保 '"command"' 和 '"args"' 中的仓库路径 '/path/to/git/repository' 已替换为您的实际 Git 仓库路径,并且 '"command"' 指向的 'git-mcp-go' 可执行文件路径是正确的。
-
在 LLM 中使用 Git 工具:
- 在支持 MCP 协议的 LLM 客户端中,您可以使用注册的 Git 工具 (例如 'git_status', 'git_diff_unstaged' 等) 来与 Git 仓库进行交互。
- 具体的工具调用方式取决于您的 LLM 客户端,通常您可以通过自然语言指令或者特定的命令来触发这些工具。
示例命令 (直接运行 'git-mcp-go' 工具)
- 启动服务器并指定仓库路径 (使用 shell 模式):
./git-mcp-go serve -r /path/to/your/git/repo - 启动服务器并启用详细日志 (使用 go-git 模式):
./git-mcp-go serve --mode go-git -v -r /path/to/your/git/repo - 使用 'setup' 命令自动配置 Cline (自动审批只读工具):
./git-mcp-go setup -r /path/to/your/git/repo --tool=cline --auto-approve=allow-read-only
请根据您的实际需求和 LLM 客户端的文档,配置和使用 Git MCP Server 提供的 Git 工具。
信息
分类
开发者工具