项目简介
GitHub PR评论智能管理MCP服务器是一个基于Model Context Protocol (MCP) 构建的后端服务,旨在解决开发者在处理GitHub拉取请求(PR)中大量自动化评论(如来自Copilot、安全扫描器等)时遇到的痛点。它将复杂的GitHub操作封装为标准化的MCP工具,允许大型语言模型(LLM)客户端(如Claude)以结构化、上下文感知的方式与之交互,从而实现评论的智能分析、代码修复、回复和线程管理。
主要功能点
- 智能评论分析: 自动判断评论提出的问题是否有效、是否已被修复或已过时,提供置信度和理由。
- 代码上下文获取: 根据评论位置获取相关的代码片段、差异块和PR中的相关改动,为LLM提供决策依据。
- 自动化代码修复: 能够针对特定模式的评论(如未使用的导入、导入位置错误)生成并应用代码修复,并创建Git提交。
- 批量处理与优先级划分: 对多个评论进行批量分析、分类(如安全、质量、缺陷)和优先级排序。
- 评论回复与线程管理: 支持向PR评论线程发布回复消息,并标记评论线程为已解决。
- 完整的PR差异提取: 获取整个拉取请求的统一差异内容。
- Claude Agent集成: 作为底层MCP工具,可与Claude等LLM代理配合,实现更复杂的智能工作流。
安装步骤
- 克隆仓库:
git clone https://github.com/MarkEnverus/claude-mcp-agent-github-comments.git cd claude-mcp-agent-github-comments - 创建并激活Python虚拟环境: 建议使用'uv'工具链(如果没有,可以用'python -m venv'和'pip install'代替)。
uv venv ~/.venvs/github-pr-mcp source ~/.venvs/github-pr-mcp/bin/activate - 安装依赖:
uv pip install -e . - 配置GitHub认证信息: 创建一个 '.env' 文件,并添加你的GitHub个人访问令牌(Personal Access Token)和要操作的仓库信息。
请确保你的GitHub令牌拥有对目标仓库的读写权限,以便服务器能够执行评论、修复等操作。# .env GITHUB_TOKEN="ghp_YOUR_GITHUB_PERSONAL_ACCESS_TOKEN" GITHUB_REPO="owner/repository-name"
服务器配置 (MCP客户端使用)
将以下JSON配置添加到你的MCP客户端(如Claude Desktop/Code)的配置文件中(通常是 '~/Library/Application Support/Claude/claude_desktop_config.json' 或类似路径)。这会告诉客户端如何启动并连接到你的MCP服务器。
{ "mcpServers": { "github-pr-comments": { "command": "python", "args": ["-m", "mcp_server.server"], "env": { "GITHUB_TOKEN": "ghp_xxxxx", // 你的GitHub个人访问令牌 "GITHUB_REPO": "MarkEnverus/my-repo" // 你要操作的GitHub仓库 (owner/repo) } } } }
参数注释:
- 'mcpServers': 这是一个JSON对象,包含你希望配置的所有MCP服务器。
- 'github-pr-comments': 这是该MCP服务器的唯一标识名称,客户端将通过此名称引用它。
- 'command': 启动MCP服务器的可执行命令,这里是'python'。
- 'args': 传递给'command'的参数,'-m mcp_server.server' 指示Python模块'mcp_server.server'作为脚本运行。
- 'env': 环境变量,用于向MCP服务器传递敏感信息或配置,例如'GITHUB_TOKEN'和'GITHUB_REPO'。请替换为你的实际令牌和仓库。
完成配置后,请重启你的MCP客户端,服务器将在客户端需要时自动启动。
基本使用方法 (从MCP客户端调用工具)
一旦MCP服务器配置并运行,你就可以通过MCP客户端直接调用其提供的工具。以下是一些示例调用:
-
获取PR评论: 获取PR #69 的所有评论。
mcp__github-pr__fetch_comments --pr 69 --repo MarkEnverus/my-repo(如果MCP客户端配置中已设置 'GITHUB_REPO' 环境变量,则 '--repo' 参数可省略)
-
分析评论有效性: 分析评论ID为 'abc123' 的有效性。
mcp__github-pr__analyze_comment_validity --comment-id abc123 --pr 69 --repo MarkEnverus/my-repo -
解决评论线程: 解决线程ID为 'xyz789' 的评论。
mcp__github-pr__resolve_thread --comment-id xyz789 --pr 69 --repo MarkEnverus/my-repo
通过这些工具,MCP客户端(如Claude)可以对GitHub PR评论进行精细化管理和自动化操作。
信息
分类
开发者工具