关于 Gitrama Mcp
Gitrama Mcp 通过 15 个 MCP 工具向 AI 助手开放 Git 和仓库工作流操作,面向使用兼容 MCP 的 IDE 和客户端的开发者。功能涵盖仓库分析、代码审查、差异查看、提交、分支、推送、PR 描述、变更日志及工作流流管理。
主要功能
- 01提供 15 个 Git 工作流工具
- 02生成提交信息和分支名称
- 03仓库问答与结构扫描
- 04风险标注差异和代码审查
- 05生成 PR 描述和变更日志
- 06管理工作流流
适用场景
- 01推送前审查代码变更
- 02根据暂存内容生成提交
- 03根据任务描述创建分支
- 04准备 PR 描述和变更日志
MCP 相关
通过 MCP 向客户端提供 Gitrama CLI 的 15 个工具,涵盖 Git 操作、仓库分析、审查和工作流管理。支持 stdio 与 streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🌿 Gitrama MCP 服务
为 IDE 提供 AI 驱动的 Git 智能功能——智能提交、分支名称、PR 描述、差异、代码审查、推送和工作流管理。
这是什么?
Gitrama MCP 服务将 Gitrama 的 CLI 封装为 15 个 MCP 工具,供任何 AI 助手使用。无需在终端中输入 gtr commit,你的 AI 助手会直接调用工具——分析代码变更、生成提交消息、建议分支名称、审查代码等。
适用于: Cursor · Claude Desktop · Claude Code · Windsurf · VS Code · Zed · 任何兼容 MCP 的客户端
v1.3.2 新功能
- 新增 5 个工具——
gitrama_scan、gitrama_diff、gitrama_review、gitrama_status和gitrama_push - 健康检查显示版本——
gitrama_health现在会返回 MCP 服务版本,方便你确认当前运行的具体版本 - 交互式 HTML 差异面板——
gitrama_diff会启动浏览器面板,展示风险标注的差异、变更率、耦合上下文,以及叠加在每个变更文件上的贡献者信息 - 在聊天中推送——
gitrama_push支持上游跟踪、force-with-lease,并自动解析当前分支 - 工具数量从 10 更新至 15
安装(< 60 秒)
步骤 1:安装软件包
pip install gitrama-mcp
也可以使用 uv:
uv pip install gitrama-mcp
此操作会同时安装 MCP 服务和 gitrama CLI。
步骤 2:连接到 IDE
Cursor
将以下内容添加到项目中的 .cursor/mcp.json(或全局设置):
{
"mcpServers": {
"gitrama": {
"command": "gitrama-mcp"
}
}
}
Claude Desktop
添加到 claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"gitrama": {
"command": "gitrama-mcp"
}
}
}
Claude Code
claude mcp add gitrama gitrama-mcp
VS Code
添加到 .vscode/mcp.json:
{
"mcpServers": {
"gitrama": {
"command": "gitrama-mcp"
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"gitrama": {
"command": "gitrama-mcp"
}
}
}
Zed
添加到 Zed 设置中(⌘,):
{
"context_servers": {
"gitrama": {
"command": {
"path": "gitrama-mcp"
}
}
}
}
步骤 3:完成。
向 AI 提问:“提交我暂存的变更”——然后看它调用 gitrama_commit。
工具(15 个)
健康与诊断
| 工具 | 描述 |
|---|---|
gitrama_health | 检查 AI 服务健康状况并确认 MCP 服务版本 |
仓库智能
| 工具 | 描述 |
|---|---|
gitrama_ask | 提出任何关于仓库的问题——所有权、历史、风险、变更 |
gitrama_scan | 全面的结构健康扫描——连续性风险、边界熵、复现模式 |
gitrama_status | 显示工作树状态并提供 AI 解读 |
代码审查与差异
| 工具 | 描述 |
|---|---|
gitrama_diff | 带交互式 HTML 面板的风险标注差异——变更率、耦合关系、贡献者上下文 |
gitrama_review | 推送前的 AI 代码审查——安全性、正确性、风险、耦合关系 |
提交智能
| 工具 | 描述 |
|---|---|
gitrama_commit | 为暂存的变更生成 AI 提交消息 |
gitrama_stage_and_commit | 一步暂存文件并提交 |
gitrama_unstage | 从暂存区移除文件,但不丢弃变更 |
分支与推送管理
| 工具 | 描述 |
|---|---|
gitrama_branch | 根据自然语言描述创建分支 |
gitrama_push | 将当前分支推送到远程,并支持上游跟踪和 force-with-lease |
PR 与变更日志
| 工具 | 描述 |
|---|---|
gitrama_pr | 根据分支差异生成 PR 描述 |
gitrama_changelog | 生成两个引用之间的变更日志 |
工作流流管理
| 工具 | 描述 |
|---|---|
gitrama_stream_status | 显示当前工作流流 |
gitrama_stream_switch | 切换到其他流 |
gitrama_stream_list | 列出仓库中的所有流 |
工具详情
gitrama_health
检查 AI 服务的连接状态,并确认正在运行的 MCP 服务版本。
示例提示词: "运行 gitrama 健康检查"
示例输出:
✅ AI server is healthy!
🤖 Model: grok-4.20-reasoning
🌐 Connected to: https://api.x.ai/v1
🔖 Gitrama MCP Server: v1.3.2
gitrama_scan
对仓库进行全面的结构健康扫描。为每个文件评估连续性风险、边界熵和重复模式。扫描结果会缓存到 last_scan.json,供 gtr diff 和 gtr review 使用。
示例提示词: "对我的仓库运行完整的 gitrama 扫描"
gitrama_diff
显示带风险注释的当前更改差异。打开一个交互式 HTML 浏览器面板,叠加显示 Gitrama 的结构智能分析结果——每个已更改文件的风险评分、变更率、耦合缺口和贡献者背景。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
target | string | "" | 用于比较差异的分支或提交 |
staged | bool | false | 仅比较已暂存的更改 |
示例提示词:
- "显示我已暂存更改的差异"
- "比较我的分支与 main 的差异"
gitrama_review
在提交前对当前更改运行 AI 代码审查。返回按严重程度分级的发现结果——安全性、正确性、风险和耦合——以及审查结论和建议的提交消息。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
mode | string | "staged" | "staged"、"uncommitted"、"quick"、"full" |
示例提示词:
- "审查我已暂存的更改"
- "全面审查我所有尚未提交的更改"
gitrama_push
将当前分支推送到远程仓库。安全强制推送时使用 --force-with-lease;如果未指定分支,则自动解析当前分支。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
remote | string | "origin" | 要推送到的远程仓库 |
branch | string | "" | 要推送的分支(默认:当前分支) |
force | bool | false | 使用 --force-with-lease 强制推送 |
set_upstream | bool | false | 设置上游跟踪分支(-u) |
示例提示词:
- "推送我的更改"
- "推送此分支并设置上游分支"
- "强制推送当前分支"
gitrama_status
显示工作区状态,并使用 AI 解读已暂存、未暂存和未跟踪的文件。
示例提示词: "我当前的 git 状态是什么?"
gitrama_ask
用自然语言询问有关仓库的问题。Gitrama 会分析提交历史、文件结构、归责数据和差异并给出回答。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
question | string | 必填 | 有关仓库的任意问题 |
stream | string | "" | 可选的流上下文覆盖值 |
deep | bool | false | 启用完整的仓库历史访问权限 |
示例提示词:
- "谁负责 auth 模块?"
- "这个仓库中风险最高的文件是什么?"
- "过去 3 天有哪些更改?"
- "解释 src/utils/retry.py 的用途"
gitrama_commit
为已暂存的更改生成 AI 驱动的提交消息。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
message | string | "" | 可选的自定义消息(跳过 AI 生成) |
示例提示词: "提交我已暂存的更改"
gitrama_stage_and_commit
暂存文件并一步完成提交。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
files | string | "." | 要暂存的文件(. 表示全部,或以空格分隔的路径) |
message | string | "" | 可选的自定义消息 |
示例提示词: “暂存并提交我的所有更改”
gitrama_unstage
从暂存区移除文件,但不丢弃更改。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
files | string | "" | 以空格分隔的待取消暂存文件路径 |
all_files | bool | false | 取消暂存当前暂存区中的所有内容 |
示例提示词: “取消暂存 src/auth.py”
gitrama_branch
根据描述生成由 AI 驱动的分支名称,并可选择创建该分支。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
description | string | 必填 | 你正在处理的内容 |
create | bool | true | 创建并切换到该分支 |
示例提示词:
- “创建一个用于添加 OAuth2 支持的分支”
- “建议一个用于修复支付超时的分支名称,但不要创建”
gitrama_pr
根据当前分支与基准分支之间的差异生成 PR 描述。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
base | string | "" | 目标分支(默认:main/master) |
示例提示词: “为此分支撰写 PR 描述”
gitrama_changelog
生成两个引用之间的变更日志。
参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
since | string | "" | 起始引用(标签、分支、哈希) |
until | string | "" | 结束引用(默认:HEAD) |
format | string | "markdown" | "markdown" 或 "json" |
示例提示词: “生成从 v1.1.4 开始的变更日志”
流工具
| 工具 | 参数 | 示例提示词 |
|---|---|---|
gitrama_stream_status | none | “我当前在哪个流上?” |
gitrama_stream_switch | name, description | “切换到 hotfix 流” |
gitrama_stream_list | none | “列出我的所有 gitrama 流” |
v1.3.2 工作流
连接全部 15 个工具后,你可以通过聊天完成整个开发循环:
describe intent → stream switch
write code
ask gitrama what changed → diff (HTML panel)
review before push
commit with AI message
push
PR description generated
无需终端。无需手动执行 git 命令。
配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
GTR_CWD | os.getcwd() | git 操作的工作目录 |
GTR_MCP_TRANSPORT | "stdio" | 传输方式:"stdio" 或 "streamable-http" |
GTR_MCP_HOST | "0.0.0.0" | HTTP 主机(使用 streamable-http 时) |
GTR_MCP_PORT | "8765" | HTTP 端口(使用 streamable-http 时) |
HTTP 传输(用于 CI/CD)
GTR_MCP_TRANSPORT=streamable-http GTR_MCP_PORT=8765 gitrama-mcp
然后将客户端连接到 http://localhost:8765/mcp。
要求
- Python 3.10+
- 已安装 Git,且位于 PATH 中
- Gitrama API 密钥或本地 Ollama 实例
设置你的 API 密钥:
gtr config --key YOUR_API_KEY
或使用本地模型:
gtr config --provider ollama --model llama3
开发
git clone https://github.com/ahmaxdev/gitrama-mcp.git
cd gitrama-mcp
pip install -e ".[dev]"
# Test with MCP Inspector
mcp dev src/gitrama_mcp/server.py
许可证
专有许可——参见 LICENSE。
由 Alfonso Harding 构建 · gitrama.ai
🌿
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。