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 客户端生成配置文件。

安装步骤

  1. 前提条件:

    • 确保已安装 Go 1.18 或更高版本
    • 确保您的系统已安装 Git 命令行工具,并已配置到环境变量 'PATH' 中。
  2. 下载预编译二进制文件 (推荐):

    • 访问 GitHub Releases 页面,下载适用于您操作系统的预编译二进制文件。
    • 将下载的二进制文件(例如 'git-mcp-go-linux-amd64')重命名为 'git-mcp-go',并添加到您的可执行文件路径中,或者在当前目录下使用 './git-mcp-go' 命令运行。
  3. 从源代码构建:

    • 如果您没有找到合适的预编译版本,或者希望从源码构建,请执行以下步骤:
      # 克隆仓库
      git clone https://github.com/geropl/git-mcp-go.git
      cd git-mcp-go
      
      # 构建服务器
      go build -o git-mcp-go .
      构建完成后,您将在当前目录下找到可执行文件 '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' 操作,请添加此参数。

基本使用方法

  1. 启动 Git MCP Server:

    • 根据您的配置,在命令行中执行 'git-mcp-go serve [flags]' 命令来启动服务器。
    • 例如,在包含 'git-mcp-go' 可执行文件的目录下,运行以下命令 (请替换仓库路径):
      ./git-mcp-go serve -r /path/to/git/repository
  2. 配置 MCP 客户端:

    • 将上面提供的 'claude_desktop_config.json' 配置信息添加到您的 MCP 客户端(例如 Cline)的配置文件中。
    • 确保 '"command"' 和 '"args"' 中的仓库路径 '/path/to/git/repository' 已替换为您的实际 Git 仓库路径,并且 '"command"' 指向的 'git-mcp-go' 可执行文件路径是正确的。
  3. 在 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 工具。

信息

分类

开发者工具