Mcp_merge_request_summarizer

Mcp_merge_request_summarizer

🚀 MCP合并请求摘要生成器

MCP(模型上下文协议)工具,可根据git日志自动生成全面的合并请求摘要。该工具分析提交历史,对更改进行分类,并生成适合合并请求描述的结构化摘要。

🚀 快速开始

MCP合并请求摘要生成器是一款强大的工具,能帮助开发者更高效地处理合并请求。它可以自动分析提交历史,生成详细的摘要。

✨ 主要特性

  • 自动提交分析:分析分支之间的git日志,以了解更改情况。
  • 智能分类:按类型(功能、错误修复、重构等)对提交进行分类。
  • 全面摘要:生成详细的合并请求描述,包含:
    • 概述和统计信息
    • 关键更改和重要提交
    • 分类更改(功能、错误修复、重构)
    • 重大更改检测
    • 文件分类和影响分析
    • 预估审核时间
  • 多种输出格式:支持Markdown和JSON输出。
  • 灵活集成:可独立运行,也可作为MCP服务器使用。
  • 跨平台:与Windows、macOS和Linux兼容。

📦 安装指南

🚀 快速开始(推荐)

  1. 克隆仓库

    git clone https://github.com/yourusername/mcp-merge-request-summarizer.git
    cd mcp-merge-request-summarizer
    
  2. 运行安装脚本

    • Windows:双击install.bat或在PowerShell中运行install.bat
    • Mac/Linux:运行chmod +x install.sh && ./install.sh
  3. 配置编辑器

    • 查看QUICK_START.md获取30秒设置说明。
    • 或查看configs/README.md获取详细配置选项。

手动安装

git clone https://github.com/yourusername/mcp-merge-request-summarizer.git
cd mcp-merge-request-summarizer
pip install -e .

从PyPI安装

pip install mcp-merge-request-summarizer

⚠️ 重要提示

该软件包尚未发布到PyPI。目前,请使用安装脚本或手动安装。

💻 使用示例

作为独立工具使用

# 基本用法(将当前分支与develop分支进行比较)
python -m mcp_mr_summarizer.cli

# 指定不同的分支
python -m mcp_mr_summarizer.cli --base main --current feature/new-feature

# 输出到文件
python -m mcp_mr_summarizer.cli --output mr_summary.md

# JSON输出
python -m mcp_mr_summarizer.cli --format json --output summary.json

# 帮助信息
python -m mcp_mr_summarizer.cli --help

作为MCP服务器使用

  1. 配置MCP客户端(例如,Claude Desktop、Cursor、VSCode):

    {
    "mcp.servers": {
    "merge-request-summarizer": {
    "command": "python",
    "args": ["-m", "mcp_mr_summarizer.server"]
    }
    }
    }
    
  2. 设置工作目录上下文(推荐):

    # 设置工作目录,以便repo_path="."能正常工作
    await set_working_directory("/path/to/your/git/repo")
    
  3. 通过MCP客户端界面使用工具和资源

工具(操作)

  • set_working_directory:设置代理的工作目录上下文。
  • get_working_directory:获取当前工作目录上下文。
  • generate_merge_request_summary:创建完整的合并请求摘要。
  • analyze_git_commits:提供详细的提交分析。

资源(数据)

  • git://repo/status:当前仓库状态和信息。
  • git://commits/{base_branch}..{current_branch}:分支之间的提交历史。
  • git://branches:所有仓库分支的列表。
  • git://files/changed/{base_branch}..{current_branch}:分支之间更改的文件。

📊 示例输出

# feat: 4个新功能和改进

## 概述
此合并请求包含9次提交,更改了35个文件(插入1543行,删除1485行)。

## 关键更改
- 重构MLB、NBA、NHL和NFL中的映射器,以使用对象初始化器语法(bdf5d9c) - 更改3028行。
- 重构赛季统计服务,以使用基类并改进依赖注入(30de323) - 更改1976行。

### 🚀 新功能(4个)
- 添加足球指标提取方法并注册足球赛季统计服务(176930f)。
- 更新服务以使用构造函数注入依赖项(29f1c46)。
- 更新CbStatsDaemon和CbStatsFeedPublicApi以使用异步主机运行方法(22c1202)。
- 重构PoolSeasonStatsController和相关服务(3a28ab4)。

### 🔧 重构(3个)
- 重构MLB、NBA、NHL和NFL中的映射器,以使用对象初始化器语法(bdf5d9c)。
- 重构赛季统计服务,以使用基类并改进依赖注入(30de323)。
- 重构赛季统计服务中的日志记录,以使用一致的大小写(fd7b8b9)。

### 📊 摘要
- **总提交数**:9
- **更改文件数**:35
- **插入行数**:1543
- **删除行数**:1485
- **预估审核时间**:1小时15分钟

🛠️ 配置

快速配置(推荐)

对于VSCode/Cursor

  1. 打开设置(Ctrl/Cmd + ,)。
  2. 对于VSCode:搜索“mcp”并点击“在settings.json中编辑”。
  3. 对于Cursor:转到工具与集成新MCP服务器
  4. 添加以下配置:

VSCode(settings.json)

{
"mcp.servers": {
"merge-request-summarizer": {
"command": "python",
"args": ["-m", "mcp_mr_summarizer.server"]
}
}
}

Cursor(GUI或settings.json)

  • 名称merge-request-summarizer
  • 命令python
  • 参数["-m", "mcp_mr_summarizer.server"]

Cursor(替代JSON格式)

{
"mcpServers": {
"merge-request-summarizer": {
"command": "python",
"args": ["-m", "mcp_mr_summarizer.server"]
}
}
}

对于Claude Desktop

  1. 转到设置 → MCP服务器。
  2. 添加具有以下配置的新服务器:
{
"mcpServers": {
"merge-request-summarizer": {
"command": "python",
"args": ["-m", "mcp_mr_summarizer.server"]
}
}
}

即用型配置文件

configs/文件夹中复制适当的配置:

  • configs/vscode_settings.json - 用于VSCode。
  • configs/cursor_settings.json - 用于Cursor。
  • configs/claude_desktop_config.json - 用于Claude Desktop。

查看configs/README.md获取详细设置说明。

🎯 自定义

添加自定义提交类别

通过修改categorize_commit方法扩展类别:

def categorize_commit(self, commit: CommitInfo) -> List[str]:
categories = []
message_lower = commit.message.lower()

# 添加自定义模式
if any(word in message_lower for word in ['security', 'vulnerability']):
categories.append('security')

# ... 现有模式 ...

return categories

自定义文件类别

添加自定义文件类型类别:

def _categorize_files(self, files: set) -> Dict[str, List[str]]:
categories = {
'Services': [],
'Models': [],
'Controllers': [],
'Tests': [],
'Configuration': [],
'Documentation': [],
'CustomCategory': [],  # 添加自定义类别
'Other': []
}

for file in files:
if 'CustomPattern' in file:  # 添加自定义模式
categories['CustomCategory'].append(file)
# ... 现有模式 ...

return categories

🧪 测试

# 运行测试
python -m pytest tests/

# 运行并生成覆盖率报告
python -m pytest tests/ --cov=mcp_mr_summarizer --cov-report=html

🤝 贡献

  1. 分叉仓库。
  2. 创建功能分支(git checkout -b feature/amazing-feature)。
  3. 进行更改。
  4. 为更改添加测试。
  5. 运行测试套件。
  6. 提交更改(git commit -m 'Add some amazing feature')。
  7. 推送到分支(git push origin feature/amazing-feature)。
  8. 打开拉取请求。

📝 许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。

🙏 致谢

  • 为模型上下文协议(MCP)生态系统构建。
  • 受对更好的合并请求文档需求的启发。
  • 感谢所有贡献者和用户。

📞 支持


为想要更好合并请求摘要的开发者用心打造 ❤️

  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-09-27 02:33

相似服务问题

相关AI产品