Git Mind MCP
用于Git智能的MCP服务器 --状态、差异、责备、分支、合并、阶段、提交、推送、拉取、签出、隐藏、提取、重置、cherry_pick、恢复、标记。适用于任何MCP兼容客户端(Cursor、Claude Desktop、, Librechat等等)。
路线图 --计划的功能、阶段和时间线。\ 贡献 --如何做出贡献。
特性
阅读
get_status--工作树和阶段性变更get_commit_history--最近提交的包含作者、日期和消息的提交get_diff--工作树、舞台或裁判之间的差异get_blame--谁最后修改了文件的每一行get_branches--本地和远程分支机构get_remotes--列出遥控器和URL(用于推送/拉取目标)get_reflog--Reflog(恢复、丢失的提交、分支历史)get_show--显示特定提交(消息、作者、差异)get_config--读取Git配置(特定键或全部)get_log--使用筛选器提交日志get_describe--人类可读的参考描述(例如v1.2.3-5-gabc1234)get_ls_files--列出跟踪(或暂存,其他)文件get_shortlog--按作者总结提交内容get_ignore--读取.gitignore(以及可选的.git/info/exclude)get_current_branch--获取当前分支名称suggest_commit_message--AI建议提交消息的阶段性差异
写
init--初始化一个新的Git仓库(Git init;支持bare)clone--从URL克隆存储库(git Clone)stage--提交阶段文件(git add)unstage--解压缩文件(git重置)commit--创建分阶段更改的提交push--推到远程(受保护的分支被阻止)force_push--强制推送(通过GIT_MIND_ALLOWED_ACTIONS选择加入;受保护的分支被阻止)pull--从远程拉checkout--切换分支或还原文件create_branch--创建并可选择签出分支机构delete_branch--删除本地分支(受保护的分支被阻止)branch_rename--重命名分支(受保护的分支被阻止)merge--将分支合并到当前分支中(无法合并到受保护的分支中)stash--暂停更改(推送/弹出/列表)fetch--从远程获取(更新引用,不合并)reset--重置HEAD(仅软/混合;--硬堵塞)cherry_pick--将提交应用于当前分支(受保护的分支被阻止)revert--创建还原提交(阻止受保护的分支)tag--列出标签或创建轻量级/带注释的标签rebase--将当前分支重新建立到另一个分支上(操作:重新建立/中止/继续;受保护的分支被阻止)remote--添加、删除或设置远程的URL(配置文件+模拟运行;受保护的远程,如源站,被阻止删除)mv--移动或重命名文件(git mv;跟踪重命名以获得更好的差异历史记录)archive--在ref处创建repo的tar/zip存档(发布包;模拟运行)bisect--二进制搜索以查找引入提交的错误(开始/坏/好/重置/运行)worktree--管理多个工作树(添加/列出/删除)get_describe--人类可读的参考描述(例如v1.2.3-5-gabc1234)
配置 (可选配置文件+环境变量;env覆盖文件)
- 配置文件 --地点
git-mind.config.json或.git-mind.json在工作目录中(或设置GIT_MIND_CONFIG_FILE).看 git-mind.config.example.json 和 安全模型. GIT_MIND_ALLOWED_ACTIONS--逗号分隔的允许操作列表(默认值:stage,unstage,commit).添加init,clone,push,force_push,pull,checkout,create_branch,delete_branch,branch_rename,merge,stash,fetch,reset,cherry_pick,revert,tag,rebase,remote,mv,archive,bisect,worktree启用init、clone、sync、branch、merge、stash、fetch、reset、cherry_pick、reverse、tag、rebase、remote、branch_rename、mv、archive、divide、worktree和可选的force_push。GIT_MIND_PROTECTED_BRANCHES--要防止推送/删除/合并的分支(默认值:main,master)GIT_MIND_PROTECTED_REMOTES--防止删除的遥控器(默认值:origin;配置文件支持数组)GIT_MIND_STRICT_MODE--设置为1禁用强制操作GIT_MIND_DRY_RUN--设置为1在不执行的情况下模拟关键操作(初始化、克隆、推送、拉取、合并、删除分支、重置、cherry_pick、还原、重基、远程、存档、平分、工作树)
客户端设置
安装
npm install -g git-mind-mcp
# or
npx git-mind-mcp用法
独立(stdio)
# Use current directory as repo
npx git-mind-mcp
# Specify repo path
npx git-mind-mcp /path/to/your/repoLibrechat
看 LibreChat集成 详细设置。快速入门--添加到 librechat.yaml:
mcpServers:
git-mind:
type: stdio
command: npx
args:
- -y
- git-mind-mcp
- /path/to/your/repo # optional; omit to use process cwd
timeout: 30000有关子模块或本地开发设置,请参阅 LibreChat集成.
发展
需要 Node.js>=22.使用 非易失性存储器 (或fnm、asdf)用于版本管理:
nvm use # or: fnm use / asdf install
npm install
npm run build
npm run dev # Run with tsx (no build needed)
npm test.nvmrc 和 .node-version 为nvm/fnm/asdf指定节点22。
为什么是Node 22? 我们的目标是Node 22 LTS,以提高性能、本地ESM稳定性,并与当前的Node LTS时间表保持一致。如果你需要Node 20支持,请使用v1.x。
许可证
麻省理工学院
