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 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 <repo-url>
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 (after publishing)
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 your AI assistant, use natural language:
56
+ In **Augment** or **Cursor**, simply ask:
57
57
 
58
58
  ```
59
- "Learn our team's PR style"
60
- → Analyzes last 20 merged PRs, saves patterns to .pr-style.json
59
+ "Generate PR description"
60
+ ```
61
61
 
62
- "Generate a PR for my changes"
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 N merged PRs via GitHub API
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)
@@ -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 = 20) {
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: 20)',
19
- default: 20,
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 : 20;
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;AA4DD,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAuBD"}
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('## Note: No learned style found. Run `learn_pr_style` first for better results.');
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 = 20) {
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.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"