Token导航 LogoToken导航

MCP Server · 开发工具

MCP Git Line Stage

一款基于AI的Git提交自动整理工具,能够智能分析工作区的变更并生成结构化的提交记录,支持行级精准暂存和未跟踪文件处理。

stdio官方级别未说明来源级核验工具 4
PythonClaude开发工具Claude Desktop

快速开始

作者 / 组织
uneco
提供方
uneco
运行时
Python

工具数量

4

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Git Line Stage 属于开发工具类 MCP Server,公开资料标注 4 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

开发工具

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

uv run git_polite.py mcp

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 4 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Git自动运行——让AI将你的更改组织成干净、专注的提交。

概述

git-polite 是一个模型上下文协议(MCP)服务器,为AI代理带来智能git登台。它可以自动将正在进行的混乱工作组织成结构良好的提交,或者在需要时通过逐行分期为您提供手术精度。

特性

  • 自动驾驶模式:让AI分析您的更改并自动创建多个重点提交
  • 线路级分段:按行号进行分期个体增删,具有手术精度
  • 无标记文件支持:新创建文件的阶段部分(不仅仅是修改后的文件)
  • 范围选择:使用范围一次应用多个更改(例如。, 0001-0005,0020-0025)
  • LLM友好输出:基于字节的分页和智能截断保护上下文窗口
  • 二进制文件检测:自动检测并跳过二进制文件
  • MCP集成:与Claude Code、Claude Desktop和其他MCP客户端无缝协作

MCP服务器模式

作为MCP服务器运行,以便与MCP客户端集成:

uv run git_polite.py mcp
MCP工具

服务器公开了四个工具:

  1. list_更改:将未标记的git更改(包括未跟踪的文件)列为编号行

- 智能截断:大差异(>10KB)会自动截断以保护LLM上下文 - 参数: - paths (可选):要筛选的文件路径列表 - page_token (可选):分页标记 - page_size_files (可选,默认值:50):每页最大文件数 - page_size_bytes (可选,默认值:30KB):每页最大累积字节数 - unified (可选,默认值:20):更改周围的上下文行 - 输出包括 truncated: true 带有标记的大文件 reason 解释截断 - 对于截断的文件,请使用 diff 查看完整内容的工具

  1. 差异:查看单个文件的完整差异,不进行截断

- 将其用于在中截断的文件 list_changes 输出 - 返回与相同的编号行格式 list_changes,实现部分分期 - 不像 git diff,此工具提供以下所需的行号 apply_changes - 从不截断输出,适用于具有大量更改的大文件 - 参数: - path (必填):查看差异的文件路径 - unified (可选,默认值:20):更改周围的上下文行 - 返回值:与完全不同 size_bytes 指示实际输出大小

  1. 应用程序_更改:按编号将所选更改应用于git索引(支持未跟踪文件的部分暂存)

- 参数: - path:应用更改的文件路径 - lines:更改数字(格式: NNNN,MMMM,PPPP-QQQQ)

  1. 自动提交:启动自动驾驶模式,将所有更改组织成集中的提交

- 显示最近的提交消息以供样式参考 - 分析所有未记录的变化,并提出逻辑分组建议 - 引导AI从混乱的WIP创建多个原子提交

MCP客户端配置

使用uvx(推荐)

使用 uvx 直接从GitHub运行:

Claude桌面配置:

{
  "mcpServers": {
    "git-polite": {
      "command": "uvx",
      "args": [
        "git-polite@git+https://github.com/uneco/mcp-git-polite.git",
        "mcp"
      ]
    }
  }
}

Claude CLI:

claude mcp add -s user git-polite uvx git-polite@git+https://github.com/uneco/mcp-git-polite.git mcp
使用Docker

或者,使用GitHub容器注册表中的Docker镜像:

{
  "mcpServers": {
    "git-polite": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "${workspaceFolder}:/workspace",
        "-w",
        "/workspace",
        "ghcr.io/uneco/mcp-git-polite:latest",
        "mcp"
      ]
    }
  }
}

运作原理

  1. 列表阶段:该工具解析 git diff 输出(包括未跟踪的文件,通过 git diff --no-index)并对每次加法进行编号(+)和删除(-)按顺序
  2. 截断检查:测量每个文件的差异大小。超过10KB的文件被标记为截断,以保护LLM上下文
  3. 显示:变化以数字和周围的背景线显示。文件被标记为“已添加”(未跟踪)、“已修改”或“已删除”
  4. 分页:结果根据累积字节大小进行分页(默认每页30KB),以防止超出LLM
  5. 应用阶段:指定行号时,该工具:

- 从git索引读取暂存版本(或为未跟踪的文件创建新文件) - 仅应用选定的更改 - 用部分更改更新git索引

输出格式

列表输出

{
  "page_token_next": "optional-token",
  "files": [
    {
      "path": "src/main.py",
      "binary": false,
      "status": "modified",
      "lines": [
        "0001: + new line 1",
        "        context line",
        "0002: - deleted line",
        "0003: + new line 2",
        "        ..."
      ]
    },
    {
      "path": "src/new_file.py",
      "binary": false,
      "status": "added",
      "lines": [
        "0001: + def hello():",
        "0002: +     print('Hello')"
      ]
    },
    {
      "path": "src/refactored_module.py",
      "binary": false,
      "status": "modified",
      "truncated": true,
      "reason": "diff too large (45.2 KB, max 10 KB)",
      "lines": []
    }
  ],
  "stats": {
    "files": 3,
    "lines": 5,
    "truncated_files": 1,
    "page_bytes": 4532
  }
}

当文件显示时 truncated: true,使用 diff 工具查看其完整内容。这 diff 该工具提供了部分分段所需的相同编号行格式 git diff 无法提供。

应用输出

{
  "applied": [
    {
      "file": "src/main.py",
      "applied_count": 3,
      "after_applying": {
        "diff": ["0001: + remaining", "0002: - unstaged", "0003: + changes"],
        "unstaged_lines": 5
      }
    }
  ],
  "skipped": [],
  "stats": {
    "files": 1,
    "changes_applied": 3,
    "changes_skipped": 0
  }
}

需求

  • Python 3.10或更高版本
  • Git(命令行工具)
  • MCP服务器包(mcp>=1.10.0)

发展

# Install dependencies
uv sync

# Run tests (if available)
uv run pytest

# Format code
uv run black git_polite.py

# Type check
uv run mypy git_polite.py

用例

  • AI驱动的提交组织:让AI分析您的WIP并自动创建干净的提交历史记录
  • 增量承诺:将大型更改分解为逻辑、原子提交
  • 部分文件暂存:仅暂存新文件的特定行,同时保持其余行未暂存
  • 代码审查准备:与阶段相关的更改一起进行,即使分散在文件中
  • 重构:以手术精度将格式更改与逻辑更改分开

示例工作流

使用截断文件

当你遇到一个截断的文件(例如,一个有很多更改的大型重构文件):

# Step 1: List all changes
result = list_changes()

# Step 2: Notice a truncated file
# {
#   "path": "src/api_client.py",
#   "truncated": true,
#   "reason": "diff too large (45.2 KB, max 10 KB)",
#   "lines": []
# }

# Step 3: View the complete numbered diff
# Use the diff tool (not git diff) because it provides line numbers needed for partial staging
full_diff = diff(path="src/api_client.py")

# Step 4: Selectively stage related changes (e.g., bug fixes separate from refactoring)
apply_changes(path="src/api_client.py", lines="0001-0050,0120-0135")

分页示例

# Get first page (max 30KB)
page1 = list_changes(page_size_bytes=30720)

# Continue with next page if needed
if page1["page_token_next"]:
    page2 = list_changes(page_token=page1["page_token_next"])

局限性

  • 仅适用于文本文件(检测并跳过二进制文件)
  • 行号是短暂的,每次应用操作后都会发生变化
  • 上下文不匹配(文件漂移)将导致操作安全失败
  • 对于未跟踪的文件,整个文件内容必须存在于工作目录中
  • 大文件(差异大于10KB)在中被截断 list_changes -使用 diff 查看它们的工具

许可证

MIT许可证-有关详细信息,请参阅许可证文件

贡献

欢迎投稿!请随时提交拉取请求。

致谢

内置于 FastMCP 和那个 模型上下文协议.

工具与能力

工具数量

4

资源数量

0

提示词数量

0

能力标签

Git自动化Python本地部署AI辅助开发代码版本控制智能提交开发工具

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 4 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Git Line Stage

MCP World · 本页

4stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Git Line Stage 怎么安装?

公开资料给出的安装命令是 uv run git_polite.py mcp,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Git Line Stage 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

MCP Git Line Stage 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Git Line Stage 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

MCP Git Line Stage 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP