mcp pr描述
MCP(模型上下文协议)服务器,通过从团队合并的PR中学习来生成PR描述。
特性
- 学习团队的风格 --分析合并的PR以了解结构、音调和模式
- 以该样式生成PR --使用git diff、分支名称和commit创建匹配的PR
- 自动保存 --当你要求“生成PR描述”时,代理会写道
PR_DESCRIPTION.md在您的仓库中(没有单独的保存步骤) - 与主要或上游相比 --可选地与当前分支被剪切的分支进行差异(
compareToUpstream)对于功能分支PR - 与您的工作空间协同工作 --使用MCP根或
MCP_PR_WORKSPACE因此,服务器在正确的仓库中运行
安装
# Clone and build
git clone https://github.com/asutoshb/mcp-pr-description.git
cd mcp-pr-description
npm install
npm run build
# Or install globally
npm install -g mcp-pr-description设置
1.获取GitHub Token
创建一个 随着 repo 范围。
2.配置MCP
添加到MCP配置文件中:
VS代码(增强): 设置→ 搜索“增强mcp”→ 在settings.json中编辑 光标: ~/.cursor/mcp.json 克劳德桌面: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"pr-description": {
"command": "npx",
"args": ["mcp-pr-description"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here",
"MCP_PR_WORKSPACE": "/absolute/path/to/your/repo"
}
}
}
}- GITHUB令牌 --需要
learn_pr_style(GitHub API)。创建一个 令牌 随着repo范围。 - MCP_PR_WORKSPACE --如果您的客户发送 MCP根如果你看到
fatal: not a git repository,将其设置为您的仓库路径(例如。/Users/you/my-project).更改配置后重新启动客户端。
注: 使用 npx 自动解析包位置。无需指定文件路径。用法
在 光标 或 增强,问:
"Generate PR description"要与特定分支(例如您从中剪切的分支)进行比较,请将其包含在您的请求中: “根据\生成PR描述” (例如。 *“根据'您的基础分支'生成PR描述”*).如果不指定基分支,该工具将使用默认值(设置时为上游,否则为上游 main).
AI将 生成标题和描述并将其保存到 PR_DESCRIPTION.md 在一个流程中。你不需要单独要求“保存”。
其他提示
"Write PR description"
"Create a PR for my changes"
"Generate PR for this branch"
"Generate PR description against "💡 使用自然语言——人工智能能够理解变化。
当你问:
- generate_pr --获取分支名称、提交和文件更改(以及可选的diff)。使用从中学到的风格
.pr-style.json如果存在。 - AI组成 --球队风格的标题和身体。
- save_pr_description --写作
PR_DESCRIPTION.md在您的repo中。代理被指示始终对“生成PR描述”请求执行此操作。
工具
| 工具 | 说明 |
|---|---|
learn_pr_style | 分析合并的PR并学习团队模式。保存到 .pr-style.json。每个仓库运行一次(或样式更改时)。 |
generate_pr | 获取PR上下文(分支、提交、文件)。然后,代理编写标题/正文并调用 save_pr_description.选项: baseBranch (默认值 main), includeDiff, compareToUpstream (这是从diff和branch中截取的)。 |
save_pr_description | 将标题+正文保存到 PR_DESCRIPTION.md。之后由代理人打电话 generate_pr. |
get_pr_style | 展示此仓库的公关风格。 |
generate_pr选项
| 选项 | 默认值 | 描述 |
|---|---|---|
baseBranch | main | 要比较的基础分支(用于差异和提交)。 |
includeDiff | false | 如果 true,在上下文中包含完整的代码差异(较大的提示)。 |
compareToUpstream | false | 如果 true,与 上游 当前分支(从中删除的分支)。回落到 baseBranch 如果没有设置上游。在将PR打开到要素分支时使用,而不是 main. |
运作原理
- 学习 —
learn_pr_style通过GitHub API获取最后10个合并的PR,并提取结构、音调和模式。 - 缓存 --保存到
.pr-style.json在仓库中(提交给团队共享)。 - 生成 --当你询问公关描述时,客服会打电话给你
generate_pr(可选compareToUpstream),获取分支/提交/文件(以及可选的diff),然后使用缓存样式或默认模板编写标题和正文。 - 保存 --代理人打电话来
save_pr_description有了这个标题和正文,写作PR_DESCRIPTION.md在您的repo中。
默认模板
对于没有合并PR的新仓库,该工具使用以下默认格式:
## 🎯 What
Brief description of the changes made.
## 🤔 Why
Reason for making these changes.
## 🔧 Changes
- Change 1
- Change 2
## 🧪 Testing
How the changes were tested.
## 🎫 Jira Ticket
[PROJ-XXX](https://your-org.atlassian.net/browse/PROJ-XXX)
## 📸 Screenshots
Add screenshots if applicable.
## 📝 Notes
Any additional context or notes (optional).💡 合并PR后,运行 learn_pr_style 了解团队的实际格式。输出文件
.pr-style.json--缓存的团队风格(添加到仓库中以进行团队共享)PR_DESCRIPTION.md--生成的PR描述(复制到GitHub)
发展
npm run dev # Watch mode
npm run build # Build for production
npm start # Run server许可证
麻省理工学院
