mcp-pr-description 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -10
- package/dist/adapters/github.js +1 -1
- package/dist/index.js +3 -3
- package/dist/tools/generate-pr.d.ts.map +1 -1
- package/dist/tools/generate-pr.js +29 -1
- package/dist/tools/generate-pr.js.map +1 -1
- package/dist/tools/learn-style.js +1 -1
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -12,12 +12,12 @@ An MCP (Model Context Protocol) server that generates PR descriptions by learnin
|
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
# Clone and build
|
|
15
|
-
git clone
|
|
15
|
+
git clone https://github.com/asutoshb/mcp-pr-description.git
|
|
16
16
|
cd mcp-pr-description
|
|
17
17
|
npm install
|
|
18
18
|
npm run build
|
|
19
19
|
|
|
20
|
-
# Or install globally
|
|
20
|
+
# Or install globally
|
|
21
21
|
npm install -g mcp-pr-description
|
|
22
22
|
```
|
|
23
23
|
|
|
@@ -53,18 +53,28 @@ Add to your MCP config file:
|
|
|
53
53
|
|
|
54
54
|
## Usage
|
|
55
55
|
|
|
56
|
-
In
|
|
56
|
+
In **Augment** or **Cursor**, simply ask:
|
|
57
57
|
|
|
58
58
|
```
|
|
59
|
-
"
|
|
60
|
-
|
|
59
|
+
"Generate PR description"
|
|
60
|
+
```
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
→ Creates PR title + description based on your git changes
|
|
62
|
+
### Other Prompts You Can Use
|
|
64
63
|
|
|
65
|
-
"Save the PR description"
|
|
66
|
-
→ Writes PR_DESCRIPTION.md to your repo root
|
|
67
64
|
```
|
|
65
|
+
"Write PR description"
|
|
66
|
+
"Create a PR for my changes"
|
|
67
|
+
"Generate PR for this branch"
|
|
68
|
+
"Write PR description comparing to develop"
|
|
69
|
+
"Generate PR description and save it"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
> 💡 Use natural language — the AI understands variations of these prompts!
|
|
73
|
+
|
|
74
|
+
The AI will automatically:
|
|
75
|
+
1. Learn your team's PR style (from last 10 merged PRs)
|
|
76
|
+
2. Generate a PR title and description based on your current branch
|
|
77
|
+
3. Save it to `PR_DESCRIPTION.md`
|
|
68
78
|
|
|
69
79
|
## Tools
|
|
70
80
|
|
|
@@ -77,12 +87,42 @@ In your AI assistant, use natural language:
|
|
|
77
87
|
|
|
78
88
|
## How It Works
|
|
79
89
|
|
|
80
|
-
1. **Learn** — Fetches your last
|
|
90
|
+
1. **Learn** — Fetches your last 10 merged PRs via GitHub API
|
|
81
91
|
2. **Extract** — Identifies patterns: sections, tone, title format, ticket references
|
|
82
92
|
3. **Cache** — Saves style to `.pr-style.json` (commit this for team sharing)
|
|
83
93
|
4. **Generate** — Uses cached style + current git info to build PR prompt
|
|
84
94
|
5. **Save** — Writes final PR to `PR_DESCRIPTION.md`
|
|
85
95
|
|
|
96
|
+
## Default Template
|
|
97
|
+
|
|
98
|
+
For new repos with no merged PRs, the tool uses this default format:
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
## 🎯 What
|
|
102
|
+
Brief description of the changes made.
|
|
103
|
+
|
|
104
|
+
## 🤔 Why
|
|
105
|
+
Reason for making these changes.
|
|
106
|
+
|
|
107
|
+
## 🔧 Changes
|
|
108
|
+
- Change 1
|
|
109
|
+
- Change 2
|
|
110
|
+
|
|
111
|
+
## 🧪 Testing
|
|
112
|
+
How the changes were tested.
|
|
113
|
+
|
|
114
|
+
## 🎫 Jira Ticket
|
|
115
|
+
[PROJ-XXX](https://your-org.atlassian.net/browse/PROJ-XXX)
|
|
116
|
+
|
|
117
|
+
## 📸 Screenshots
|
|
118
|
+
Add screenshots if applicable.
|
|
119
|
+
|
|
120
|
+
## 📝 Notes
|
|
121
|
+
Any additional context or notes (optional).
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
> 💡 Once you have merged PRs, run `learn_pr_style` to learn your team's actual format.
|
|
125
|
+
|
|
86
126
|
## Output Files
|
|
87
127
|
|
|
88
128
|
- `.pr-style.json` — Cached team style (add to repo for team sharing)
|
package/dist/adapters/github.js
CHANGED
|
@@ -15,7 +15,7 @@ export class GitHubAdapter {
|
|
|
15
15
|
return { owner: httpsMatch[1], repo: httpsMatch[2] };
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
|
-
async fetchMergedPRs(owner, repo, count =
|
|
18
|
+
async fetchMergedPRs(owner, repo, count = 10) {
|
|
19
19
|
const { data: pullRequests } = await this.octokit.pulls.list({
|
|
20
20
|
owner,
|
|
21
21
|
repo,
|
package/dist/index.js
CHANGED
|
@@ -15,8 +15,8 @@ const TOOLS = [
|
|
|
15
15
|
properties: {
|
|
16
16
|
count: {
|
|
17
17
|
type: 'number',
|
|
18
|
-
description: 'Number of PRs to analyze (default:
|
|
19
|
-
default:
|
|
18
|
+
description: 'Number of PRs to analyze (default: 10)',
|
|
19
|
+
default: 10,
|
|
20
20
|
},
|
|
21
21
|
},
|
|
22
22
|
},
|
|
@@ -77,7 +77,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
77
77
|
try {
|
|
78
78
|
switch (name) {
|
|
79
79
|
case 'learn_pr_style': {
|
|
80
|
-
const count = typeof args.count === 'number' ? args.count :
|
|
80
|
+
const count = typeof args.count === 'number' ? args.count : 10;
|
|
81
81
|
const result = await learnPRStyle(count);
|
|
82
82
|
return {
|
|
83
83
|
content: [{ type: 'text', text: result.displayText }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-pr.d.ts","sourceRoot":"","sources":["../../src/tools/generate-pr.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,UAAU,CAC9B,UAAU,GAAE,MAAe,EAC3B,WAAW,GAAE,OAAe,EAC5B,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAgBD;
|
|
1
|
+
{"version":3,"file":"generate-pr.d.ts","sourceRoot":"","sources":["../../src/tools/generate-pr.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,UAAU,CAC9B,UAAU,GAAE,MAAe,EAC3B,WAAW,GAAE,OAAe,EAC5B,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAgBD;AAwFD,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAuBD"}
|
|
@@ -54,7 +54,35 @@ function buildPrompt(gitInfo, changeSummary, style, includeDiff) {
|
|
|
54
54
|
sections.push('');
|
|
55
55
|
}
|
|
56
56
|
else {
|
|
57
|
-
sections.push('##
|
|
57
|
+
sections.push('## Default PR Template (no learned style found)');
|
|
58
|
+
sections.push('');
|
|
59
|
+
sections.push('Use this format for the PR description:');
|
|
60
|
+
sections.push('');
|
|
61
|
+
sections.push('```markdown');
|
|
62
|
+
sections.push('## 🎯 What');
|
|
63
|
+
sections.push('Brief description of the changes made.');
|
|
64
|
+
sections.push('');
|
|
65
|
+
sections.push('## 🤔 Why');
|
|
66
|
+
sections.push('Reason for making these changes.');
|
|
67
|
+
sections.push('');
|
|
68
|
+
sections.push('## 🔧 Changes');
|
|
69
|
+
sections.push('- Change 1');
|
|
70
|
+
sections.push('- Change 2');
|
|
71
|
+
sections.push('');
|
|
72
|
+
sections.push('## 🧪 Testing');
|
|
73
|
+
sections.push('How the changes were tested.');
|
|
74
|
+
sections.push('');
|
|
75
|
+
sections.push('## 🎫 Jira Ticket');
|
|
76
|
+
sections.push('[PROJ-XXX](https://your-org.atlassian.net/browse/PROJ-XXX)');
|
|
77
|
+
sections.push('');
|
|
78
|
+
sections.push('## 📸 Screenshots');
|
|
79
|
+
sections.push('Add screenshots if applicable.');
|
|
80
|
+
sections.push('');
|
|
81
|
+
sections.push('## 📝 Notes');
|
|
82
|
+
sections.push('Any additional context or notes (optional).');
|
|
83
|
+
sections.push('```');
|
|
84
|
+
sections.push('');
|
|
85
|
+
sections.push('> 💡 Tip: Run `learn_pr_style` to learn your team\'s PR format from merged PRs.');
|
|
58
86
|
sections.push('');
|
|
59
87
|
}
|
|
60
88
|
sections.push(`## Branch: \`${gitInfo.branchName}\``);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-pr.js","sourceRoot":"","sources":["../../src/tools/generate-pr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate-pr.js","sourceRoot":"","sources":["../../src/tools/generate-pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { GitHubAdapter } from '../adapters/github.js';
|
|
|
2
2
|
import { extractStyleFromPRs } from '../utils/style-extractor.js';
|
|
3
3
|
import { saveCachedStyle, formatStyleForDisplay } from '../utils/style-cache.js';
|
|
4
4
|
import { getRepositoryRoot, getRemoteUrl } from '../utils/git.js';
|
|
5
|
-
export async function learnPRStyle(count =
|
|
5
|
+
export async function learnPRStyle(count = 10) {
|
|
6
6
|
try {
|
|
7
7
|
const repoRoot = await getRepositoryRoot();
|
|
8
8
|
const remoteUrl = await getRemoteUrl();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-pr-description",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "MCP server that generates PR descriptions by learning from your team's merged PRs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,8 +24,16 @@
|
|
|
24
24
|
"ai",
|
|
25
25
|
"pr-description"
|
|
26
26
|
],
|
|
27
|
-
"author": "",
|
|
27
|
+
"author": "asutoshb",
|
|
28
28
|
"license": "MIT",
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "git+https://github.com/asutoshb/mcp-pr-description.git"
|
|
32
|
+
},
|
|
33
|
+
"bugs": {
|
|
34
|
+
"url": "https://github.com/asutoshb/mcp-pr-description/issues"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://github.com/asutoshb/mcp-pr-description#readme",
|
|
29
37
|
"dependencies": {
|
|
30
38
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
31
39
|
"@octokit/rest": "^21.0.0"
|