使用说明
项目简介
Git MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于提供 Git 仓库操作能力。它将常见的 Git 命令封装成 MCP 工具,使得大型语言模型(LLM)客户端可以通过标准的 MCP 协议调用这些工具,从而实现与 Git 仓库的交互和自动化操作。例如,LLM 可以使用此服务器来获取 Git 仓库的状态、查看代码差异、提交更改、管理分支等。
主要功能点
- 提供丰富的 Git 工具集: 支持 'git status', 'git diff', 'git commit', 'git add', 'git reset', 'git log', 'git branch', 'git checkout', 'git show', 'git init', 'git push' 等常用 Git 命令,满足 LLM 对 Git 仓库的各种操作需求。
- 两种 Git 操作模式: 支持通过 Git 命令行工具 ('shell') 或 Go 语言实现的 Git 库 ('go-git') 执行 Git 操作,用户可以根据环境和需求选择合适的模式。
- 灵活的工具配置: 允许用户配置是否启用远程写入操作 ('git push'),以及设置工具的自动授权规则,方便在不同安全级别和自动化程度的应用场景中使用。
- 便捷的安装和设置: 提供预编译二进制文件下载,以及从源码构建、使用 'go install' 安装等多种安装方式。同时提供 'setup' 命令,简化与 AI 助手(如 Cline, Roo Code)的集成配置过程。
安装步骤
-
前提条件:
- 确保已安装 Go 1.18 或更高版本。
- 确保已安装 Git,并已将其添加到系统环境变量 'PATH' 中。
-
下载预编译二进制文件 (推荐):
- 访问 GitHub Releases 页面,根据您的操作系统下载对应的预编译二进制文件。
- 下载后,将二进制文件放置在您希望安装的目录,并确保该目录在系统 'PATH' 环境变量中,或者您可以在配置 MCP 客户端时指定二进制文件的完整路径。
- 如果下载的是压缩包,请解压。
-
从源码构建:
- 克隆仓库到本地:
git clone https://github.com/geropl/git-mcp-go.git cd git-mcp-go - 构建服务器:
go build -o git-mcp-go . - 构建完成后,'git-mcp-go' 可执行文件将出现在当前目录下。
- 克隆仓库到本地:
-
使用 'go install' 安装:
- 确保您的 Go 环境配置正确。
- 执行命令安装:
go install github.com/geropl/git-mcp-go@latest - 安装完成后,'git-mcp-go' 可执行文件通常会安装在 '$GOPATH/bin' 或 '$HOME/go/bin' 目录下,请确保该目录已添加到系统 'PATH' 环境变量中。
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令及其参数,才能与之建立连接。以下是配置 'git-mcp-go' 服务器的 JSON 格式配置信息,您可以根据实际需求进行调整:
{ "serverName": "git", // 服务器名称,客户端用于识别和调用,可以自定义 "command": "/path/to/git-mcp-go", // git-mcp-go 服务器可执行文件的路径,请替换为实际路径 "args": [ "serve", // 固定参数,表示运行 server 命令启动服务器 "-r", "/path/to/your/git/repository", // Git 仓库的路径,请替换为您的仓库路径,如果留空,则需要在每次工具调用时指定 'repo_path' 参数 "--mode", "shell", // Git 操作模式,可选 "shell" 或 "go-git",默认为 "shell" // "--write-access", // (可选) 启用远程写入权限 (如 git push),默认禁用,如果需要使用 git push 功能,请取消注释 // "--verbose" // (可选) 启用详细日志输出,方便调试,默认禁用,如果需要查看详细日志,请取消注释 ] }
参数说明:
- 'serverName': MCP 服务器的名称,用于在客户端配置中标识和引用。可以自定义,例如 "git" 或 "my-git-server"。
- 'command': 'git-mcp-go' 服务器可执行文件的绝对路径。请根据您的安装位置进行替换。
- 'args': 传递给 'git-mcp-go' 服务器的命令行参数列表。
- '"serve"': 子命令,指示 'git-mcp-go' 运行服务器模式。
- '"-r", "/path/to/your/git/repository"': 指定要操作的 Git 仓库的本地路径。请务必替换为您的实际仓库路径。如果在此处指定了仓库路径,则在后续工具调用时可以省略 'repo_path' 参数。如果留空,则每次调用工具时都需要通过 'repo_path' 参数指定仓库路径。
- '"--mode", "shell"': 指定 Git 操作的实现方式。
- '"shell"': 默认值,使用系统安装的 Git 命令行工具执行操作。兼容性好,但可能依赖外部 Git 环境。
- '"go-git"': 使用 Go 语言实现的 'go-git' 库执行操作。不依赖外部 Git 环境,但部分功能可能不如 'shell' 模式完善。
- '"--write-access"' (可选): 启用写入权限,允许执行 'git push' 等远程写入操作。默认情况下为了安全禁用。如果需要使用 'git push' 功能,请取消注释此行。启用此选项请谨慎评估安全风险。
- '"--verbose"' (可选): 启用详细日志输出。服务器会将更详细的运行日志输出到标准输出,方便调试和问题排查。默认禁用。如果需要查看详细日志,请取消注释此行。
请注意: MCP 客户端(如 Cline, Roo Code)通常允许您在配置界面或配置文件中添加和编辑 MCP 服务器配置。您需要将上述 JSON 配置信息添加到您的 MCP 客户端配置中,并根据实际情况修改 'command' 和 'args' 中的路径参数。
基本使用方法
-
启动服务器: MCP 客户端在配置并连接到 'git-mcp-go' 服务器后,服务器会在后台自动运行。您无需手动启动服务器。
-
通过 MCP 客户端调用 Git 工具: 在支持 MCP 协议的 LLM 客户端中,您可以使用自然语言指令或特定的调用方式来触发 Git 工具。例如,您可以指示 LLM:
- "查看当前 Git 仓库的状态" (对应 'git_status' 工具)
- "显示未暂存的更改" (对应 'git_diff_unstaged' 工具)
- "提交所有暂存的更改,提交信息为 '修复bug'" (对应 'git_commit' 工具,并提供 'message' 参数)
- "将文件 'file1.txt' 和 'file2.txt' 添加到暂存区" (对应 'git_add' 工具,并提供 'files' 参数)
- "查看最近 5 条提交日志" (对应 'git_log' 工具,并提供 'max_count' 参数)
-
参数传递: 部分 Git 工具需要参数,例如 'git_commit' 需要 'message' 参数,'git_diff' 需要 'target' 参数。您需要在调用工具时,通过 MCP 客户端提供的参数配置方式,将必要的参数传递给服务器。具体的参数传递方式取决于您使用的 MCP 客户端的功能和界面。
-
查看结果: Git 工具执行完成后,服务器会将执行结果返回给 MCP 客户端,客户端会将结果展示给用户。通常,结果会以文本形式呈现,例如 Git 命令的输出信息、仓库状态、代码差异等。
通过配置和使用 Git MCP Server,您可以让 LLM 具备强大的 Git 仓库操作能力,从而实现更智能化的代码管理和自动化工作流程。
信息
分类
开发者工具