You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- README: add git_log, git_push, git_worktree_*, git_reset_soft to the
one-liner description
- HUMANS: drop inaccurate 'Read-only' in opening line (wrong since v2.2.0
added mutating tools)
- docs/mcp-tools.md: expand overview table from 9 to 14 tools; add
Read-only / Mutating annotations to all table rows (was inconsistent)
Copy file name to clipboardExpand all lines: HUMANS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# @rethunk/mcp-multi-root-git — User guide
2
2
3
-
Read-only MCP git tools for any workspace. **How the server is installed and wired to clients:****[docs/install.md](docs/install.md)** only (do not restate that material here).
3
+
MCP git tools for any workspace. **How the server is installed and wired to clients:****[docs/install.md](docs/install.md)** only (do not restate that material here).
**git** tools over MCP: read-only status, multi-root inventory, `HEAD` parity, presets, structured diff viewer, batch commit, merge, and cherry-pick. **Install and MCP client wiring:****[docs/install.md](docs/install.md)** only — do not duplicate those steps elsewhere.
7
+
**git** tools over MCP: read-only status, multi-root inventory, `HEAD` parity, presets, structured diff viewer, log, push, worktrees, soft-reset, batch commit, merge, and cherry-pick. **Install and MCP client wiring:****[docs/install.md](docs/install.md)** only — do not duplicate those steps elsewhere.
8
8
9
9
**Repository:**[github.com/Rethunk-AI/mcp-multi-root-git](https://github.com/Rethunk-AI/mcp-multi-root-git) · **npmjs (manual releases):**[`@rethunk/mcp-multi-root-git`](https://www.npmjs.com/package/@rethunk/mcp-multi-root-git) · **GitHub Packages (CI on each tag):**[`@rethunk-ai/mcp-multi-root-git`](https://github.com/Rethunk-AI/mcp-multi-root-git/packages) — see [docs/install.md](docs/install.md) and [HUMANS.md](HUMANS.md) Publishing.
|`git_status`|`rethunk-git_git_status`|`git status --short -b` per MCP root and optional submodules (`includeSubmodules`); parallel submodule status. Args include `allWorkspaceRoots`, `rootIndex`, `workspaceRoot`, `format`. |
15
-
|`git_inventory`|`rethunk-git_git_inventory`| Status + ahead/behind per path; default upstream each repo’s `@{u}`; pass **both**`remote` and `branch` for fixed tracking. `nestedRoots`, `preset`, `presetMerge`, `maxRoots`, `format`, plus workspace pick args. |
16
-
|`git_parity`|`rethunk-git_git_parity`| Compare `git rev-parse HEAD` for path pairs. `pairs`, `preset`, `presetMerge`, `format`, plus workspace pick args. |
17
-
|`list_presets`|`rethunk-git_list_presets`| List preset names/counts from `.rethunk/git-mcp-presets.json`; invalid JSON/schema surface as errors. Workspace pick + `format` only. |
18
-
|`git_log`|`rethunk-git_git_log`| Path-filtered, time-windowed `git log` across one or more workspace roots. Returns commit history with author, date, subject, and shortstat. Args: `since`, `paths`, `grep`, `author`, `maxCommits`, `branch`, plus workspace pick args + `format`. |
14
+
|`git_status`|`rethunk-git_git_status`|`git status --short -b` per MCP root and optional submodules (`includeSubmodules`); parallel submodule status. Args include `allWorkspaceRoots`, `rootIndex`, `workspaceRoot`, `format`. **Read-only.**|
15
+
|`git_inventory`|`rethunk-git_git_inventory`| Status + ahead/behind per path; default upstream each repo’s `@{u}`; pass **both**`remote` and `branch` for fixed tracking. `nestedRoots`, `preset`, `presetMerge`, `maxRoots`, `format`, plus workspace pick args. **Read-only.**|
16
+
|`git_parity`|`rethunk-git_git_parity`| Compare `git rev-parse HEAD` for path pairs. `pairs`, `preset`, `presetMerge`, `format`, plus workspace pick args. **Read-only.**|
17
+
|`list_presets`|`rethunk-git_list_presets`| List preset names/counts from `.rethunk/git-mcp-presets.json`; invalid JSON/schema surface as errors. Workspace pick + `format` only. **Read-only.**|
18
+
|`git_log`|`rethunk-git_git_log`| Path-filtered, time-windowed `git log` across one or more workspace roots. Returns commit history with author, date, subject, and shortstat. Args: `since`, `paths`, `grep`, `author`, `maxCommits`, `branch`, plus workspace pick args + `format`. **Read-only.**|
19
19
|`git_diff_summary`|`rethunk-git_git_diff_summary`| Structured, token-efficient diff viewer. Returns per-file diffs with additions/deletions counts, truncated to configurable line limits, with lock files/dist/vendor excluded by default. Args: `range`, `fileFilter`, `maxLinesPerFile`, `maxFiles`, `excludePatterns`, plus workspace pick args + `format`. **Read-only.**|
20
+
|`git_worktree_list`|`rethunk-git_git_worktree_list`| List all worktrees (`git worktree list --porcelain`). Workspace pick + `format`. **Read-only.**|
21
+
|`git_push`|`rethunk-git_git_push`| Push the current branch to its upstream. Optional `remote`, `branch`, `setUpstream` (passes `-u`). Refuses on detached HEAD; never force-pushes. Workspace pick + `format`. **Mutating.**|
22
+
|`git_worktree_add`|`rethunk-git_git_worktree_add`| Create a new linked worktree, creating the branch from `baseRef` if it does not yet exist. Refuses on protected branch names. Args: `path`, `branch`, `baseRef?`, plus workspace pick + `format`. **Mutating.**|
23
+
|`git_worktree_remove`|`rethunk-git_git_worktree_remove`| Remove a registered worktree; refuses to remove the main worktree. Optional `force: true` for dirty trees. Args: `path`, `force?`, plus workspace pick + `format`. **Mutating.**|
24
+
|`git_reset_soft`|`rethunk-git_git_reset_soft`| Soft-reset the current branch to a ref (`HEAD~N`, SHA, branch). Rewound changes land in the staging index; requires a clean working tree. Args: `ref`, plus workspace pick + `format`. **Mutating — not idempotent.**|
20
25
|`batch_commit`|`rethunk-git_batch_commit`| Create multiple sequential git commits in a single call. Each entry stages the listed files then commits with the given message. Stops on first failure. Optional `push: "after"` pushes the current branch to its upstream once every commit lands. Args: `commits` (array of `{message, files}`), `push?`, plus workspace pick args + `format`. **Mutating — not idempotent.**|
21
26
|`git_merge`|`rethunk-git_git_merge`| Merge one or more source branches into a destination. Default strategy `auto` cascades fast-forward → rebase → merge-commit per source, preferring linear history. Refuses on dirty tree; stops on first conflict with structured path report. Optional `deleteMergedBranches` / `deleteMergedWorktrees` cascade cleanup, always skipping protected names (main/master/dev/develop/stable/trunk/prod/production/release\*/hotfix\*). Args: `sources`, `into?`, `strategy?`, `message?`, cleanup flags + workspace pick + `format`. **Mutating.**|
22
27
|`git_cherry_pick`|`rethunk-git_git_cherry_pick`| Play commits from one or more sources onto a destination. Sources may be SHAs, `A..B` ranges, or branch names (expanded to `onto..<branch>`, oldest-first). Uses `--empty=drop` so patch-equivalent re-applies add nothing. Refuses on dirty tree; stops on first conflict, aborting cleanly. Same cleanup flags as `git_merge` (branch-kind sources only, protected names skipped). Args: `sources`, `onto?`, cleanup flags + workspace pick + `format`. **Mutating.**|
0 commit comments