Git仓库浏览器

一个基于Node.js和MCP协议的Git仓库浏览器,提供基本的仓库操作、分支操作和提交操作等功能。

  • by bsreeram08
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 bsreeram08/git-commands-mcp

使用说明

MCP Git回购浏览器(Node.js)

使用模型上下文协议(MCP)的Git存储库浏览器的Node.js实现。

安装

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原生模块(加密、路径、操作系统)实现核心功能
  • 利用fs-extra增强文件操作
  • 使用简单的git进行git存储库操作
  • 实现干净的错误处理和资源清理
  • 基于存储库URL哈希创建确定性临时目录
  • 尽可能重用克隆的存储库以提高效率
  • 模块化代码结构,可更好地维护

需求

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

用法

如果通过npm全局安装:

git-commands-mcp

如果手动安装:

node src/index.js

服务器在stdio上运行,使其与MCP客户端兼容。

CI/CD

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

自动NPM发布

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

设置NPM_AUTOMATION_TOKEN

要启用自动发布,您需要添加一个npm Automation令牌作为GitHub机密(即使对于启用了2FA的帐户也是如此):

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

    • 登录您的npm帐户 npmjs.com
    • 转到您的个人资料设置
    • 选择“访问令牌”
    • 点击“生成新令牌”
    • 选择“自动化”令牌类型
    • 设置适当的权限(需要对包进行“读写”)
    • 复制生成的令牌
  2. 将令牌添加到您的GitHub存储库:

    • 转到您的GitHub存储库
    • 导航到“设置”>“秘密和变量”>“操作”
    • 点击“新建存储库密钥”
    • 姓名: NPM_AUTOMATION_TOKEN
    • 值:粘贴你的npm自动化令牌
    • 点击“添加秘密”

配置后,任何向master分支的推送都会触发工作流将包发布到npm。

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

链接