使用说明

项目简介

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)的集成配置过程。

安装步骤

  1. 前提条件:

    • 确保已安装 Go 1.18 或更高版本。
    • 确保已安装 Git,并已将其添加到系统环境变量 'PATH' 中。
  2. 下载预编译二进制文件 (推荐):

    • 访问 GitHub Releases 页面,根据您的操作系统下载对应的预编译二进制文件。
    • 下载后,将二进制文件放置在您希望安装的目录,并确保该目录在系统 'PATH' 环境变量中,或者您可以在配置 MCP 客户端时指定二进制文件的完整路径。
    • 如果下载的是压缩包,请解压。
  3. 从源码构建:

    • 克隆仓库到本地:
      git clone https://github.com/geropl/git-mcp-go.git
      cd git-mcp-go
    • 构建服务器:
      go build -o git-mcp-go .
    • 构建完成后,'git-mcp-go' 可执行文件将出现在当前目录下。
  4. 使用 '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' 中的路径参数。

基本使用方法

  1. 启动服务器: MCP 客户端在配置并连接到 'git-mcp-go' 服务器后,服务器会在后台自动运行。您无需手动启动服务器。

  2. 通过 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' 参数)
  3. 参数传递: 部分 Git 工具需要参数,例如 'git_commit' 需要 'message' 参数,'git_diff' 需要 'target' 参数。您需要在调用工具时,通过 MCP 客户端提供的参数配置方式,将必要的参数传递给服务器。具体的参数传递方式取决于您使用的 MCP 客户端的功能和界面。

  4. 查看结果: Git 工具执行完成后,服务器会将执行结果返回给 MCP 客户端,客户端会将结果展示给用户。通常,结果会以文本形式呈现,例如 Git 命令的输出信息、仓库状态、代码差异等。

通过配置和使用 Git MCP Server,您可以让 LLM 具备强大的 Git 仓库操作能力,从而实现更智能化的代码管理和自动化工作流程。

信息

分类

开发者工具