hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides tools for Git repository operations including browsing directory structures, reading files, searching code, comparing branches, viewing commit history, and checking local changes.
Enables browsing and analyzing GitHub repositories, including retrieving file contents, searching code, and examining commit history across branches.
Integrates with GitHub Actions for CI/CD workflows, specifically for automating npm package publishing when changes are pushed to the master branch.
MCP Git Repo 浏览器 (Node.js)
使用模型上下文协议 (MCP) 的 Git 存储库浏览器的 Node.js 实现。
安装
NPM(推荐)
手动安装
配置
将其添加到您的 MCP 设置配置文件中:
对于手动安装,请使用:
特征
该服务器提供以下工具:
基本存储库操作
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
项目结构
实现细节
- 使用 Node.js 原生模块(crypto、path、os)实现核心功能
- 利用 fs-extra 增强文件操作
- 使用 simple-git 进行 Git 存储库操作
- 实现干净的错误处理和资源清理
- 根据存储库 URL 哈希创建确定性临时目录
- 尽可能重复使用克隆的存储库以提高效率
- 模块化代码结构,可维护性更好
要求
- Node.js 14.x 或更高版本
- 系统上安装的 Git
用法
如果通过 npm 全局安装:
如果手动安装:
服务器在 stdio 上运行,使其与 MCP 客户端兼容。
持续集成/持续交付
该项目使用 GitHub Actions 进行持续集成和部署:
自动 NPM 发布
该存储库配置了 GitHub Actions 工作流,当更改推送到主分支时,会自动将包发布到 npm。
设置 NPM_AUTOMATION_TOKEN
要启用自动发布,您需要添加一个 npm Automation 令牌作为 GitHub 机密(即使启用了 2FA 的帐户也可以使用):
- 生成 npm Automation 令牌:
- 在npmjs.com上登录你的 npm 帐户
- 转到您的个人资料设置
- 选择“访问令牌”
- 点击“生成新令牌”
- 选择“自动化”令牌类型
- 设置适当的权限(需要对包进行“读写”)
- 复制生成的token
- 将令牌添加到您的 GitHub 存储库:
- 前往你的 GitHub 仓库
- 导航至“设置”>“机密和变量”>“操作”
- 点击“新建存储库秘密”
- 名称:
NPM_AUTOMATION_TOKEN
- 值:粘贴您的 npm Automation 令牌
- 点击“添加秘密”
配置完成后,任何对主分支的推送都会触发工作流将包发布到 npm。
执照
MIT 许可证 - 有关详细信息,请参阅LICENSE文件。
链接
This server cannot be installed
Node.js 实现可以通过模型上下文协议浏览 Git 存储库,提供显示目录结构、读取文件、搜索代码、比较分支和查看提交历史记录等功能。