@rethunk/mcp-multi-root-git 2.9.0 → 3.1.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 (56) hide show
  1. package/AGENTS.md +4 -6
  2. package/CHANGELOG.md +65 -0
  3. package/HUMANS.md +4 -4
  4. package/dist/server/batch-commit-tool.js +24 -15
  5. package/dist/server/coverage.js +5 -1
  6. package/dist/server/error-codes.js +6 -9
  7. package/dist/server/git-blame-tool.js +60 -16
  8. package/dist/server/git-branch-list-tool.js +1 -7
  9. package/dist/server/git-cherry-pick-tool.js +1 -1
  10. package/dist/server/git-diff-summary-tool.js +3 -3
  11. package/dist/server/git-diff-tool.js +1 -4
  12. package/dist/server/git-fetch-tool.js +3 -12
  13. package/dist/server/git-inventory-tool.js +4 -4
  14. package/dist/server/git-log-tool.js +2 -2
  15. package/dist/server/git-merge-tool.js +1 -1
  16. package/dist/server/git-parity-tool.js +2 -2
  17. package/dist/server/git-push-tool.js +1 -1
  18. package/dist/server/git-reflog-tool.js +1 -7
  19. package/dist/server/git-reset-soft-tool.js +1 -1
  20. package/dist/server/git-show-tool.js +2 -11
  21. package/dist/server/git-stash-tool.js +3 -12
  22. package/dist/server/git-status-tool.js +2 -2
  23. package/dist/server/git-tag-tool.js +1 -7
  24. package/dist/server/git-worktree-tool.js +3 -7
  25. package/dist/server/git.js +2 -8
  26. package/dist/server/list-presets-tool.js +2 -8
  27. package/dist/server/roots.js +41 -80
  28. package/dist/server/schemas.js +11 -19
  29. package/dist/server/tool-parameter-schemas.js +3 -3
  30. package/dist/server.js +1 -1
  31. package/docs/mcp-tools.md +117 -136
  32. package/package.json +6 -5
  33. package/schemas/batch_commit.json +7 -19
  34. package/schemas/git_blame.json +12 -10
  35. package/schemas/git_branch_list.json +2 -8
  36. package/schemas/git_cherry_pick.json +5 -17
  37. package/schemas/git_diff.json +7 -13
  38. package/schemas/git_diff_summary.json +2 -16
  39. package/schemas/git_fetch.json +1 -7
  40. package/schemas/git_inventory.json +18 -23
  41. package/schemas/git_log.json +24 -29
  42. package/schemas/git_merge.json +3 -15
  43. package/schemas/git_parity.json +18 -23
  44. package/schemas/git_push.json +1 -13
  45. package/schemas/git_reflog.json +1 -7
  46. package/schemas/git_reset_soft.json +2 -14
  47. package/schemas/git_show.json +1 -7
  48. package/schemas/git_stash_apply.json +3 -9
  49. package/schemas/git_stash_list.json +1 -7
  50. package/schemas/git_status.json +18 -23
  51. package/schemas/git_tag.json +1 -7
  52. package/schemas/git_worktree_add.json +4 -16
  53. package/schemas/git_worktree_list.json +1 -7
  54. package/schemas/git_worktree_remove.json +2 -14
  55. package/schemas/list_presets.json +18 -23
  56. package/tool-parameters.schema.json +122 -297
@@ -5,15 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
11
  "format": {
18
12
  "default": "markdown",
19
13
  "type": "string",
@@ -5,15 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
11
  "format": {
18
12
  "default": "markdown",
19
13
  "type": "string",
@@ -27,11 +21,11 @@
27
21
  "description": "Stash index (defaults to 0 for stash@{0}).",
28
22
  "type": "integer",
29
23
  "minimum": 0,
30
- "maximum": 9007199254740991
24
+ "maximum": 10000
31
25
  },
32
26
  "pop": {
33
27
  "default": false,
34
- "description": "If true, runs `git stash pop` instead of `git stash apply` (removes stash after applying).",
28
+ "description": "Run `git stash pop` instead of `git stash apply` (removes stash after applying).",
35
29
  "type": "boolean"
36
30
  }
37
31
  },
@@ -5,15 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
11
  "format": {
18
12
  "default": "markdown",
19
13
  "type": "string",
@@ -4,28 +4,24 @@
4
4
  "description": "Parameter schema for the 'git_status' MCP tool.",
5
5
  "type": "object",
6
6
  "properties": {
7
- "workspaceRoot": {
8
- "description": "Highest-priority override.",
9
- "type": "string"
10
- },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP file roots.",
20
- "type": "boolean"
21
- },
22
- "absoluteGitRoots": {
23
- "description": "Absolute paths to git repo roots. Use for many sibling clones under a non-git parent directory.",
24
- "maxItems": 256,
25
- "type": "array",
26
- "items": {
27
- "type": "string"
28
- }
7
+ "root": {
8
+ "description": "Repo path, array of paths, or \"*\" for all MCP roots.",
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "maxItems": 256,
15
+ "type": "array",
16
+ "items": {
17
+ "type": "string"
18
+ }
19
+ },
20
+ {
21
+ "type": "string",
22
+ "const": "*"
23
+ }
24
+ ]
29
25
  },
30
26
  "format": {
31
27
  "default": "markdown",
@@ -41,7 +37,6 @@
41
37
  }
42
38
  },
43
39
  "required": [
44
- "allWorkspaceRoots",
45
40
  "format",
46
41
  "includeSubmodules"
47
42
  ],
@@ -5,15 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
11
  "format": {
18
12
  "default": "markdown",
19
13
  "type": "string",
@@ -5,20 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP file roots.",
20
- "type": "boolean"
21
- },
22
11
  "format": {
23
12
  "default": "markdown",
24
13
  "type": "string",
@@ -30,20 +19,19 @@
30
19
  "path": {
31
20
  "type": "string",
32
21
  "minLength": 1,
33
- "description": "Filesystem path for the new worktree. Relative paths are resolved from the git toplevel."
22
+ "description": "Filesystem path for the new worktree (relative paths resolved from git toplevel)."
34
23
  },
35
24
  "branch": {
36
25
  "type": "string",
37
26
  "minLength": 1,
38
- "description": "Branch to check out in the new worktree. Created from `baseRef` if absent."
27
+ "description": "Branch to check out; created from `baseRef` if it doesn't exist."
39
28
  },
40
29
  "baseRef": {
41
- "description": "Commit-ish to base the new branch on when it does not yet exist. Default: HEAD.",
30
+ "description": "Commit-ish to base the new branch on. Default: HEAD.",
42
31
  "type": "string"
43
32
  }
44
33
  },
45
34
  "required": [
46
- "allWorkspaceRoots",
47
35
  "format",
48
36
  "path",
49
37
  "branch"
@@ -5,15 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
11
  "format": {
18
12
  "default": "markdown",
19
13
  "type": "string",
@@ -5,20 +5,9 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "workspaceRoot": {
8
- "description": "Highest-priority override.",
8
+ "description": "Repo path. Default: first MCP root / cwd.",
9
9
  "type": "string"
10
10
  },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP file roots.",
20
- "type": "boolean"
21
- },
22
11
  "format": {
23
12
  "default": "markdown",
24
13
  "type": "string",
@@ -34,12 +23,11 @@
34
23
  },
35
24
  "force": {
36
25
  "default": false,
37
- "description": "Pass `--force` to allow removal of worktrees with uncommitted changes.",
26
+ "description": "Allow removal of worktrees with uncommitted changes (`--force`).",
38
27
  "type": "boolean"
39
28
  }
40
29
  },
41
30
  "required": [
42
- "allWorkspaceRoots",
43
31
  "format",
44
32
  "path",
45
33
  "force"
@@ -4,28 +4,24 @@
4
4
  "description": "Parameter schema for the 'list_presets' MCP tool.",
5
5
  "type": "object",
6
6
  "properties": {
7
- "workspaceRoot": {
8
- "description": "Highest-priority override.",
9
- "type": "string"
10
- },
11
- "rootIndex": {
12
- "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
13
- "type": "integer",
14
- "minimum": 0,
15
- "maximum": 9007199254740991
16
- },
17
- "allWorkspaceRoots": {
18
- "default": false,
19
- "description": "Fan out across all MCP file roots.",
20
- "type": "boolean"
21
- },
22
- "absoluteGitRoots": {
23
- "description": "Absolute paths to git repo roots. Use for many sibling clones under a non-git parent directory.",
24
- "maxItems": 256,
25
- "type": "array",
26
- "items": {
27
- "type": "string"
28
- }
7
+ "root": {
8
+ "description": "Repo path, array of paths, or \"*\" for all MCP roots.",
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "maxItems": 256,
15
+ "type": "array",
16
+ "items": {
17
+ "type": "string"
18
+ }
19
+ },
20
+ {
21
+ "type": "string",
22
+ "const": "*"
23
+ }
24
+ ]
29
25
  },
30
26
  "format": {
31
27
  "default": "markdown",
@@ -37,7 +33,6 @@
37
33
  }
38
34
  },
39
35
  "required": [
40
- "allWorkspaceRoots",
41
36
  "format"
42
37
  ],
43
38
  "additionalProperties": false