@andrebuzeli/git-mcp 10.0.0 → 10.0.1

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.
@@ -62,6 +62,29 @@ export class GitFixTool {
62
62
  - GITEA_URL env var (default: http://nas-ubuntu:9999)
63
63
  - Git must be installed and accessible
64
64
  `;
65
+ this.inputSchema = {
66
+ type: "object",
67
+ properties: {
68
+ projectPath: {
69
+ type: "string",
70
+ description: "Absolute path to the Git repository (REQUIRED)"
71
+ },
72
+ githubRepo: {
73
+ type: "string",
74
+ description: "GitHub repo in format 'owner/repo' (optional, auto-detected)"
75
+ },
76
+ giteaRepo: {
77
+ type: "string",
78
+ description: "Gitea repo in format 'owner/repo' (optional, auto-detected)"
79
+ },
80
+ autoDetect: {
81
+ type: "boolean",
82
+ description: "Auto-detect repos from existing remotes (optional, default: true)"
83
+ }
84
+ },
85
+ required: ["projectPath"],
86
+ additionalProperties: true
87
+ };
65
88
  }
66
89
  async handle(args) {
67
90
  return handleGitFix(args);
@@ -7,6 +7,53 @@ import { Tool, MCPContext } from '../types.js';
7
7
  export declare class GitHistoryTool implements Tool {
8
8
  name: string;
9
9
  description: string;
10
+ inputSchema: {
11
+ type: "object";
12
+ properties: {
13
+ action: {
14
+ type: string;
15
+ enum: string[];
16
+ description: string;
17
+ };
18
+ projectPath: {
19
+ type: string;
20
+ description: string;
21
+ };
22
+ description: {
23
+ type: string;
24
+ description: string;
25
+ };
26
+ message: {
27
+ type: string;
28
+ description: string;
29
+ };
30
+ title: {
31
+ type: string;
32
+ description: string;
33
+ };
34
+ tags: {
35
+ type: string;
36
+ items: {
37
+ type: string;
38
+ };
39
+ description: string;
40
+ };
41
+ category: {
42
+ type: string;
43
+ description: string;
44
+ };
45
+ owner: {
46
+ type: string;
47
+ description: string;
48
+ };
49
+ repo: {
50
+ type: string;
51
+ description: string;
52
+ };
53
+ };
54
+ required: string[];
55
+ additionalProperties: boolean;
56
+ };
10
57
  handle(params: Record<string, any>, ctx: MCPContext): Promise<any>;
11
58
  private trackChange;
12
59
  private listLocalHistory;
@@ -13,6 +13,51 @@ export class GitHistoryTool {
13
13
  constructor() {
14
14
  this.name = 'git-history';
15
15
  this.description = 'Maintain detailed history of all project changes with remote tracking via issues - automatic dual-provider execution';
16
+ this.inputSchema = {
17
+ type: "object",
18
+ properties: {
19
+ action: {
20
+ type: "string",
21
+ enum: ["track", "list", "sync", "report"],
22
+ description: "History operation to perform"
23
+ },
24
+ projectPath: {
25
+ type: "string",
26
+ description: "Absolute path to the Git repository"
27
+ },
28
+ description: {
29
+ type: "string",
30
+ description: "Description of the change being tracked - optional for track action"
31
+ },
32
+ message: {
33
+ type: "string",
34
+ description: "Alternative name for description - optional for track action"
35
+ },
36
+ title: {
37
+ type: "string",
38
+ description: "Custom title for the history issue - optional for track action"
39
+ },
40
+ tags: {
41
+ type: "array",
42
+ items: { type: "string" },
43
+ description: "Tags to categorize the change - optional for track action"
44
+ },
45
+ category: {
46
+ type: "string",
47
+ description: "Category of the change (e.g., 'feature', 'bugfix', 'refactor') - optional for track action, default: 'general'"
48
+ },
49
+ owner: {
50
+ type: "string",
51
+ description: "Repository owner username - optional, uses env vars if not provided"
52
+ },
53
+ repo: {
54
+ type: "string",
55
+ description: "Repository name - optional, auto-detected from projectPath"
56
+ }
57
+ },
58
+ required: ["projectPath", "action"],
59
+ additionalProperties: true
60
+ };
16
61
  }
17
62
  async handle(params, ctx) {
18
63
  const projectPath = params.projectPath;
@@ -6,6 +6,41 @@ import { Tool, MCPContext } from '../types.js';
6
6
  export declare class GitIgnoreTool implements Tool {
7
7
  name: string;
8
8
  description: string;
9
+ inputSchema: {
10
+ type: "object";
11
+ properties: {
12
+ action: {
13
+ type: string;
14
+ enum: string[];
15
+ description: string;
16
+ };
17
+ projectPath: {
18
+ type: string;
19
+ description: string;
20
+ };
21
+ template: {
22
+ type: string;
23
+ description: string;
24
+ };
25
+ patterns: {
26
+ type: string;
27
+ items: {
28
+ type: string;
29
+ };
30
+ description: string;
31
+ };
32
+ comment: {
33
+ type: string;
34
+ description: string;
35
+ };
36
+ content: {
37
+ type: string;
38
+ description: string;
39
+ };
40
+ };
41
+ required: string[];
42
+ additionalProperties: boolean;
43
+ };
9
44
  handle(params: Record<string, any>, ctx: MCPContext): Promise<{
10
45
  success: boolean;
11
46
  path: string;
@@ -9,6 +9,39 @@ export class GitIgnoreTool {
9
9
  constructor() {
10
10
  this.name = 'git-ignore';
11
11
  this.description = 'Manage .gitignore file - create, add, remove, and update ignore patterns';
12
+ this.inputSchema = {
13
+ type: "object",
14
+ properties: {
15
+ action: {
16
+ type: "string",
17
+ enum: ["read", "create", "ensure", "add", "remove", "update", "clear"],
18
+ description: "Git ignore operation to perform"
19
+ },
20
+ projectPath: {
21
+ type: "string",
22
+ description: "Absolute path to the Git repository"
23
+ },
24
+ template: {
25
+ type: "string",
26
+ description: "Template to use for creating .gitignore (e.g., 'default', 'node', 'python') - optional for create, ensure, clear"
27
+ },
28
+ patterns: {
29
+ type: "array",
30
+ items: { type: "string" },
31
+ description: "Array of file patterns to add or remove - required for add and remove actions"
32
+ },
33
+ comment: {
34
+ type: "string",
35
+ description: "Comment to add before patterns - optional for add action"
36
+ },
37
+ content: {
38
+ type: "string",
39
+ description: "Complete .gitignore content to write - required for update action"
40
+ }
41
+ },
42
+ required: ["projectPath", "action"],
43
+ additionalProperties: true
44
+ };
12
45
  }
13
46
  async handle(params, ctx) {
14
47
  const projectPath = params.projectPath;
@@ -2,5 +2,83 @@ import { Tool, MCPContext } from '../types.js';
2
2
  export declare class GitIssuesTool implements Tool {
3
3
  name: string;
4
4
  description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ projectPath: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ action: {
13
+ type: string;
14
+ enum: string[];
15
+ description: string;
16
+ };
17
+ repo: {
18
+ type: string;
19
+ description: string;
20
+ };
21
+ title: {
22
+ type: string;
23
+ description: string;
24
+ };
25
+ body: {
26
+ type: string;
27
+ description: string;
28
+ };
29
+ assignees: {
30
+ type: string;
31
+ items: {
32
+ type: string;
33
+ };
34
+ description: string;
35
+ };
36
+ labels: {
37
+ type: string;
38
+ items: {
39
+ type: string;
40
+ };
41
+ description: string;
42
+ };
43
+ milestone: {
44
+ type: string;
45
+ description: string;
46
+ };
47
+ issueNumber: {
48
+ type: string;
49
+ description: string;
50
+ };
51
+ state: {
52
+ type: string;
53
+ enum: string[];
54
+ description: string;
55
+ };
56
+ state_filter: {
57
+ type: string;
58
+ enum: string[];
59
+ description: string;
60
+ };
61
+ direction: {
62
+ type: string;
63
+ enum: string[];
64
+ description: string;
65
+ };
66
+ sort: {
67
+ type: string;
68
+ enum: string[];
69
+ description: string;
70
+ };
71
+ since: {
72
+ type: string;
73
+ description: string;
74
+ };
75
+ query: {
76
+ type: string;
77
+ description: string;
78
+ };
79
+ };
80
+ required: string[];
81
+ additionalProperties: boolean;
82
+ };
5
83
  handle(params: Record<string, any>, ctx: MCPContext): Promise<any>;
6
84
  }
@@ -4,6 +4,80 @@ export class GitIssuesTool {
4
4
  constructor() {
5
5
  this.name = 'git-issues';
6
6
  this.description = 'Issue management for GitHub and Gitea - automatic dual-provider execution';
7
+ this.inputSchema = {
8
+ type: "object",
9
+ properties: {
10
+ projectPath: {
11
+ type: "string",
12
+ description: "Absolute path to the project/repository (optional, used to auto-detect repo name)"
13
+ },
14
+ action: {
15
+ type: "string",
16
+ enum: ["create", "list", "get", "update", "close", "comment", "search"],
17
+ description: "Action to perform: create (create issue), list (list issues), get (get issue), update (update issue), close (close issue), comment (add comment), search (search issues)"
18
+ },
19
+ repo: {
20
+ type: "string",
21
+ description: "Repository name (required if projectPath not provided)"
22
+ },
23
+ title: {
24
+ type: "string",
25
+ description: "Issue title (required for create)"
26
+ },
27
+ body: {
28
+ type: "string",
29
+ description: "Issue body/description (optional for create/update/comment)"
30
+ },
31
+ assignees: {
32
+ type: "array",
33
+ items: { type: "string" },
34
+ description: "Assignees usernames (optional for create/update)"
35
+ },
36
+ labels: {
37
+ type: "array",
38
+ items: { type: "string" },
39
+ description: "Issue labels (optional for create/update)"
40
+ },
41
+ milestone: {
42
+ type: "number",
43
+ description: "Milestone number (optional for create/update)"
44
+ },
45
+ issueNumber: {
46
+ type: "number",
47
+ description: "Issue number (required for get/update/close/comment)"
48
+ },
49
+ state: {
50
+ type: "string",
51
+ enum: ["open", "closed"],
52
+ description: "Issue state (optional for update)"
53
+ },
54
+ state_filter: {
55
+ type: "string",
56
+ enum: ["open", "closed", "all"],
57
+ description: "Filter by state (optional for list, default: open)"
58
+ },
59
+ direction: {
60
+ type: "string",
61
+ enum: ["asc", "desc"],
62
+ description: "Sort direction (optional for list, default: desc)"
63
+ },
64
+ sort: {
65
+ type: "string",
66
+ enum: ["created", "updated", "comments"],
67
+ description: "Sort field (optional for list, default: created)"
68
+ },
69
+ since: {
70
+ type: "string",
71
+ description: "Only issues updated after this time (ISO 8601, optional for list)"
72
+ },
73
+ query: {
74
+ type: "string",
75
+ description: "Search query (required for search action)"
76
+ }
77
+ },
78
+ required: ["action"],
79
+ additionalProperties: true
80
+ };
7
81
  }
8
82
  async handle(params, ctx) {
9
83
  params = normalizeToolParams(params);
@@ -2,5 +2,29 @@ import { Tool, MCPContext } from '../types.js';
2
2
  export declare class GitMonitorTool implements Tool {
3
3
  name: string;
4
4
  description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ projectPath: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ action: {
13
+ type: string;
14
+ enum: string[];
15
+ description: string;
16
+ };
17
+ since: {
18
+ type: string;
19
+ description: string;
20
+ };
21
+ until: {
22
+ type: string;
23
+ description: string;
24
+ };
25
+ };
26
+ required: string[];
27
+ additionalProperties: boolean;
28
+ };
5
29
  handle(params: Record<string, any>, ctx: MCPContext): Promise<any>;
6
30
  }
@@ -6,6 +6,30 @@ export class GitMonitorTool {
6
6
  constructor() {
7
7
  this.name = 'git-monitor';
8
8
  this.description = 'Repository monitoring and status operations - automatic dual-provider execution for remote queries';
9
+ this.inputSchema = {
10
+ type: "object",
11
+ properties: {
12
+ projectPath: {
13
+ type: "string",
14
+ description: "Absolute path to the project/repository (REQUIRED)"
15
+ },
16
+ action: {
17
+ type: "string",
18
+ enum: ["log", "status", "commits", "contributors"],
19
+ description: "Monitor operation to perform: log (get activity log), status (get repo status), commits (get commit activity), contributors (get contributor activity)"
20
+ },
21
+ since: {
22
+ type: "string",
23
+ description: "Start date for activity query (ISO 8601, optional)"
24
+ },
25
+ until: {
26
+ type: "string",
27
+ description: "End date for activity query (ISO 8601, optional)"
28
+ }
29
+ },
30
+ required: ["projectPath", "action"],
31
+ additionalProperties: true
32
+ };
9
33
  }
10
34
  async handle(params, ctx) {
11
35
  const action = params.action;
@@ -7,6 +7,52 @@ import { Tool, MCPContext } from '../types.js';
7
7
  export declare class GitUpdateTool implements Tool {
8
8
  name: string;
9
9
  description: string;
10
+ inputSchema: {
11
+ type: "object";
12
+ properties: {
13
+ projectPath: {
14
+ type: string;
15
+ description: string;
16
+ };
17
+ message: {
18
+ type: string;
19
+ description: string;
20
+ };
21
+ commitMessage: {
22
+ type: string;
23
+ description: string;
24
+ };
25
+ branch: {
26
+ type: string;
27
+ description: string;
28
+ };
29
+ files: {
30
+ type: string;
31
+ items: {
32
+ type: string;
33
+ };
34
+ description: string;
35
+ };
36
+ repoName: {
37
+ type: string;
38
+ description: string;
39
+ };
40
+ description: {
41
+ type: string;
42
+ description: string;
43
+ };
44
+ private: {
45
+ type: string;
46
+ description: string;
47
+ };
48
+ owner: {
49
+ type: string;
50
+ description: string;
51
+ };
52
+ };
53
+ required: string[];
54
+ additionalProperties: boolean;
55
+ };
10
56
  handle(params: Record<string, any>, ctx: MCPContext): Promise<any>;
11
57
  private saveUpdateHistory;
12
58
  private createRemoteHistory;
@@ -13,6 +13,50 @@ export class GitUpdateTool {
13
13
  constructor() {
14
14
  this.name = 'git-update';
15
15
  this.description = 'Complete project update workflow (add, commit, push) to GitHub and Gitea with full traceability - automatic dual-provider execution';
16
+ this.inputSchema = {
17
+ type: "object",
18
+ properties: {
19
+ projectPath: {
20
+ type: "string",
21
+ description: "Absolute path to the project/repository (REQUIRED)"
22
+ },
23
+ message: {
24
+ type: "string",
25
+ description: "Commit message (optional, defaults to timestamp-based message)"
26
+ },
27
+ commitMessage: {
28
+ type: "string",
29
+ description: "Alternative commit message parameter (optional)"
30
+ },
31
+ branch: {
32
+ type: "string",
33
+ description: "Branch to update (optional, default: 'master')"
34
+ },
35
+ files: {
36
+ type: "array",
37
+ items: { type: "string" },
38
+ description: "Files to add and commit (optional, default: ['.'])"
39
+ },
40
+ repoName: {
41
+ type: "string",
42
+ description: "Repository name (optional, auto-detected from projectPath)"
43
+ },
44
+ description: {
45
+ type: "string",
46
+ description: "Repository description for auto-creation (optional)"
47
+ },
48
+ private: {
49
+ type: "boolean",
50
+ description: "Make repository private when auto-creating (optional, default: true)"
51
+ },
52
+ owner: {
53
+ type: "string",
54
+ description: "Repository owner for providers (optional, uses env vars)"
55
+ }
56
+ },
57
+ required: ["projectPath"],
58
+ additionalProperties: true
59
+ };
16
60
  }
17
61
  async handle(params, ctx) {
18
62
  const projectPath = params.projectPath;
@@ -6,6 +6,37 @@ import { Tool, MCPContext } from '../types.js';
6
6
  export declare class GitUploadTool implements Tool {
7
7
  name: string;
8
8
  description: string;
9
+ inputSchema: {
10
+ type: "object";
11
+ properties: {
12
+ projectPath: {
13
+ type: string;
14
+ description: string;
15
+ };
16
+ repoName: {
17
+ type: string;
18
+ description: string;
19
+ };
20
+ description: {
21
+ type: string;
22
+ description: string;
23
+ };
24
+ private: {
25
+ type: string;
26
+ description: string;
27
+ };
28
+ branch: {
29
+ type: string;
30
+ description: string;
31
+ };
32
+ commitMessage: {
33
+ type: string;
34
+ description: string;
35
+ };
36
+ };
37
+ required: string[];
38
+ additionalProperties: boolean;
39
+ };
9
40
  handle(params: Record<string, any>, ctx: MCPContext): Promise<any>;
10
41
  private saveUploadHistory;
11
42
  }
@@ -12,6 +12,37 @@ export class GitUploadTool {
12
12
  constructor() {
13
13
  this.name = 'git-upload';
14
14
  this.description = 'Upload complete project to GitHub and Gitea with full traceability - automatic dual-provider execution';
15
+ this.inputSchema = {
16
+ type: "object",
17
+ properties: {
18
+ projectPath: {
19
+ type: "string",
20
+ description: "Absolute path to the project/repository (REQUIRED)"
21
+ },
22
+ repoName: {
23
+ type: "string",
24
+ description: "Repository name (optional, auto-detected from projectPath)"
25
+ },
26
+ description: {
27
+ type: "string",
28
+ description: "Repository description (optional, defaults to timestamp-based message)"
29
+ },
30
+ private: {
31
+ type: "boolean",
32
+ description: "Make repository private (optional, default: true)"
33
+ },
34
+ branch: {
35
+ type: "string",
36
+ description: "Branch to upload (optional, default: 'master')"
37
+ },
38
+ commitMessage: {
39
+ type: "string",
40
+ description: "Commit message (optional, defaults to timestamp-based message)"
41
+ }
42
+ },
43
+ required: ["projectPath"],
44
+ additionalProperties: true
45
+ };
15
46
  }
16
47
  async handle(params, ctx) {
17
48
  const projectPath = params.projectPath;