@andrebuzeli/git-mcp 5.0.9 → 5.2.0

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.
Files changed (82) hide show
  1. package/README.md +239 -80
  2. package/dist/__tests__/setup.d.ts +10 -0
  3. package/dist/__tests__/setup.d.ts.map +1 -0
  4. package/dist/__tests__/setup.js +105 -0
  5. package/dist/__tests__/setup.js.map +1 -0
  6. package/dist/config.d.ts +43 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +168 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/providers/gitea-provider.d.ts.map +1 -1
  12. package/dist/providers/gitea-provider.js +3 -18
  13. package/dist/providers/gitea-provider.js.map +1 -1
  14. package/dist/providers/github-provider.d.ts.map +1 -1
  15. package/dist/providers/github-provider.js +3 -27
  16. package/dist/providers/github-provider.js.map +1 -1
  17. package/dist/server.d.ts +8 -1
  18. package/dist/server.d.ts.map +1 -1
  19. package/dist/server.js +102 -6
  20. package/dist/server.js.map +1 -1
  21. package/dist/tools/git-archive.d.ts.map +1 -1
  22. package/dist/tools/git-archive.js +1 -3
  23. package/dist/tools/git-archive.js.map +1 -1
  24. package/dist/tools/git-automations.d.ts +257 -0
  25. package/dist/tools/git-automations.d.ts.map +1 -0
  26. package/dist/tools/git-automations.js +878 -0
  27. package/dist/tools/git-automations.js.map +1 -0
  28. package/dist/tools/git-bisect.d.ts +158 -0
  29. package/dist/tools/git-bisect.d.ts.map +1 -0
  30. package/dist/tools/git-bisect.js +571 -0
  31. package/dist/tools/git-bisect.js.map +1 -0
  32. package/dist/tools/git-branches.d.ts +48 -0
  33. package/dist/tools/git-branches.d.ts.map +1 -1
  34. package/dist/tools/git-branches.js +46 -4
  35. package/dist/tools/git-branches.js.map +1 -1
  36. package/dist/tools/git-changelog.d.ts +253 -0
  37. package/dist/tools/git-changelog.d.ts.map +1 -0
  38. package/dist/tools/git-changelog.js +728 -0
  39. package/dist/tools/git-changelog.js.map +1 -0
  40. package/dist/tools/git-cherry-pick.d.ts +150 -0
  41. package/dist/tools/git-cherry-pick.d.ts.map +1 -0
  42. package/dist/tools/git-cherry-pick.js +455 -0
  43. package/dist/tools/git-cherry-pick.js.map +1 -0
  44. package/dist/tools/git-dependencies.d.ts +233 -0
  45. package/dist/tools/git-dependencies.d.ts.map +1 -0
  46. package/dist/tools/git-dependencies.js +761 -0
  47. package/dist/tools/git-dependencies.js.map +1 -0
  48. package/dist/tools/git-files.d.ts +3 -26
  49. package/dist/tools/git-files.d.ts.map +1 -1
  50. package/dist/tools/git-files.js +26 -201
  51. package/dist/tools/git-files.js.map +1 -1
  52. package/dist/tools/git-hooks.d.ts +146 -0
  53. package/dist/tools/git-hooks.d.ts.map +1 -0
  54. package/dist/tools/git-hooks.js +634 -0
  55. package/dist/tools/git-hooks.js.map +1 -0
  56. package/dist/tools/git-reset.d.ts +17 -1
  57. package/dist/tools/git-reset.d.ts.map +1 -1
  58. package/dist/tools/git-reset.js +69 -2
  59. package/dist/tools/git-reset.js.map +1 -1
  60. package/dist/tools/git-stats-personal.d.ts +210 -0
  61. package/dist/tools/git-stats-personal.d.ts.map +1 -0
  62. package/dist/tools/git-stats-personal.js +718 -0
  63. package/dist/tools/git-stats-personal.js.map +1 -0
  64. package/dist/tools/git-tags.d.ts.map +1 -1
  65. package/dist/tools/git-tags.js +11 -3
  66. package/dist/tools/git-tags.js.map +1 -1
  67. package/dist/tools/git-workflow.d.ts +45 -0
  68. package/dist/tools/git-workflow.d.ts.map +1 -1
  69. package/dist/tools/git-workflow.js +43 -4
  70. package/dist/tools/git-workflow.js.map +1 -1
  71. package/dist/utils/operation-error-handler.d.ts.map +1 -1
  72. package/dist/utils/operation-error-handler.js +55 -0
  73. package/dist/utils/operation-error-handler.js.map +1 -1
  74. package/dist/utils/parameter-validator.d.ts +9 -0
  75. package/dist/utils/parameter-validator.d.ts.map +1 -1
  76. package/dist/utils/parameter-validator.js +430 -7
  77. package/dist/utils/parameter-validator.js.map +1 -1
  78. package/dist/utils/safety-warnings.d.ts +56 -0
  79. package/dist/utils/safety-warnings.d.ts.map +1 -0
  80. package/dist/utils/safety-warnings.js +330 -0
  81. package/dist/utils/safety-warnings.js.map +1 -0
  82. package/package.json +81 -78
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-warnings.d.ts","sourceRoot":"","sources":["../../src/utils/safety-warnings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAkD5C;IAEF;;OAEG;WACW,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,aAAa;IAUlF;;OAEG;WACW,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhE;;OAEG;WACW,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAKlE;;OAEG;WACW,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAsC3D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAoMxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAS5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CAQ7B"}
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ /**
3
+ * Safety Warnings System
4
+ *
5
+ * Provides safety warnings and confirmations for destructive Git operations.
6
+ * Helps prevent accidental data loss by clearly communicating risks.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SafetyWarnings = void 0;
10
+ class SafetyWarnings {
11
+ static DESTRUCTIVE_OPERATIONS = {
12
+ 'git-reset-hard': {
13
+ operation: 'git reset --hard',
14
+ riskLevel: 'CRITICAL',
15
+ irreversible: true,
16
+ dataLoss: true,
17
+ workLoss: true
18
+ },
19
+ 'git-reset-mixed': {
20
+ operation: 'git reset --mixed',
21
+ riskLevel: 'DANGER',
22
+ irreversible: false,
23
+ dataLoss: false,
24
+ workLoss: true
25
+ },
26
+ 'delete-repository': {
27
+ operation: 'delete repository',
28
+ riskLevel: 'CRITICAL',
29
+ irreversible: true,
30
+ dataLoss: true,
31
+ workLoss: true
32
+ },
33
+ 'delete-branch': {
34
+ operation: 'delete branch',
35
+ riskLevel: 'WARNING',
36
+ irreversible: true,
37
+ dataLoss: true,
38
+ workLoss: false
39
+ },
40
+ 'delete-remote-branch': {
41
+ operation: 'delete remote branch',
42
+ riskLevel: 'DANGER',
43
+ irreversible: true,
44
+ dataLoss: true,
45
+ workLoss: false
46
+ },
47
+ 'force-push': {
48
+ operation: 'force push',
49
+ riskLevel: 'CRITICAL',
50
+ irreversible: true,
51
+ dataLoss: true,
52
+ workLoss: false
53
+ },
54
+ 'clean-untracked': {
55
+ operation: 'git clean -f',
56
+ riskLevel: 'DANGER',
57
+ irreversible: true,
58
+ dataLoss: true,
59
+ workLoss: true
60
+ }
61
+ };
62
+ /**
63
+ * Generate safety warning for a destructive operation
64
+ */
65
+ static generateWarning(operationType, context) {
66
+ const operationInfo = this.DESTRUCTIVE_OPERATIONS[operationType];
67
+ if (!operationInfo) {
68
+ throw new Error(`Unknown destructive operation: ${operationType}`);
69
+ }
70
+ return this.createWarningForOperation(operationType, operationInfo, context);
71
+ }
72
+ /**
73
+ * Check if an operation is destructive and requires warning
74
+ */
75
+ static isDestructiveOperation(operation) {
76
+ return Object.keys(this.DESTRUCTIVE_OPERATIONS).includes(operation);
77
+ }
78
+ /**
79
+ * Get operation risk level
80
+ */
81
+ static getRiskLevel(operation) {
82
+ const operationInfo = this.DESTRUCTIVE_OPERATIONS[operation];
83
+ return operationInfo ? operationInfo.riskLevel : null;
84
+ }
85
+ /**
86
+ * Format warning message for display
87
+ */
88
+ static formatWarning(warning) {
89
+ const levelEmoji = this.getLevelEmoji(warning.level);
90
+ const levelColor = this.getLevelColor(warning.level);
91
+ let message = `${levelEmoji} **${warning.title}**\n\n`;
92
+ message += `${warning.message}\n\n`;
93
+ if (warning.whatWillBeLost.length > 0) {
94
+ message += `**⚠️ What will be lost:**\n`;
95
+ warning.whatWillBeLost.forEach(item => {
96
+ message += ` • ${item}\n`;
97
+ });
98
+ message += '\n';
99
+ }
100
+ if (warning.suggestions.length > 0) {
101
+ message += `**💡 Suggestions:**\n`;
102
+ warning.suggestions.forEach(suggestion => {
103
+ message += ` • ${suggestion}\n`;
104
+ });
105
+ message += '\n';
106
+ }
107
+ if (warning.alternatives && warning.alternatives.length > 0) {
108
+ message += `**🔄 Safer alternatives:**\n`;
109
+ warning.alternatives.forEach(alternative => {
110
+ message += ` • ${alternative}\n`;
111
+ });
112
+ message += '\n';
113
+ }
114
+ if (warning.confirmationRequired) {
115
+ message += `**🚨 This operation requires explicit confirmation.**\n`;
116
+ }
117
+ return message;
118
+ }
119
+ /**
120
+ * Create warning for specific operation
121
+ */
122
+ static createWarningForOperation(operationType, operationInfo, context) {
123
+ switch (operationType) {
124
+ case 'git-reset-hard':
125
+ return {
126
+ level: 'CRITICAL',
127
+ operation: 'git reset --hard',
128
+ title: 'CRITICAL: Hard Reset Will Permanently Delete Changes',
129
+ message: 'This operation will permanently delete all uncommitted changes and reset your working directory to the specified commit.',
130
+ whatWillBeLost: [
131
+ 'All uncommitted changes in tracked files',
132
+ 'All staged changes',
133
+ 'Any local modifications since the last commit'
134
+ ],
135
+ suggestions: [
136
+ 'Create a backup or stash your changes first',
137
+ 'Use `git stash` to temporarily save your work',
138
+ 'Check `git status` to see what will be lost',
139
+ 'Consider using `git reset --soft` or `git reset --mixed` for safer alternatives'
140
+ ],
141
+ confirmationRequired: true,
142
+ alternatives: [
143
+ 'git reset --soft HEAD~1 (keeps changes staged)',
144
+ 'git reset --mixed HEAD~1 (keeps changes unstaged)',
145
+ 'git stash (saves changes temporarily)',
146
+ 'git checkout -- <file> (reset specific files only)'
147
+ ]
148
+ };
149
+ case 'git-reset-mixed':
150
+ return {
151
+ level: 'DANGER',
152
+ operation: 'git reset --mixed',
153
+ title: 'DANGER: Mixed Reset Will Unstage Changes',
154
+ message: 'This operation will unstage all staged changes but keep them in your working directory.',
155
+ whatWillBeLost: [
156
+ 'All staged changes (will become unstaged)',
157
+ 'Commit history will be modified'
158
+ ],
159
+ suggestions: [
160
+ 'Check what files are currently staged with `git status`',
161
+ 'Ensure you want to unstage all changes',
162
+ 'Consider committing changes first if they\'re important'
163
+ ],
164
+ confirmationRequired: false,
165
+ alternatives: [
166
+ 'git reset HEAD <file> (unstage specific files only)',
167
+ 'git commit (commit staged changes)',
168
+ 'git stash (save changes temporarily)'
169
+ ]
170
+ };
171
+ case 'delete-repository':
172
+ return {
173
+ level: 'CRITICAL',
174
+ operation: 'delete repository',
175
+ title: 'CRITICAL: Repository Deletion is Permanent',
176
+ message: `This will permanently delete the repository "${context?.repo || 'unknown'}" and all its contents.`,
177
+ whatWillBeLost: [
178
+ 'Entire repository and all files',
179
+ 'All commit history',
180
+ 'All branches and tags',
181
+ 'All issues and pull requests',
182
+ 'All project settings and configurations'
183
+ ],
184
+ suggestions: [
185
+ 'Create a backup of the repository first',
186
+ 'Download/clone the repository locally',
187
+ 'Archive the repository instead of deleting',
188
+ 'Double-check you have the right repository'
189
+ ],
190
+ confirmationRequired: true,
191
+ alternatives: [
192
+ 'Archive repository (preserves data)',
193
+ 'Make repository private (restricts access)',
194
+ 'Transfer repository ownership',
195
+ 'Clone/download repository before deletion'
196
+ ]
197
+ };
198
+ case 'delete-branch':
199
+ return {
200
+ level: 'WARNING',
201
+ operation: 'delete branch',
202
+ title: 'WARNING: Branch Deletion May Cause Data Loss',
203
+ message: `This will permanently delete the branch "${context?.branch || 'unknown'}" and its commit history.`,
204
+ whatWillBeLost: [
205
+ 'Branch and its commit history',
206
+ 'Any unmerged commits on this branch'
207
+ ],
208
+ suggestions: [
209
+ 'Ensure the branch has been merged to main/master',
210
+ 'Check for any unmerged commits with `git log main..branch-name`',
211
+ 'Create a backup branch before deletion',
212
+ 'Verify no one else is working on this branch'
213
+ ],
214
+ confirmationRequired: true,
215
+ alternatives: [
216
+ 'Merge branch to main first',
217
+ 'Create backup branch before deletion',
218
+ 'Archive branch instead of deleting'
219
+ ]
220
+ };
221
+ case 'delete-remote-branch':
222
+ return {
223
+ level: 'DANGER',
224
+ operation: 'delete remote branch',
225
+ title: 'DANGER: Remote Branch Deletion Affects All Users',
226
+ message: `This will delete the remote branch "${context?.branch || 'unknown'}" for all repository users.`,
227
+ whatWillBeLost: [
228
+ 'Remote branch access for all team members',
229
+ 'Remote tracking branches',
230
+ 'Any CI/CD configurations tied to this branch'
231
+ ],
232
+ suggestions: [
233
+ 'Coordinate with team members before deletion',
234
+ 'Ensure no active pull requests depend on this branch',
235
+ 'Check if branch is referenced in documentation',
236
+ 'Verify CI/CD pipelines don\'t depend on this branch'
237
+ ],
238
+ confirmationRequired: true,
239
+ alternatives: [
240
+ 'Coordinate deletion with team first',
241
+ 'Archive branch instead of deleting',
242
+ 'Make branch read-only instead'
243
+ ]
244
+ };
245
+ case 'force-push':
246
+ return {
247
+ level: 'CRITICAL',
248
+ operation: 'force push',
249
+ title: 'CRITICAL: Force Push Will Overwrite Remote History',
250
+ message: 'This will forcefully overwrite the remote branch history, potentially losing commits.',
251
+ whatWillBeLost: [
252
+ 'Remote commit history may be lost',
253
+ 'Other developers\' work may be overwritten',
254
+ 'Any commits that exist only on the remote'
255
+ ],
256
+ suggestions: [
257
+ 'Coordinate with all team members before force pushing',
258
+ 'Ensure no one else has pushed to the remote branch',
259
+ 'Consider using `git push --force-with-lease` for safer force push',
260
+ 'Create a backup branch before force pushing'
261
+ ],
262
+ confirmationRequired: true,
263
+ alternatives: [
264
+ 'git push --force-with-lease (safer force push)',
265
+ 'git rebase -i (rebase instead of force push)',
266
+ 'Coordinate with team and merge normally'
267
+ ]
268
+ };
269
+ case 'clean-untracked':
270
+ return {
271
+ level: 'DANGER',
272
+ operation: 'git clean -f',
273
+ title: 'DANGER: Clean Will Permanently Delete Untracked Files',
274
+ message: 'This will permanently delete all untracked files and directories.',
275
+ whatWillBeLost: [
276
+ 'All untracked files',
277
+ 'All untracked directories',
278
+ 'Any temporary files or build artifacts'
279
+ ],
280
+ suggestions: [
281
+ 'Review what will be deleted with `git clean -n` first',
282
+ 'Backup important untracked files',
283
+ 'Add important files to .gitignore before cleaning',
284
+ 'Use `git clean -i` for interactive cleaning'
285
+ ],
286
+ confirmationRequired: true,
287
+ alternatives: [
288
+ 'git clean -n (dry run to see what would be deleted)',
289
+ 'git clean -i (interactive mode)',
290
+ 'git clean -d (include directories)',
291
+ 'Manually delete specific files'
292
+ ]
293
+ };
294
+ default:
295
+ return {
296
+ level: 'WARNING',
297
+ operation: operationType,
298
+ title: 'WARNING: Potentially Destructive Operation',
299
+ message: 'This operation may cause data loss or permanent changes.',
300
+ whatWillBeLost: ['Unknown data may be lost'],
301
+ suggestions: ['Review the operation carefully before proceeding'],
302
+ confirmationRequired: true
303
+ };
304
+ }
305
+ }
306
+ /**
307
+ * Get emoji for warning level
308
+ */
309
+ static getLevelEmoji(level) {
310
+ switch (level) {
311
+ case 'WARNING': return '⚠️';
312
+ case 'DANGER': return '🚨';
313
+ case 'CRITICAL': return '💥';
314
+ default: return '⚠️';
315
+ }
316
+ }
317
+ /**
318
+ * Get color indicator for warning level
319
+ */
320
+ static getLevelColor(level) {
321
+ switch (level) {
322
+ case 'WARNING': return 'yellow';
323
+ case 'DANGER': return 'orange';
324
+ case 'CRITICAL': return 'red';
325
+ default: return 'yellow';
326
+ }
327
+ }
328
+ }
329
+ exports.SafetyWarnings = SafetyWarnings;
330
+ //# sourceMappingURL=safety-warnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-warnings.js","sourceRoot":"","sources":["../../src/utils/safety-warnings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,79 +1,82 @@
1
- {
2
- "name": "@andrebuzeli/git-mcp",
3
- "version": "5.0.9",
4
- "description": "Professional MCP server for Git operations with multi-provider support",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "bin": {
8
- "git-mcp": "dist/index.js"
9
- },
10
- "files": [
11
- "dist/",
12
- "README.md",
13
- "LICENSE",
14
- "package.json"
15
- ],
16
- "scripts": {
17
- "build": "tsc",
18
- "start": "node dist/index.js",
19
- "dev": "ts-node src/index.ts",
20
- "test": "jest",
21
- "test:watch": "jest --watch",
22
- "semantic-release": "semantic-release",
23
- "prepublishOnly": "npm run build",
24
- "clean": "rimraf dist"
25
- ,
26
- "release": "npm run build && npm version patch && git push origin --follow-tags"
27
- },
28
- "keywords": [
29
- "mcp",
30
- "git",
31
- "github",
32
- "gitea",
33
- "model-context-protocol",
34
- "ai-agent",
35
- "version-control",
36
- "automation",
37
- "cli",
38
- "developer-tools",
39
- "workflow",
40
- "repository-management"
41
- ],
42
- "author": "Andre Buzeli",
43
- "license": "MIT",
44
- "repository": {
45
- "type": "git",
46
- "url": "https://github.com/andrebuzeli/git-mcp.git"
47
- },
48
- "bugs": {
49
- "url": "https://github.com/andrebuzeli/git-mcp/issues"
50
- },
51
- "homepage": "https://github.com/andrebuzeli/git-mcp#readme",
52
- "dependencies": {
53
- "@modelcontextprotocol/sdk": "^0.4.0",
54
- "@octokit/rest": "^20.0.0",
55
- "axios": "^1.6.0",
56
- "simple-git": "^3.20.0"
57
- },
58
- "devDependencies": {
59
- "semantic-release": "^20.1.0",
60
- "@semantic-release/npm": "^10.0.0",
61
- "@semantic-release/github": "^9.0.0",
62
- "@semantic-release/commit-analyzer": "^10.0.0",
63
- "@semantic-release/release-notes-generator": "^10.0.0",
64
- "@types/node": "^20.0.0",
65
- "@types/jest": "^29.0.0",
66
- "typescript": "^5.0.0",
67
- "jest": "^29.0.0",
68
- "ts-node": "^10.0.0",
69
- "ts-jest": "^29.0.0",
70
- "rimraf": "^5.0.0"
71
- },
72
- "engines": {
73
- "node": ">=18.0.0"
74
- }
75
- ,
76
- "publishConfig": {
77
- "access": "public"
78
- }
1
+ {
2
+ "name": "@andrebuzeli/git-mcp",
3
+ "version": "5.2.0",
4
+ "description": "Professional MCP server for Git operations with multi-provider support, enhanced security, and comprehensive safety features",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "git-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist/",
12
+ "README.md",
13
+ "LICENSE",
14
+ "package.json"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "start": "node dist/index.js",
19
+ "dev": "ts-node src/index.ts",
20
+ "test": "jest",
21
+ "test:watch": "jest --watch",
22
+ "semantic-release": "semantic-release",
23
+ "prepublishOnly": "npm run build",
24
+ "clean": "rimraf dist"
25
+ ,
26
+ "release": "npm run build && npm version patch && git push origin --follow-tags"
27
+ },
28
+ "keywords": [
29
+ "mcp",
30
+ "git",
31
+ "github",
32
+ "gitea",
33
+ "model-context-protocol",
34
+ "ai-agent",
35
+ "version-control",
36
+ "automation",
37
+ "cli",
38
+ "developer-tools",
39
+ "workflow",
40
+ "repository-management"
41
+ ],
42
+ "author": "Andre Buzeli",
43
+ "license": "MIT",
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "https://github.com/andrebuzeli/git-mcp.git"
47
+ },
48
+ "bugs": {
49
+ "url": "https://github.com/andrebuzeli/git-mcp/issues"
50
+ },
51
+ "homepage": "https://github.com/andrebuzeli/git-mcp#readme",
52
+ "dependencies": {
53
+ "@modelcontextprotocol/sdk": "^0.4.0",
54
+ "@octokit/rest": "^20.0.0",
55
+ "axios": "^1.6.0",
56
+ "simple-git": "^3.20.0",
57
+ "conventional-commits-parser": "^4.0.0",
58
+ "semver": "^7.5.0",
59
+ "node-cron": "^3.0.0"
60
+ },
61
+ "devDependencies": {
62
+ "semantic-release": "^20.1.0",
63
+ "@semantic-release/npm": "^10.0.0",
64
+ "@semantic-release/github": "^9.0.0",
65
+ "@semantic-release/commit-analyzer": "^10.0.0",
66
+ "@semantic-release/release-notes-generator": "^10.0.0",
67
+ "@types/node": "^20.0.0",
68
+ "@types/jest": "^29.0.0",
69
+ "typescript": "^5.0.0",
70
+ "jest": "^29.0.0",
71
+ "ts-node": "^10.0.0",
72
+ "ts-jest": "^29.0.0",
73
+ "rimraf": "^5.0.0"
74
+ },
75
+ "engines": {
76
+ "node": ">=18.0.0"
77
+ }
78
+ ,
79
+ "publishConfig": {
80
+ "access": "public"
81
+ }
79
82
  }