MCP Git回购浏览器(Node.js)
使用模型上下文协议(MCP)的Git存储库浏览器的Node.js实现。
](https://github.com/bsreeram08/git-commands-mcp) ](https://www.npmjs.com/package/git-commands-mcp)
安装
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原生模块(加密、路径、操作系统)实现核心功能
- 利用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的帐户也是如此):
- 生成一个npm自动化令牌:
- 登录您的npm帐户 - 转到您的个人资料设置 - 选择“访问令牌” - 点击“生成新令牌” - 选择“自动化”令牌类型 - 设置适当的权限(需要对包进行“读写”) - 复制生成的令牌
- 将令牌添加到您的GitHub存储库:
- 转到您的GitHub存储库 - 导航到“设置”>“秘密和变量”>“操作” - 点击“新建存储库密钥” - 姓名: NPM_AUTOMATION_TOKEN - 值:粘贴你的npm自动化令牌 - 点击“添加秘密”
配置后,任何向master分支的推送都会触发工作流将包发布到npm。
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
