项目简介

Git MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为 AI 助手提供标准化的 Git 操作能力。通过集成到 MCP 生态系统,该服务器允许 LLM 客户端调用各种 Git 工具,从而实现代码仓库的管理、版本控制等功能。

主要功能点

  • 核心 Git 操作: 支持 'init', 'clone', 'status', 'add', 'commit', 'push', 'pull' 等常用 Git 命令。
  • 分支管理: 提供 'list', 'create', 'delete', 'checkout' 等分支操作工具。
  • 标签操作: 支持 'list', 'create', 'delete' 等标签管理功能。
  • 远程仓库管理: 允许列出、添加和移除远程仓库 ('list', 'add', 'remove')。
  • 暂存操作: 支持 'list', 'save', 'pop' 等暂存管理命令。
  • 批量操作: 可以按顺序执行多个 Git 操作 ('bulk_action')。
  • GitHub 集成: 内置 GitHub 支持,通过个人访问令牌进行身份验证。
  • 智能路径处理: 能够处理绝对路径和可选的默认路径配置。
  • 完善的错误处理: 提供全面的错误处理机制和自定义错误类型。
  • 仓库缓存: 高效管理仓库状态,提升性能。
  • 性能监控: 内置性能跟踪功能。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/Sheshiyer/git-mcp-v2.git
    cd git-mcp-v2
  2. 安装依赖:

    npm install
  3. 构建项目:

    npm run build

服务器配置

要将 Git MCP Server 集成到 MCP 客户端,您需要在客户端的 MCP 设置文件中添加以下配置。这个配置告诉 MCP 客户端如何启动和连接到 Git MCP Server。

{
  "mcpServers": {
    "git-v2": {
      "command": "node",
      "args": ["path/to/git-mcp-v2/build/index.js"],
      "env": {
        "GIT_DEFAULT_PATH": "/path/to/default/git/directory",
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your-github-pat"
      }
    }
  }
}

配置参数说明:

  • 'server name': 'git-v2' (服务器名称,客户端用此名称引用)
  • 'command': 'node' (启动服务器的命令,这里使用 Node.js 运行时)
  • 'args': '["path/to/git-mcp-v2/build/index.js"]' (启动命令的参数,指向构建后的服务器入口文件 'index.js'。请将 'path/to/git-mcp-v2' 替换为 Git MCP Server 在您本地文件系统中的实际路径)
  • 'env': 环境变量配置
    • 'GIT_DEFAULT_PATH': '"/path/to/default/git/directory"' (可选,Git 操作的默认路径。请根据需要替换为您希望设置的默认 Git 仓库目录的绝对路径。如果设置此项,则在调用工具时可以不提供 'path' 参数。).
    • 'GITHUB_PERSONAL_ACCESS_TOKEN': '"your-github-pat"' (可选,GitHub 个人访问令牌,用于 GitHub 相关操作,如克隆私有仓库。如果不需要 GitHub 集成可以不设置,需要使用 GitHub 功能时请替换为您自己的 GitHub 个人访问令牌).

注意: 以上配置是添加到 MCP 客户端 的设置文件中,而不是 Git MCP Server 本身的配置文件。MCP 客户端会根据这些配置启动并连接到 Git MCP Server。

基本使用方法

  1. 启动服务器: 当 MCP 客户端启动并加载上述配置后,Git MCP Server 将会自动启动并运行在后台,通过标准输入/输出 (stdio) 与客户端通信。

  2. 客户端调用工具: 在 LLM 应用中,您可以使用 MCP 客户端 SDK,通过 'git-v2' 这个服务器名称来调用 Git MCP Server 提供的各种工具。例如,要初始化一个新的 Git 仓库,您可以调用 'init' 工具,并根据需要传递 'path' 参数来指定仓库的初始化路径。

    例如,在客户端代码中,您可能会这样调用 'init' 工具(伪代码示例):

    client.callTool({
        serverName: 'git-v2',
        toolName: 'init',
        arguments: {
            path: '/path/to/your/new/repo' // 指定仓库路径
        }
    });

    更多工具的调用方法和参数,请参考仓库中 'src/tool-handler.ts' 文件内 'setupToolDefinitions' 方法中的工具定义,以及 "Available Tools" 章节的详细说明。

  3. 查看操作结果: 工具执行的结果将以 JSON-RPC 响应的形式返回给 MCP 客户端,您可以解析响应内容以获取 Git 操作的输出信息。

通过 Git MCP Server,您的 LLM 应用可以方便地集成强大的 Git 版本控制功能,例如代码仓库的创建、克隆、状态查看、提交、推送、分支管理等等,从而构建更加智能和实用的 AI 助手。

信息

分类

开发者工具