@andrebuzeli/git-mcp 9.1.0 → 10.0.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 (102) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +460 -328
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/config.d.ts +0 -1
  5. package/dist/config.js +0 -1
  6. package/dist/index.d.ts +0 -1
  7. package/dist/index.js +6 -36
  8. package/dist/index.js.map +1 -1
  9. package/dist/prompts/gitPrompts.d.ts +20 -1
  10. package/dist/prompts/gitPrompts.d.ts.map +1 -1
  11. package/dist/prompts/gitPrompts.js +49 -9
  12. package/dist/prompts/gitPrompts.js.map +1 -1
  13. package/dist/providers/giteaProvider.d.ts +1 -18
  14. package/dist/providers/giteaProvider.js +1 -87
  15. package/dist/providers/githubProvider.d.ts +0 -1
  16. package/dist/providers/githubProvider.js +0 -1
  17. package/dist/providers/providerManager.d.ts +0 -15
  18. package/dist/providers/providerManager.js +0 -65
  19. package/dist/resources/toolsGuide.d.ts +0 -1
  20. package/dist/resources/toolsGuide.js +1701 -1702
  21. package/dist/server.d.ts +0 -1
  22. package/dist/server.js +0 -1
  23. package/dist/tools/gitAnalytics.d.ts +0 -29
  24. package/dist/tools/gitAnalytics.js +4 -39
  25. package/dist/tools/gitArchive.d.ts +0 -30
  26. package/dist/tools/gitArchive.d.ts.map +1 -1
  27. package/dist/tools/gitArchive.js +1 -32
  28. package/dist/tools/gitArchive.js.map +1 -1
  29. package/dist/tools/gitBackup.d.ts +2 -35
  30. package/dist/tools/gitBackup.d.ts.map +1 -1
  31. package/dist/tools/gitBackup.js +7 -41
  32. package/dist/tools/gitBackup.js.map +1 -1
  33. package/dist/tools/gitBranches.d.ts +0 -49
  34. package/dist/tools/gitBranches.js +28 -92
  35. package/dist/tools/gitChangelog.d.ts +37 -1
  36. package/dist/tools/gitChangelog.d.ts.map +1 -1
  37. package/dist/tools/gitChangelog.js +67 -2
  38. package/dist/tools/gitChangelog.js.map +1 -1
  39. package/dist/tools/gitConfig.d.ts +2 -31
  40. package/dist/tools/gitConfig.js +9 -38
  41. package/dist/tools/gitFiles.d.ts +0 -37
  42. package/dist/tools/gitFiles.js +1 -39
  43. package/dist/tools/gitFix.d.ts +1 -4
  44. package/dist/tools/gitFix.js +32 -62
  45. package/dist/tools/gitFix.tool.d.ts +2 -26
  46. package/dist/tools/gitFix.tool.js +61 -85
  47. package/dist/tools/gitHistory.d.ts +5 -18
  48. package/dist/tools/gitHistory.js +208 -193
  49. package/dist/tools/gitIgnore.d.ts +0 -24
  50. package/dist/tools/gitIgnore.js +113 -136
  51. package/dist/tools/gitIssues.d.ts +0 -79
  52. package/dist/tools/gitIssues.js +16 -123
  53. package/dist/tools/gitLog.d.ts +30 -1
  54. package/dist/tools/gitLog.d.ts.map +1 -1
  55. package/dist/tools/gitLog.js +46 -2
  56. package/dist/tools/gitLog.js.map +1 -1
  57. package/dist/tools/gitMonitor.d.ts +0 -29
  58. package/dist/tools/gitMonitor.js +18 -47
  59. package/dist/tools/gitPackages.d.ts +146 -34
  60. package/dist/tools/gitPackages.js +147 -280
  61. package/dist/tools/gitPulls.d.ts +0 -66
  62. package/dist/tools/gitPulls.d.ts.map +1 -1
  63. package/dist/tools/gitPulls.js +7 -93
  64. package/dist/tools/gitPulls.js.map +1 -1
  65. package/dist/tools/gitPush.d.ts +0 -1
  66. package/dist/tools/gitPush.js +0 -1
  67. package/dist/tools/gitRelease.d.ts +0 -49
  68. package/dist/tools/gitRelease.js +6 -122
  69. package/dist/tools/gitRemote.d.ts +1 -31
  70. package/dist/tools/gitRemote.js +17 -59
  71. package/dist/tools/gitReset.d.ts +0 -25
  72. package/dist/tools/gitReset.js +8 -33
  73. package/dist/tools/gitStash.d.ts +2 -35
  74. package/dist/tools/gitStash.js +26 -56
  75. package/dist/tools/gitSync.d.ts +0 -29
  76. package/dist/tools/gitSync.js +20 -65
  77. package/dist/tools/gitTags.d.ts +0 -37
  78. package/dist/tools/gitTags.d.ts.map +1 -1
  79. package/dist/tools/gitTags.js +26 -53
  80. package/dist/tools/gitTags.js.map +1 -1
  81. package/dist/tools/gitUpdate.d.ts +6 -11
  82. package/dist/tools/gitUpdate.js +304 -61
  83. package/dist/tools/gitUpload.d.ts +1 -24
  84. package/dist/tools/gitUpload.js +50 -45
  85. package/dist/tools/gitWorkflow.d.ts +0 -27
  86. package/dist/tools/gitWorkflow.js +55 -87
  87. package/dist/types.d.ts +0 -7
  88. package/dist/types.js +0 -1
  89. package/dist/utils/apiHelpers.d.ts +0 -1
  90. package/dist/utils/apiHelpers.js +0 -1
  91. package/dist/utils/errors.d.ts +0 -1
  92. package/dist/utils/errors.js +0 -1
  93. package/dist/utils/gitAdapter.d.ts +14 -13
  94. package/dist/utils/gitAdapter.d.ts.map +1 -1
  95. package/dist/utils/gitAdapter.js +47 -9
  96. package/dist/utils/gitAdapter.js.map +1 -1
  97. package/dist/utils/repoHelpers.d.ts +0 -2
  98. package/dist/utils/repoHelpers.js +3 -16
  99. package/dist/utils/safetyController.d.ts +0 -1
  100. package/dist/utils/safetyController.js +0 -1
  101. package/dist/utils/safetyController.js.map +1 -1
  102. package/package.json +87 -96
@@ -1,3 +1,4 @@
1
+ import simpleGit from 'simple-git';
1
2
  import { MCPError } from '../utils/errors.js';
2
3
  import { getRepoInfo } from '../utils/repoHelpers.js';
3
4
  import axios from 'axios';
@@ -5,34 +6,6 @@ export class GitMonitorTool {
5
6
  constructor() {
6
7
  this.name = 'git-monitor';
7
8
  this.description = 'Repository monitoring and status operations - automatic dual-provider execution for remote queries';
8
- this.inputSchema = {
9
- type: "object",
10
- properties: {
11
- projectPath: {
12
- type: "string",
13
- description: "Absolute path to the project/repository (auto-extracts repo name)"
14
- },
15
- action: {
16
- type: "string",
17
- description: "Monitor operation to perform (REQUIRED)",
18
- enum: ["log", "status", "commits", "contributors"]
19
- },
20
- repo: {
21
- type: "string",
22
- description: "Repository name (auto-detected from projectPath)"
23
- },
24
- since: {
25
- type: "string",
26
- description: "Start date for activity query (ISO 8601, optional for activity)"
27
- },
28
- until: {
29
- type: "string",
30
- description: "End date for activity query (ISO 8601, optional for activity)"
31
- }
32
- },
33
- required: ["projectPath", "action"],
34
- additionalProperties: true
35
- };
36
9
  }
37
10
  async handle(params, ctx) {
38
11
  const action = params.action;
@@ -40,7 +13,7 @@ export class GitMonitorTool {
40
13
  if (!action || !projectPath) {
41
14
  throw new MCPError('VALIDATION_ERROR', 'action and projectPath are required');
42
15
  }
43
- const git = ctx.gitAdapter;
16
+ const git = simpleGit({ baseDir: projectPath });
44
17
  switch (action) {
45
18
  case 'log': {
46
19
  const options = {
@@ -52,19 +25,19 @@ export class GitMonitorTool {
52
25
  options.to = params.until;
53
26
  if (params.author)
54
27
  options.author = params.author;
55
- const log = await git.log(projectPath, options);
28
+ const log = await git.log(options);
56
29
  const results = {
57
30
  success: true,
58
31
  local: {
59
- commits: log,
60
- total: log.length,
32
+ commits: log.all,
33
+ total: log.total,
61
34
  },
62
35
  providers: {}
63
36
  };
64
37
  // Also query remote APIs
65
38
  const repoInfo = getRepoInfo(projectPath);
66
- const githubOwner = await ctx.providerManager.getGitHubUsername();
67
- const giteaOwner = await ctx.providerManager.getGiteaUsername();
39
+ const githubOwner = process.env.GITHUB_USERNAME;
40
+ const giteaOwner = process.env.GITEA_USERNAME;
68
41
  // GitHub
69
42
  if (ctx.providerManager.github && githubOwner) {
70
43
  try {
@@ -121,12 +94,12 @@ export class GitMonitorTool {
121
94
  return results;
122
95
  }
123
96
  case 'status': {
124
- const status = await git.status(projectPath);
97
+ const status = await git.status();
125
98
  const detailed = params.detailed ? {
126
99
  branch: status.current,
127
100
  ahead: status.ahead,
128
101
  behind: status.behind,
129
- staged: status.modified.concat(status.created, status.deleted),
102
+ staged: status.staged,
130
103
  modified: status.modified,
131
104
  deleted: status.deleted,
132
105
  created: status.created,
@@ -147,11 +120,11 @@ export class GitMonitorTool {
147
120
  options.from = params.since;
148
121
  if (params.author)
149
122
  options.author = params.author;
150
- const log = await git.log(projectPath, options);
123
+ const log = await git.log(options);
151
124
  const results = {
152
125
  success: true,
153
126
  local: {
154
- commits: log.map((c) => ({
127
+ commits: log.all.map(c => ({
155
128
  hash: c.hash,
156
129
  date: c.date,
157
130
  message: c.message,
@@ -163,8 +136,8 @@ export class GitMonitorTool {
163
136
  };
164
137
  // Also query remote APIs
165
138
  const repoInfo = getRepoInfo(projectPath);
166
- const githubOwner = await ctx.providerManager.getGitHubUsername();
167
- const giteaOwner = await ctx.providerManager.getGiteaUsername();
139
+ const githubOwner = process.env.GITHUB_USERNAME;
140
+ const giteaOwner = process.env.GITEA_USERNAME;
168
141
  // GitHub
169
142
  if (ctx.providerManager.github && githubOwner) {
170
143
  try {
@@ -219,9 +192,9 @@ export class GitMonitorTool {
219
192
  return results;
220
193
  }
221
194
  case 'contributors': {
222
- const log = await git.log(projectPath);
195
+ const log = await git.log();
223
196
  const contributors = new Map();
224
- log.forEach((commit) => {
197
+ log.all.forEach(commit => {
225
198
  const key = commit.author_email;
226
199
  if (contributors.has(key)) {
227
200
  contributors.get(key).commits++;
@@ -242,8 +215,8 @@ export class GitMonitorTool {
242
215
  };
243
216
  // Also query remote APIs
244
217
  const repoInfo = getRepoInfo(projectPath);
245
- const githubOwner = await ctx.providerManager.getGitHubUsername();
246
- const giteaOwner = await ctx.providerManager.getGiteaUsername();
218
+ const githubOwner = process.env.GITHUB_USERNAME;
219
+ const giteaOwner = process.env.GITEA_USERNAME;
247
220
  // GitHub
248
221
  if (ctx.providerManager.github && githubOwner) {
249
222
  try {
@@ -286,9 +259,7 @@ export class GitMonitorTool {
286
259
  return results;
287
260
  }
288
261
  default:
289
- const validActions = ["log", "status", "commits", "contributors"];
290
- throw new MCPError('VALIDATION_ERROR', `Unsupported action: ${action}. Valid actions: ${validActions.join(', ')}`);
262
+ throw new MCPError('VALIDATION_ERROR', `Unsupported action: ${action}`);
291
263
  }
292
264
  }
293
265
  }
294
- //# sourceMappingURL=gitMonitor.js.map
@@ -1,40 +1,152 @@
1
1
  import { Tool, MCPContext } from '../types.js';
2
- /**
3
- * Git Packages Tool - DUAL-PROVIDER (GitHub + Gitea)
4
- * Manages packages published to GitHub Packages and Gitea Packages
5
- */
6
2
  export declare class GitPackagesTool implements Tool {
7
3
  name: string;
8
4
  description: string;
9
- inputSchema: {
10
- type: "object";
11
- properties: {
12
- projectPath: {
13
- type: string;
14
- description: string;
15
- };
16
- action: {
17
- type: string;
18
- description: string;
19
- enum: string[];
20
- };
21
- packageType: {
22
- type: string;
23
- description: string;
24
- enum: string[];
25
- };
26
- packageName: {
27
- type: string;
28
- description: string;
29
- };
30
- confirm: {
31
- type: string;
32
- description: string;
33
- };
5
+ handle(params: Record<string, any>, ctx: MCPContext): Promise<{
6
+ success: boolean;
7
+ name: any;
8
+ version: any;
9
+ dependencies: any;
10
+ devDependencies: any;
11
+ scripts: any;
12
+ message?: undefined;
13
+ note?: undefined;
14
+ created?: undefined;
15
+ path?: undefined;
16
+ package?: undefined;
17
+ updated?: undefined;
18
+ deleted?: undefined;
19
+ instructions?: undefined;
20
+ projectPath?: undefined;
21
+ } | {
22
+ success: boolean;
23
+ message: string;
24
+ note: string;
25
+ name?: undefined;
26
+ version?: undefined;
27
+ dependencies?: undefined;
28
+ devDependencies?: undefined;
29
+ scripts?: undefined;
30
+ created?: undefined;
31
+ path?: undefined;
32
+ package?: undefined;
33
+ updated?: undefined;
34
+ deleted?: undefined;
35
+ instructions?: undefined;
36
+ projectPath?: undefined;
37
+ } | {
38
+ success: boolean;
39
+ created: boolean;
40
+ path: string;
41
+ package: any;
42
+ name?: undefined;
43
+ version?: undefined;
44
+ dependencies?: undefined;
45
+ devDependencies?: undefined;
46
+ scripts?: undefined;
47
+ message?: undefined;
48
+ note?: undefined;
49
+ updated?: undefined;
50
+ deleted?: undefined;
51
+ instructions?: undefined;
52
+ projectPath?: undefined;
53
+ } | {
54
+ success: boolean;
55
+ updated: boolean;
56
+ path: string;
57
+ package: any;
58
+ name?: undefined;
59
+ version?: undefined;
60
+ dependencies?: undefined;
61
+ devDependencies?: undefined;
62
+ scripts?: undefined;
63
+ message?: undefined;
64
+ note?: undefined;
65
+ created?: undefined;
66
+ deleted?: undefined;
67
+ instructions?: undefined;
68
+ projectPath?: undefined;
69
+ } | {
70
+ success: boolean;
71
+ deleted: boolean;
72
+ path: string;
73
+ name?: undefined;
74
+ version?: undefined;
75
+ dependencies?: undefined;
76
+ devDependencies?: undefined;
77
+ scripts?: undefined;
78
+ message?: undefined;
79
+ note?: undefined;
80
+ created?: undefined;
81
+ package?: undefined;
82
+ updated?: undefined;
83
+ instructions?: undefined;
84
+ projectPath?: undefined;
85
+ } | {
86
+ success: boolean;
87
+ message: string;
88
+ path: string;
89
+ name?: undefined;
90
+ version?: undefined;
91
+ dependencies?: undefined;
92
+ devDependencies?: undefined;
93
+ scripts?: undefined;
94
+ note?: undefined;
95
+ created?: undefined;
96
+ package?: undefined;
97
+ updated?: undefined;
98
+ deleted?: undefined;
99
+ instructions?: undefined;
100
+ projectPath?: undefined;
101
+ } | {
102
+ success: boolean;
103
+ message: string;
104
+ instructions: {
105
+ command: string;
106
+ registry: any;
107
+ access: any;
108
+ tag: any;
109
+ note: string;
110
+ package?: undefined;
111
+ version?: undefined;
112
+ destination?: undefined;
34
113
  };
35
- required: string[];
36
- additionalProperties: boolean;
37
- };
38
- handle(params: Record<string, any>, ctx: MCPContext): Promise<any>;
114
+ projectPath: any;
115
+ name?: undefined;
116
+ version?: undefined;
117
+ dependencies?: undefined;
118
+ devDependencies?: undefined;
119
+ scripts?: undefined;
120
+ note?: undefined;
121
+ created?: undefined;
122
+ path?: undefined;
123
+ package?: undefined;
124
+ updated?: undefined;
125
+ deleted?: undefined;
126
+ } | {
127
+ success: boolean;
128
+ message: string;
129
+ instructions: {
130
+ command: string;
131
+ package: any;
132
+ version: any;
133
+ destination: any;
134
+ note: string;
135
+ registry?: undefined;
136
+ access?: undefined;
137
+ tag?: undefined;
138
+ };
139
+ name?: undefined;
140
+ version?: undefined;
141
+ dependencies?: undefined;
142
+ devDependencies?: undefined;
143
+ scripts?: undefined;
144
+ note?: undefined;
145
+ created?: undefined;
146
+ path?: undefined;
147
+ package?: undefined;
148
+ updated?: undefined;
149
+ deleted?: undefined;
150
+ projectPath?: undefined;
151
+ }>;
39
152
  }
40
- //# sourceMappingURL=gitPackages.d.ts.map