Git仓库交互服务器

一个基于模型上下文协议的Git仓库交互和自动化服务器,提供通过大型语言模型读取、搜索和操作Git仓库的工具。

  • by atxtechbro
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 atxtechbro/git-mcp-server

使用说明

mcp-server-git: 一个 git MCP 服务器

概述

用于Git存储库交互和自动化的模型上下文协议服务器。此服务器提供通过大型语言模型读取、搜索和操作Git存储库的工具。

请注意,mcp服务器git目前处于早期开发阶段。随着我们不断开发和改进服务器,功能和可用工具可能会发生变化和扩展。

工具

  1. git_status

    • 显示工作树状态
    • 输入:
      • repo_path (string):Git存储库的路径
    • 返回:工作目录的当前状态作为文本输出
  2. git_diff_unstaged

    • 显示尚未暂存的工作目录中的更改
    • 输入:
      • repo_path (string):Git存储库的路径
    • 返回值:未暂存更改的差异输出
  3. git_diff_staged

    • 显示已提交的更改
    • 输入:
      • repo_path (string):Git存储库的路径
    • 返回值:分阶段更改的差异输出
  4. git_diff

    • 显示分支或提交之间的差异
    • 输入:
      • repo_path (string):Git存储库的路径
      • target (string):目标分支或提交进行比较
    • 返回:将当前状态与目标进行比较的Diff输出
  5. git_commit

    • 记录对存储库的更改
    • 输入:
      • repo_path (string):Git存储库的路径
      • message (string):提交消息
    • 返回:使用新的提交哈希进行确认
  6. git_add

    • 将文件内容添加到暂存区
    • 输入:
      • repo_path (string):Git存储库的路径
      • files (string[]):到stage的文件路径数组
    • 返回:暂存文件的确认
  7. git_reset

    • 取消所有阶段性变化
    • 输入:
      • repo_path (string):Git存储库的路径
    • 返回:重置操作确认
  8. git_log

    • 显示提交日志
    • 输入:
      • repo_path (string):Git存储库的路径
      • max_count (number,可选):要显示的最大提交数(默认值:10)
    • 返回:包含哈希、作者、日期和消息的提交条目数组
  9. git_create_branch

    • 创建新分支
    • 输入:
      • repo_path (string):Git存储库的路径
      • branch_name (string):新分支的名称
      • start_point (字符串,可选):新分支的起点
    • 返回:分支创建确认
  10. git_checkout

    • 切换分支
    • 输入:
      • repo_path (string):Git存储库的路径
      • branch_name (string):要结账的分行名称
    • 返回:分支切换确认
  11. git_show

    • 显示提交的内容
    • 输入:
      • repo_path (string):Git存储库的路径
      • revision (string):要显示的修订(提交哈希、分支名称、标签)
    • 返回:指定提交的内容

安装

使用紫外线(推荐)

使用时 uv 不需要特定的安装。我们将 使用 uvx 直接运行 mcp服务器git.

使用PIP

或者,您可以安装 mcp-server-git 通过pip:

pip install mcp-server-git

安装后,您可以使用以下命令将其作为脚本运行:

python -m mcp_server_git

配置

使用Claude Desktop

将此添加到您的 claude_desktop_config.json:

Using uvx
"mcpServers": {
  "git": {
    "command": "uvx",
    "args": ["mcp-server-git", "--repository", "path/to/git/repo"]
  }
}
Using docker
  • 注意:将“/Users/username”替换为您希望此工具可以访问的路径
"mcpServers": {
  "git": {
    "command": "docker",
    "args": ["run", "--rm", "-i", "--mount", "type=bind,src=/Users/username,dst=/Users/username", "mcp/git"]
  }
}
Using pip installation
"mcpServers": {
  "git": {
    "command": "python",
    "args": ["-m", "mcp_server_git", "--repository", "path/to/git/repo"]
  }
}

使用方法 泽德

添加到您的Zed settings.json:

Using uvx
"context_servers": [
  "mcp-server-git": {
    "command": {
      "path": "uvx",
      "args": ["mcp-server-git"]
    }
  }
],
Using pip installation
"context_servers": {
  "mcp-server-git": {
    "command": {
      "path": "python",
      "args": ["-m", "mcp_server_git"]
    }
  }
},

调试

您可以使用MCP检查器调试服务器。对于uvx安装:

npx @modelcontextprotocol/inspector uvx mcp-server-git

或者,如果您已将软件包安装在特定目录中或正在其上开发:

cd path/to/servers/src/git
npx @modelcontextprotocol/inspector uv run mcp-server-git

跑步 tail -n 20 -f ~/Library/Logs/Claude/mcp*.log 将显示服务器的日志,并可能 帮助您调试任何问题。

发展

如果您正在进行本地开发,有两种方法可以测试您的更改:

  1. 运行MCP检查器以测试您的更改。看 调试 用于运行说明。

  2. 使用Claude桌面应用程序进行测试。将以下内容添加到您的 claude_desktop_config.json:

码头工人

{
  "mcpServers": {
    "git": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
        "--mount", "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
        "--mount", "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
        "mcp/git"
      ]
    }
  }
}

UVX

{
"mcpServers": {
  "git": {
    "command": "uv",
    "args": [ 
      "--directory",
      "/<path to mcp-servers>/mcp-servers/src/git",
      "run",
      "mcp-server-git"
    ]
  }
}

构建

Docker构建:

cd src/git
docker build -t mcp/git .

许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。