Git MCP 浏览器
一个Node.js实现,通过模型上下文协议启用浏览Git仓库的功能,提供显示目录结构、读取文件、搜索代码、比较分支和查看提交历史等功能。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"git-commands-mcp": {
"command": "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"]
}
}
}
功能
服务器提供以下工具:
基本仓库操作
-
git_directory_structure: 返回仓库目录结构的树状表示- 输入: 仓库 URL
- 输出: 仓库结构的 ASCII 树形表示
-
git_read_files: 读取并返回仓库中指定文件的内容- 输入: 仓库 URL 和文件路径列表
- 输出: 将文件路径映射到其内容的字典
-
git_search_code: 在仓库代码中搜索模式- 输入: 仓库 URL、搜索模式、可选的文件模式、大小写敏感性以及上下文行数
- 输出: 包含匹配行和上下文的 JSON 结果
分支操作
git_branch_diff: 比较两个分支并显示它们之间的更改文件- 输入: 仓库 URL、源分支、目标分支和可选的 show_patch 标志
- 输出: 包含提交计数和差异摘要的 JSON
提交操作
-
git_commit_history: 获取带有可选过滤条件的分支提交历史- 输入: 仓库 URL、分支名称、最大数量、作者过滤器、起始日期、截止日期和消息 grep
- 输出: 包含提交详情的 JSON
-
git_commits_details: 获取关于提交的详细信息,包括完整消息和差异- 输入: 仓库 URL、分支名称、最大数量、include_diff 标志、作者过滤器、起始日期、截止日期和消息 grep
- 输出: 包含详细提交信息的 JSON
-
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 密钥(即使对于启用了两步验证的账户也有效):
-
生成一个 npm 自动化令牌:
- 登录您的 npmjs.com 账户
- 进入您的个人设置
- 选择 "访问令牌"
- 点击 "生成新令牌"
- 选择 "自动化" 令牌类型
- 设置适当的权限(对包需要 "读写" 权限)
- 复制生成的令牌
-
将令牌添加到您的 GitHub 仓库中:
- 前往您的 GitHub 仓库
- 导航至 "设置" > "密钥和变量" > "操作"
- 点击 "新建仓库密钥"
- 名称:
NPM_AUTOMATION_TOKEN - 值:粘贴您的 npm 自动化令牌
- 点击 "添加密钥"
一旦配置完成,任何推送到主分支的操作都将触发工作流,将包发布到 npm。
许可证
MIT 许可证 - 查看 LICENSE 文件获取详情。