G

Git MCP 浏览器

@bsreeram08/git-commands-mcp
1 Stars 498 次浏览 bsreeram08 更新于 2026-08-23

一个Node.js实现,通过模型上下文协议启用浏览Git仓库的功能,提供显示目录结构、读取文件、搜索代码、比较分支和查看提交历史等功能。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "git-commands-mcp": {
      "command": "git-commands-mcp"
    }
  }
}

服务介绍

MCP Git 仓库浏览器 (Node.js)

这是一个使用模型上下文协议(MCP)实现的 Git 仓库浏览器的 Node.js 版本。

GitHub Repository
npm package

安装

NPM (推荐)

npm install -g git-commands-mcp

手动安装

git clone https://github.com/bsreeram08/git-commands-mcp.git
cd git-commands-mcp
npm install

配置

将以下内容添加到您的 MCP 设置配置文件中:

{
  "mcpServers": {
    "git-commands-mcp": {
      "command": "git-commands-mcp"
    }
  }
}

对于手动安装,请使用:

{
  "mcpServers": {
    "git-commands-mcp": {
      "command": "node",
      "args": ["/path/to/git-commands-mcp/src/index.js"]
    }
  }
}

功能

服务器提供以下工具:

基本仓库操作

  1. git_directory_structure: 返回仓库目录结构的树状表示

    • 输入: 仓库 URL
    • 输出: 仓库结构的 ASCII 树形表示
  2. git_read_files: 读取并返回仓库中指定文件的内容

    • 输入: 仓库 URL 和文件路径列表
    • 输出: 将文件路径映射到其内容的字典
  3. git_search_code: 在仓库代码中搜索模式

    • 输入: 仓库 URL、搜索模式、可选的文件模式、大小写敏感性以及上下文行数
    • 输出: 包含匹配行和上下文的 JSON 结果

分支操作

  1. git_branch_diff: 比较两个分支并显示它们之间的更改文件
    • 输入: 仓库 URL、源分支、目标分支和可选的 show_patch 标志
    • 输出: 包含提交计数和差异摘要的 JSON

提交操作

  1. git_commit_history: 获取带有可选过滤条件的分支提交历史

    • 输入: 仓库 URL、分支名称、最大数量、作者过滤器、起始日期、截止日期和消息 grep
    • 输出: 包含提交详情的 JSON
  2. git_commits_details: 获取关于提交的详细信息,包括完整消息和差异

    • 输入: 仓库 URL、分支名称、最大数量、include_diff 标志、作者过滤器、起始日期、截止日期和消息 grep
    • 输出: 包含详细提交信息的 JSON
  3. git_local_changes: 获取工作目录中的未提交更改

    • 输入: 本地仓库路径
    • 输出: 包含状态信息和差异的 JSON

项目结构

git-commands-mcp/
├── src/
│   ├── index.js         # Entry point
│   ├── server.js        # Main server implementation
│   ├── handlers/        # Tool handlers
│   │   └── index.js     # Tool implementation functions
│   └── utils/           # Utility functions
│       └── git.js       # Git-related helper functions
├── package.json
└── readme.md

实现细节

  • 使用 Node.js 原生模块 (crypto, path, os) 实现核心功能
  • 利用 fs-extra 进行增强的文件操作
  • 使用 simple-git 进行 Git 仓库操作
  • 实现了干净的错误处理和资源清理
  • 根据仓库 URL 的哈希创建确定性的临时目录
  • 尽可能重用已克隆的仓库以提高效率
  • 模块化代码结构以提高可维护性

要求

  • Node.js 14.x 或更高版本
  • 系统上安装了 Git

使用

如果通过 npm 全局安装:

git-commands-mcp

如果手动安装:

node src/index.js

该服务器运行在标准输入输出上,使其与 MCP 客户端兼容。

CI/CD

该项目使用 GitHub Actions 进行持续集成和部署:

自动 NPM 发布

仓库配置了一个 GitHub Actions 工作流,当向主分支推送更改时,该工作流会自动将包发布到 npm。

设置 NPM_AUTOMATION_TOKEN

要启用自动发布,您需要添加一个 npm 自动化令牌作为 GitHub 密钥(即使对于启用了两步验证的账户也有效):

  1. 生成一个 npm 自动化令牌:

    • 登录您的 npmjs.com 账户
    • 进入您的个人设置
    • 选择 "访问令牌"
    • 点击 "生成新令牌"
    • 选择 "自动化" 令牌类型
    • 设置适当的权限(对包需要 "读写" 权限)
    • 复制生成的令牌
  2. 将令牌添加到您的 GitHub 仓库中:

    • 前往您的 GitHub 仓库
    • 导航至 "设置" > "密钥和变量" > "操作"
    • 点击 "新建仓库密钥"
    • 名称:NPM_AUTOMATION_TOKEN
    • 值:粘贴您的 npm 自动化令牌
    • 点击 "添加密钥"

一旦配置完成,任何推送到主分支的操作都将触发工作流,将包发布到 npm。

许可证

MIT 许可证 - 查看 LICENSE 文件获取详情。

链接

相关 MCP 服务