@rethunk/mcp-multi-root-git 2.6.0 → 2.8.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 (38) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +21 -0
  3. package/README.md +1 -1
  4. package/dist/server/batch-commit-tool.js +7 -6
  5. package/dist/server/error-codes.js +95 -0
  6. package/dist/server/git-blame-tool.js +227 -0
  7. package/dist/server/git-branch-list-tool.js +140 -0
  8. package/dist/server/git-cherry-pick-tool.js +11 -10
  9. package/dist/server/git-diff-summary-tool.js +3 -2
  10. package/dist/server/git-diff-tool.js +56 -12
  11. package/dist/server/git-fetch-tool.js +142 -14
  12. package/dist/server/git-inventory-tool.js +5 -4
  13. package/dist/server/git-log-tool.js +10 -5
  14. package/dist/server/git-merge-tool.js +15 -14
  15. package/dist/server/git-parity-tool.js +3 -2
  16. package/dist/server/git-push-tool.js +9 -5
  17. package/dist/server/git-reflog-tool.js +126 -0
  18. package/dist/server/git-reset-soft-tool.js +4 -3
  19. package/dist/server/git-show-tool.js +83 -23
  20. package/dist/server/git-stash-tool.js +2 -1
  21. package/dist/server/git-tag-tool.js +8 -7
  22. package/dist/server/git-worktree-tool.js +8 -7
  23. package/dist/server/git.js +70 -4
  24. package/dist/server/list-presets-tool.js +2 -1
  25. package/dist/server/presets-resource.js +3 -2
  26. package/dist/server/presets.js +11 -5
  27. package/dist/server/roots.js +11 -10
  28. package/dist/server/tool-parameter-schemas.js +9 -0
  29. package/dist/server/tools.js +6 -0
  30. package/docs/mcp-tools.md +119 -6
  31. package/package.json +2 -2
  32. package/schemas/git_blame.json +52 -0
  33. package/schemas/git_branch_list.json +36 -0
  34. package/schemas/git_diff.json +14 -1
  35. package/schemas/git_reflog.json +44 -0
  36. package/schemas/git_show.json +12 -1
  37. package/schemas/index.json +15 -0
  38. package/tool-parameters.schema.json +152 -2
@@ -410,13 +410,26 @@
410
410
  "type": "string"
411
411
  },
412
412
  "path": {
413
- "description": "Scope diff to a single file path (e.g. \"src/main.ts\").",
413
+ "description": "Scope diff to a single file path (e.g. \"src/main.ts\"). For multiple files, prefer `paths`. If both `path` and `paths` are given, they are unioned.",
414
414
  "type": "string"
415
415
  },
416
+ "paths": {
417
+ "description": "Scope diff to multiple file paths (e.g. [\"src/a.ts\", \"src/b.ts\"]). Each path is validated and must lie within the repository root. If both `path` and `paths` are given, they are unioned.",
418
+ "type": "array",
419
+ "items": {
420
+ "type": "string"
421
+ }
422
+ },
416
423
  "staged": {
417
424
  "default": false,
418
425
  "description": "If true, show staged changes (git diff --staged). Ignored if `base` is provided.",
419
426
  "type": "boolean"
427
+ },
428
+ "unified": {
429
+ "description": "Number of context lines to show around each change (passed as -U<n> to git diff). Defaults to git's built-in default (3). Use 0 for no context.",
430
+ "type": "integer",
431
+ "minimum": 0,
432
+ "maximum": 100
420
433
  }
421
434
  },
422
435
  "required": [
@@ -453,8 +466,19 @@
453
466
  "description": "Commit reference (SHA, branch, tag, or any git rev-spec)."
454
467
  },
455
468
  "path": {
456
- "description": "Optional file path to inspect at the ref. If provided, shows that path's content at the ref instead of the diff.",
469
+ "description": "Optional single file path to inspect at the ref. Merged with `paths` when both are provided.",
457
470
  "type": "string"
471
+ },
472
+ "paths": {
473
+ "description": "Optional list of file paths to filter the shown diff/stat. Merged with `path` when both are provided.",
474
+ "type": "array",
475
+ "items": {
476
+ "type": "string"
477
+ }
478
+ },
479
+ "stat": {
480
+ "description": "When true, show --stat diffstat (files changed summary) instead of the full patch.",
481
+ "type": "boolean"
458
482
  }
459
483
  },
460
484
  "required": [
@@ -569,6 +593,132 @@
569
593
  ],
570
594
  "additionalProperties": false
571
595
  },
596
+ "git_blame": {
597
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
598
+ "type": "object",
599
+ "properties": {
600
+ "workspaceRoot": {
601
+ "description": "Highest-priority override.",
602
+ "type": "string"
603
+ },
604
+ "rootIndex": {
605
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
606
+ "type": "integer",
607
+ "minimum": 0,
608
+ "maximum": 9007199254740991
609
+ },
610
+ "format": {
611
+ "default": "markdown",
612
+ "type": "string",
613
+ "enum": [
614
+ "markdown",
615
+ "json"
616
+ ]
617
+ },
618
+ "path": {
619
+ "type": "string",
620
+ "minLength": 1,
621
+ "description": "Repo-relative path to the file to blame."
622
+ },
623
+ "ref": {
624
+ "description": "Optional commit-ish (SHA, branch, tag) to blame at.",
625
+ "type": "string"
626
+ },
627
+ "startLine": {
628
+ "description": "First line of the range to blame (1-based). Requires endLine.",
629
+ "type": "integer",
630
+ "minimum": 1,
631
+ "maximum": 9007199254740991
632
+ },
633
+ "endLine": {
634
+ "description": "Last line of the range to blame (1-based, inclusive). Requires startLine.",
635
+ "type": "integer",
636
+ "minimum": 1,
637
+ "maximum": 9007199254740991
638
+ }
639
+ },
640
+ "required": [
641
+ "format",
642
+ "path"
643
+ ],
644
+ "additionalProperties": false
645
+ },
646
+ "git_branch_list": {
647
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
648
+ "type": "object",
649
+ "properties": {
650
+ "workspaceRoot": {
651
+ "description": "Highest-priority override.",
652
+ "type": "string"
653
+ },
654
+ "rootIndex": {
655
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
656
+ "type": "integer",
657
+ "minimum": 0,
658
+ "maximum": 9007199254740991
659
+ },
660
+ "format": {
661
+ "default": "markdown",
662
+ "type": "string",
663
+ "enum": [
664
+ "markdown",
665
+ "json"
666
+ ]
667
+ },
668
+ "includeRemotes": {
669
+ "default": false,
670
+ "description": "When true, also return remote-tracking branches from refs/remotes (excluding symbolic origin/HEAD).",
671
+ "type": "boolean"
672
+ }
673
+ },
674
+ "required": [
675
+ "format",
676
+ "includeRemotes"
677
+ ],
678
+ "additionalProperties": false
679
+ },
680
+ "git_reflog": {
681
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
682
+ "type": "object",
683
+ "properties": {
684
+ "workspaceRoot": {
685
+ "description": "Highest-priority override.",
686
+ "type": "string"
687
+ },
688
+ "rootIndex": {
689
+ "description": "0-based index into the MCP file roots list; ignored when workspaceRoot is set.",
690
+ "type": "integer",
691
+ "minimum": 0,
692
+ "maximum": 9007199254740991
693
+ },
694
+ "format": {
695
+ "default": "markdown",
696
+ "type": "string",
697
+ "enum": [
698
+ "markdown",
699
+ "json"
700
+ ]
701
+ },
702
+ "ref": {
703
+ "default": "HEAD",
704
+ "description": "Ref whose reflog to show (branch name, HEAD, etc.). Default: HEAD.",
705
+ "type": "string"
706
+ },
707
+ "maxEntries": {
708
+ "default": 30,
709
+ "description": "Maximum reflog entries to return (hard cap 200). Default 30.",
710
+ "type": "integer",
711
+ "minimum": 1,
712
+ "maximum": 200
713
+ }
714
+ },
715
+ "required": [
716
+ "format",
717
+ "ref",
718
+ "maxEntries"
719
+ ],
720
+ "additionalProperties": false
721
+ },
572
722
  "batch_commit": {
573
723
  "$schema": "https://json-schema.org/draft/2020-12/schema",
574
724
  "type": "object",