Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.cyanheads/git-mcp-server

NPM · @CYANHEADS/GIT-MCP-SERVER · SCANNED AUG 4

Comprehensive Git MCP server enabling native git tools including clone, commit, worktree, & more.

−10 this week 71 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security88
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 34 of 34 dependencies flagged as unhealthy (34 deprecated). View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability79
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4712 tokens (~162/item across 29 items; 28 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @cyanheads/git-mcp-server

# add to Claude Code
claude mcp add cyanheads-git-mcp-server -- npx -y @cyanheads/git-mcp-server
# add to Codex CLI
codex mcp add cyanheads-git-mcp-server -- npx -y @cyanheads/git-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cyanheads-git-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@cyanheads/git-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add cyanheads-git-mcp-server --command npx --arg -y --arg @cyanheads/git-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  cyanheads-git-mcp-server:
    command: "npx"
    args: ["-y", "@cyanheads/git-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "cyanheads-git-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/git-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Aug 26 +47
    • Provenance: unverified → fail security
    • Known CVEs: unverified → pass security
    • Install scripts: unverified → pass security
    • MCP protocol: unverified → pass functional
    • Stability: unverified → 0.27 functional
    • Maintenance: unverified → pass functional
    • Schema quality: unverified → 100 functional
    • License: unverified → pass functional
    • Tool coverage: unverified → 100 functional
    • Dependency health: partial → 0.00 functional
    • Licence: Apache-2.0 functional
  • 2 Aug 26 −31
    • Provenance: fail → unverified security
    • Known CVEs: pass → unverified security
    • Install scripts: pass → unverified security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • License: pass → unverified functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
    • Maintenance: pass → unverified functional
    • Dependency health: 0.80 → partial functional
    • Licence: Apache-2.0 functional
  • 31 Jul 26 −9
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −18
    • Malware scan: pass → unverified security
  • 28 Jul 26 +30
    • Provenance: unverified → fail security
    • Known CVEs: unverified → pass security
    • Install scripts: unverified → pass security
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → 0.80 functional
    • License: unverified → pass functional
    • Schema quality: unverified → excellent functional
    • Licence: Apache-2.0 functional
  • 27 Jul 26 51

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Aug 2026 · Analysed npm/@cyanheads/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 34 packages

34 packages in the resolved dependency tree · 34 deprecated · 15 stale.

MCP tools — 28 exposed · ~4,675 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
git_add ~139

Stage files for commit. Add file contents to the staging area (index) to prepare for the next commit.

NameTypeReqDescription
allbooleanInclude all items (varies by operation).
forcebooleanAllow adding otherwise ignored files.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
pathsarrayArray of file or directory paths to stage (relative to repository root). Use ["."] to stage all changes. Can be omitted when all or update is true.
updatebooleanStage only modified and deleted files (skip untracked files).
NameTypeReqDescription
stagedFilesarrayyesFiles that were successfully staged.
statusobjectyesRepository status after staging files.
successbooleanyesIndicates if the operation was successful.
totalFilesintegeryesTotal number of files staged.

No examples provided.

git_blame ~127

Show line-by-line authorship information for a file, displaying who last modified each line and when. For large files, use startLine/endLine to limit output.

NameTypeReqDescription
endLineintegerEnd line number (1-indexed).
filePathstringyesPath to the file to blame (relative to repository root).
ignoreWhitespacebooleanIgnore whitespace changes.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
startLineintegerStart line number (1-indexed).
NameTypeReqDescription
filePathstringyesThe file that was blamed.
linesarrayyesArray of blame information for each line.
successbooleanyesIndicates if the operation was successful.
totalLinesintegeryesTotal number of lines in the output.

No examples provided.

git_branch ~246

Manage branches: list all branches, show current branch, create a new branch, delete a branch, or rename a branch.

NameTypeReqDescription
allbooleanFor list mode: show both local and remote branches.
branchNamestringBranch name for create/delete/rename operations.
forcebooleanForce the operation, bypassing safety checks.
limitintegerFor list mode: cap the number of branches returned (applied at the git command). Use on repos with many branches.
mergedFor list mode: show only branches merged into HEAD (true) or specified commit (string).
modestringThe branch operation to perform.
newBranchNamestringNew branch name for rename operation.
noMergedFor list mode: show only branches not merged into HEAD (true) or specified commit (string).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
remotebooleanFor list mode: show only remote branches.
startPointstringStarting point (commit/branch) for new branch creation.
NameTypeReqDescription
branchesarrayList of branches (for list mode).
currentBranchstringName of current branch.
messagestringSuccess message for create/delete/rename modes.
modestringyes
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_changelog_analyze ~235

Gather git history context (commits, tags) and structured review instructions to support LLM-driven changelog analysis. Changelog file should be read separately; this tool provides the supporting git data and analysis framework. Pass one or more review types to control what kind of analysis to perform.

NameTypeReqDescription
branchstringBranch to analyze (defaults to current branch).
maxCommitsintegerMaximum recent commits to fetch for cross-referencing (1-1000).
maxTagsintegerMaximum recent tags to fetch for release context (1-1000). Applied at the git command so large tag catalogs do not bloat the response.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
reviewTypesarrayyesTypes of changelog review to perform. At least one required. Options: security, features, storyline, gaps, breaking_changes, quality.
sinceTagstringOnly include git history since this tag (e.g., "v1.2.0"). Narrows the analysis window.
NameTypeReqDescription
gitContextobjectyesGit history context for changelog cross-referencing.
reviewInstructionsstringyesAnalysis instructions for each requested review type. Guides the LLM on what to look for in the changelog.
reviewTypesarrayyesReview types that were requested.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_checkout ~140

Switch branches or restore working tree files. Can checkout an existing branch, create a new branch, or restore specific files.

NameTypeReqDescription
createBranchbooleanCreate a new branch with the specified name.
forcebooleanForce the operation, bypassing safety checks.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
pathsarraySpecific file paths to checkout/restore (relative to repository root).
targetyesBranch name, commit hash, or tag to checkout.
trackbooleanSet up tracking relationship with remote branch when creating new branch.
NameTypeReqDescription
branchCreatedbooleanyesTrue if a new branch was created.
filesModifiedarrayyesFiles that were modified during checkout.
successbooleanyesIndicates if the operation was successful.
targetstringyesChecked out branch or commit.

No examples provided.

git_cherry_pick ~171

Cherry-pick commits from other branches. Apply specific commits to the current branch without merging entire branches.

NameTypeReqDescription
abortbooleanAbort cherry-pick operation.
commitsarrayyesCommit hashes to cherry-pick.
continueOperationbooleanContinue cherry-pick after resolving conflicts.
mainlineintegerFor merge commits, specify which parent to follow (1 for first parent, 2 for second, etc.).
noCommitbooleanDon't create commit (stage changes only).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
signoffbooleanAdd Signed-off-by line to the commit message.
strategystringMerge strategy to use for cherry-pick.
NameTypeReqDescription
conflictedFilesarrayyesFiles with conflicts that need resolution.
conflictsbooleanyesWhether operation had conflicts.
messagestringHuman-readable next-step guidance, especially for conflicts.
pickedCommitsarrayyesCommits that were successfully cherry-picked.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_clean ~115

Remove untracked files from the working directory. Requires force flag for safety. Use dry-run to preview files that would be removed.

NameTypeReqDescription
directoriesbooleanRemove untracked directories in addition to files.
dryRunbooleanPreview the operation without executing it.
forcebooleanForce the operation, bypassing safety checks.
ignoredbooleanRemove ignored files as well.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
NameTypeReqDescription
directoriesRemovedarrayyesList of directories that were removed.
dryRunbooleanyesWhether this was a dry-run (preview only).
filesRemovedarrayyesList of files that were removed.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_clear_working_dir ~77

Clear the session working directory setting. This resets the context without restarting the server. Subsequent git operations will require an explicit path parameter unless git_set_working_dir is called again.

NameTypeReqDescription
confirmstringyesExplicit confirmation required to clear working directory. Accepted values: 'Y', 'y', 'Yes', or 'yes'.
NameTypeReqDescription
messagestringyesConfirmation message.
previousPathstringThe working directory that was cleared (if one was set).
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_clone ~171

Clone a repository from a remote URL or local path. Accepts HTTP(S), SSH, git://, file://, and bare filesystem paths, with optional shallow cloning.

NameTypeReqDescription
barebooleanCreate a bare repository (no working directory).
branchstringSpecific branch to clone (defaults to remote HEAD).
depthintegerCreate a shallow clone with history truncated to N commits.
mirrorbooleanCreate a mirror clone (implies bare).
pathstringyesDestination path where the repository should be cloned.
urlstringyesSource to clone from: HTTP(S) URL, SSH URL (ssh://… or git@host:path), git:// URL, file:// URL, or a bare filesystem path (e.g. /tmp/repo.git).
NameTypeReqDescription
branchstringyesThe branch that was checked out.
commitHashstringCurrent HEAD commit hash.
pathstringyesLocal path where repository was cloned.
remoteUrlstringyesThe remote URL or path that was cloned.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_commit ~263

Create a new commit with staged changes in the repository. Records a snapshot of the staging area with a commit message. **Commit Message Format:** Pass commit messages as JSON string parameters. Multi-line messages are supported using standard JSON string escaping. **Examples:** - Single line: { "message": "feat: add user authentication" } - Multi-line: { "message": "feat: add user authentication\n\nImplemented OAuth2 flow with JWT tokens.\nAdded tests for login and logout." } Note: Do not use bash heredoc syntax. Literal escape sequences (\n, \t) in the message string are automatically normalized to their actual characters.

NameTypeReqDescription
allowEmptybooleanAllow creating a commit with no changes.
amendbooleanAmend the previous commit instead of creating a new one. Use with caution.
authorobjectOverride commit author (defaults to git config).
filesToStagearrayFile paths to stage before committing (atomic stage+commit operation).
messagestringyesCommit message.
noVerifybooleanBypass pre-commit and commit-msg hooks.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
NameTypeReqDescription
authorstringyesAuthor of the commit.
commitHashstringyesSHA-1 hash of the created commit.
committedFilesarrayyesList of files that were committed.
deletionsintegerNumber of line deletions.
filesChangedintegerNumber of files changed in this commit.
insertionsintegerNumber of line insertions.
messagestringyesThe commit message.
signedbooleanyesWhether the commit was signed. False when GIT_SIGN_COMMITS=false or when signing was attempted and fell back to unsigned on failure.
signingWarningstringPopulated only when signing was requested but failed, and the commit was created unsigned as a fallback.
statusobjectyesRepository status after the commit.
successbooleanyesIndicates if the operation was successful.
timestampintegeryesUnix timestamp when the commit was created.

No examples provided.

git_diff ~272

View differences between commits, branches, or working tree. Shows changes in unified diff format.

NameTypeReqDescription
autoExcludebooleanAutomatically exclude lock files and other generated files (e.g., package-lock.json, yarn.lock, bun.lock, poetry.lock, go.sum) from diff output to reduce context bloat. Set to false if you need to in…
contextLinesintegerNumber of context lines to show around changes.
includeUntrackedbooleanInclude untracked files in the diff. Useful for reviewing all upcoming changes.
nameOnlybooleanShow only names of changed files, not the diff content.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
pathsarrayLimit diff to specific file paths (relative to repository root).
sourcestringSource commit/branch to compare from. If target is specified but not source, compares target against working tree.
stagedbooleanShow diff of staged changes instead of unstaged.
statbooleanShow diffstat (summary of changes) instead of full diff content.
targetstringTarget commit/branch to compare against. If not specified, shows unstaged changes in working tree.
NameTypeReqDescription
deletionsintegerTotal number of line deletions.
diffstringyesThe diff output in unified diff format.
excludedFilesarrayFiles that were automatically excluded from the diff (e.g., lock files). Call again with autoExclude=false to include them.
filesChangedintegeryesNumber of files with differences.
insertionsintegerTotal number of line insertions.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_fetch ~110

Fetch updates from a remote repository. Downloads objects and refs without merging them.

NameTypeReqDescription
depthintegerCreate a shallow clone with history truncated to N commits.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
prunebooleanPrune remote-tracking references that no longer exist on remote.
remotestringRemote name (default: origin).
tagsbooleanFetch all tags from the remote.
NameTypeReqDescription
fetchedRefsarrayyesReferences that were fetched from the remote.
prunedRefsarrayyesReferences that were pruned (deleted locally).
remotestringyesRemote name that was fetched from.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_init ~87

Initialize a new Git repository at the specified path. Creates a .git directory and sets up the initial branch.

NameTypeReqDescription
barebooleanCreate a bare repository (no working directory).
initialBranchstringName of the initial branch (default: main).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
NameTypeReqDescription
initialBranchstringyesName of the initial branch.
isBarebooleanyesWhether this is a bare repository.
pathstringyesPath where repository was initialized.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_log ~270

View commit history with optional filtering by author, date range, file path, or commit message pattern.

NameTypeReqDescription
authorstringFilter commits by author name or email pattern.
branchstringShow commits from a specific branch or ref (defaults to current branch).
filePathstringShow commits that affected a specific file path.
grepstringFilter commits by message pattern (regex supported).
maxCountintegerMaximum number of items to return (1-1000).
onelinebooleanAbbreviated output: return only hash, shortHash, and subject per commit. Significantly reduces response size.
patchbooleanInclude the full diff patch for each commit.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
showSignaturebooleanShow GPG signature verification information for each commit.
sincestringShow commits more recent than a specific date (ISO 8601 format).
skipintegerNumber of items to skip for pagination.
statbooleanInclude file change statistics for each commit.
untilstringShow commits older than a specific date (ISO 8601 format).
NameTypeReqDescription
commitsarrayyesArray of commit objects.
notestringSet when filters returned zero commits. Echoes the criteria and suggests broadening so callers can self-correct without inspecting the request.
successbooleanyesIndicates if the operation was successful.
totalCountintegeryesTotal number of commits returned (may be limited by maxCount).

No examples provided.

git_merge ~148

Merge branches together. Integrates changes from another branch into the current branch with optional merge strategies.

NameTypeReqDescription
abortbooleanAbort an in-progress merge that has conflicts.
branchstringyesBranch to merge into current branch.
messagestringCustom merge commit message.
noFastForwardbooleanPrevent fast-forward merge (create merge commit).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
squashbooleanSquash all commits from the branch into a single commit.
strategystringMerge strategy to use (ort, recursive, octopus, ours, subtree).
NameTypeReqDescription
conflictedFilesarrayyesFiles with conflicts that need resolution.
conflictsbooleanyesWhether merge had conflicts.
fastForwardbooleanyesWhether merge was fast-forward.
mergedFilesarrayyesFiles that were merged.
messagestringyesMerge commit message.
strategystringyesMerge strategy used.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_pull ~112

Pull changes from a remote repository. Fetches and integrates changes into the current branch.

NameTypeReqDescription
branchstringBranch name (default: current branch).
fastForwardOnlybooleanFail if can't fast-forward (no merge commit).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
rebasebooleanUse rebase instead of merge when integrating changes.
remotestringRemote name (default: origin).
NameTypeReqDescription
branchstringyesBranch that was pulled.
conflictedFilesarrayyesFiles with conflicts that need resolution (empty if conflicts is false).
conflictsbooleanyesWhether pull had conflicts.
filesChangedarrayyesFiles that were changed.
remotestringyesRemote name that was pulled from.
strategystringyesIntegration strategy used.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_push ~216

Push changes to a remote repository. Uploads local commits to the remote branch.

NameTypeReqDescription
branchstringBranch name (default: current branch).
confirmedbooleanExplicit confirmation required for force push or branch deletion on protected branches (main, master, production, etc.).
deletebooleanDelete the specified remote branch.
dryRunbooleanPreview the operation without executing it.
forcebooleanForce push (overwrites remote history).
forceWithLeasebooleanSafer force push - only succeeds if remote branch is at expected state.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
remotestringRemote name (default: origin).
remoteBranchstringRemote branch name to push to (if different from local branch name).
setUpstreambooleanSet upstream tracking relationship for the branch.
tagsbooleanPush all tags to the remote.
NameTypeReqDescription
branchstringyesBranch that was pushed.
pushedRefsarrayyesReferences that were successfully pushed.
rejectedRefsarrayyesReferences that were rejected by the remote.
remotestringyesRemote name that was pushed to.
successbooleanyesIndicates if the operation was successful.
upstreamSetbooleanyesWhether upstream tracking was set for the branch.

No examples provided.

git_rebase ~158

Rebase commits onto another branch. Reapplies commits on top of another base tip for a cleaner history.

NameTypeReqDescription
branchstringBranch to rebase (default: current branch).
interactivebooleanInteractive rebase (not supported in all providers).
modestringRebase operation mode: 'start', 'continue', 'abort', or 'skip'.
ontostringRebase onto different commit than upstream.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
preservebooleanPreserve merge commits during rebase.
upstreamstringUpstream branch to rebase onto (required for start mode).
NameTypeReqDescription
conflictedFilesarrayyesFiles with conflicts that need resolution.
conflictsbooleanyesWhether rebase had conflicts.
currentCommitstringCurrent commit hash if rebase stopped due to conflict.
messagestringHuman-readable next-step guidance, especially for conflicts.
rebasedCommitsintegeryesNumber of commits that were rebased.
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_reflog ~97

View the reference logs (reflog) to track when branch tips and other references were updated. Useful for recovering lost commits.

NameTypeReqDescription
maxCountintegerMaximum number of items to return (1-1000).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
refstringReference whose reflog to show. Defaults to HEAD.
NameTypeReqDescription
entriesarrayyesArray of reflog entries in reverse chronological order.
refstringyesThe reference that was queried.
successbooleanyesIndicates if the operation was successful.
totalEntriesintegeryesTotal number of reflog entries.

No examples provided.

git_remote ~159

Manage remote repositories: list remotes, add new remotes, remove remotes, rename remotes, or get/set remote URLs.

NameTypeReqDescription
modestringThe remote operation to perform.
namestringRemote name for add/remove/rename/get-url/set-url operations.
newNamestringNew remote name for rename operation.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
pushbooleanSet push URL separately (for set-url operation).
urlstringRemote URL for add/set-url operations. Accepts HTTP(S), SSH (ssh://… or git@host:path), git://, or file:// URLs.
NameTypeReqDescription
addedobjectAdded remote (for add mode).
modestringyesOperation mode that was performed.
remotesarrayList of remotes (for list mode).
removedstringRemoved remote name (for remove mode).
renamedobjectRename information (for rename mode).
successbooleanyesIndicates if the operation was successful.
urlstringRemote URL (for get-url mode).

No examples provided.

git_reset ~166

Reset current HEAD to specified state. Can be used to unstage files (soft), discard commits (mixed), or discard all changes (hard).

NameTypeReqDescription
confirmedbooleanExplicit confirmation required for hard, merge, and keep reset modes on protected branches (main, master, production, etc.).
modestringReset mode: soft (keep changes staged), mixed (unstage changes), hard (discard all changes), merge (reset and merge), keep (reset but keep local changes).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
pathsarraySpecific file paths to reset (leaves HEAD unchanged).
targetstringTarget commit to reset to. Defaults to HEAD.
NameTypeReqDescription
filesResetarrayyesFiles affected by the reset. For path-only resets, the listed paths. For commit-move resets, files that differ between the old and new HEAD. For --hard with no HEAD move, files whose pending working-…
modestringyesReset mode that was used.
previousCommitstringCommit hash HEAD pointed to before the reset (omitted if HEAD did not move).
successbooleanyesIndicates if the operation was successful.
targetstringyesCommit hash HEAD points to after the reset.

No examples provided.

git_set_working_dir ~109

Set the session working directory for all git operations so subsequent calls can omit the path parameter. Always returns a repository snapshot (status, recent commits, recent tags, remotes) to orient the caller.

NameTypeReqDescription
initializeIfNotPresentbooleanIf not a Git repository, initialize it with 'git init'.
pathstringyesAbsolute path to the git repository to use as the working directory.
validateGitRepobooleanValidate that the path is a Git repository.
NameTypeReqDescription
enrichmentWarningsarrayActionable notes when snapshot gathering was skipped or partially failed.
messagestringyesConfirmation message.
pathstringyesThe working directory that was set.
repositoryobjectBest-effort repository snapshot. Omitted when the path is not a git repository (see enrichmentWarnings).
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_show ~147

Show details of a git object (commit, tree, blob, or tag). Displays commit information and the diff of changes introduced.

NameTypeReqDescription
filePathstringView specific file at a given commit reference. When provided, shows the file content from the specified object.
formatstringOutput format for the git object. Use "raw" for unprocessed git output.
objectstringyesGit object to show (commit hash, branch, tag, tree, or blob).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
statbooleanShow diffstat instead of full diff.
NameTypeReqDescription
contentstringyesFormatted output showing the object details.
metadataobjectAdditional metadata about the object.
objectstringyesObject identifier.
successbooleanyesIndicates if the operation was successful.
typestringyesType of git object shown.

No examples provided.

git_stash ~184

Manage stashes: list stashes, save current changes (push), restore changes (pop/apply), or remove stashes (drop/clear).

NameTypeReqDescription
includeUntrackedbooleanInclude untracked files in the stash (for push operation).
keepIndexbooleanDon't revert staged changes (for push operation).
limitintegerFor list mode: cap the number of stash entries returned (applied at the git command).
messagestringStash message description (for push operation).
modestringThe stash operation to perform. Defaults to push (save current changes).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
stashRefstringStash reference like stash@{0} (for pop/apply/drop operations).
NameTypeReqDescription
appliedstringApplied stash reference (for pop/apply mode).
conflictsbooleanWhether operation had conflicts.
createdstringCreated stash reference (for push mode).
droppedstringDropped stash reference (for drop mode).
modestringyesOperation mode that was performed.
stashesarrayList of stashes (for list mode).
successbooleanyesIndicates if the operation was successful.

No examples provided.

git_status ~65

Show the working tree status including staged, unstaged, and untracked files.

NameTypeReqDescription
includeUntrackedbooleanInclude untracked files in the output.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
NameTypeReqDescription
aheadintegerCommits ahead of upstream (if tracking).
behindintegerCommits behind upstream (if tracking).
conflictedFilesarrayyesFiles with merge conflicts that need resolution.
currentBranchyesCurrent branch name.
isCleanbooleanyesTrue if working directory is clean (no staged, unstaged, or untracked changes). When includeUntracked is false, untracked files are excluded from this check.
stagedChangesobjectyesChanges that have been staged for the next commit.
successbooleanyesIndicates if the operation was successful.
unstagedChangesobjectyesChanges in the working directory that have not been staged.
untrackedFilesarrayyesFiles in the working directory not tracked by git.
upstreamstringUpstream ref the current branch is tracking (if any).

No examples provided.

git_tag ~277

Manage tags: list all tags, create a new tag, delete a tag, or verify a signed tag. Tags are used to mark specific points in history (releases, milestones). Verify runs `git tag -v` and returns a structured result distinguishing unsigned tags, missing trust configuration, bad signatures, and valid signatures.

NameTypeReqDescription
annotatedbooleanCreate an annotated tag with a default "Tag <name>" message. Only effective when no message is provided and signing is disabled — otherwise the tag is always annotated.
commitstringCommit to tag (default: HEAD for create operation).
forcebooleanOverwrite an existing tag (create mode only; has no effect on list or delete).
limitintegerFor list mode: cap the number of tags returned (applied at the git command via `--count=N`). Use on repos with many tags.
messagestringTag message. Providing a message always produces an annotated tag (git does not support messages on lightweight tags). For release tags, summarize notable changes.
modestringThe tag operation to perform.
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
tagNamestringTag name for create/delete/verify operations.
NameTypeReqDescription
createdstringCreated tag name (for create mode).
deletedstringDeleted tag name (for delete mode).
modestringyesOperation mode that was performed.
rawOutputstringRaw stderr from `git tag -v` for callers that need the full verification output (verify mode only).
signatureTypestringSignature algorithm family when detectable from `git tag -v` output (verify mode). Absent for unsigned tags or unparseable output.
signedbooleanWhether the created tag was signed. Only populated for create mode. False when GIT_SIGN_COMMITS=false or when signing failed and fell back to unsigned.
signerIdentitystringSigner identity as emitted by git — e.g., `Name <email>` for GPG or the SSH principal. Verify mode only.
signerKeystringKey material emitted by git — GPG fingerprint/key ID or SSH key fingerprint (`SHA256:…`). Verify mode only; absent when git did not surface it.
signingWarningstringPopulated only when signing was requested but failed, and the tag was created unsigned as a fallback.
successbooleanyesIndicates if the operation was successful.
tagsarrayList of tags (for list mode).
verifiedbooleanWhether the signature validated (for verify mode). `false` for unsigned tags, missing trust config, bad signatures, or unparseable output — inspect `warning` to distinguish.
verifiedTagstringVerified tag name (for verify mode). Echoes the input so callers can correlate results in batched flows.
warningstringPopulated on verify failure with a human-readable reason distinguishing unsigned tags, missing trust configuration, bad signatures, and unparseable output.

No examples provided.

git_worktree ~257

Manage multiple working trees: list worktrees, add new worktrees for parallel work, remove worktrees, or move worktrees to new locations.

NameTypeReqDescription
branchstringFor add operation: create a NEW branch with this name in the new worktree. Fails if the branch already exists — use `commitish` to check out an existing branch instead.
commitishstringFor add operation: check out this existing branch/commit/tag in the new worktree (no new branch is created).
detachbooleanCreate worktree with detached HEAD (for add operation).
dryRunbooleanPreview the operation without executing it (for prune operation).
forcebooleanForce operation (for remove operation with uncommitted changes).
modestringThe worktree operation to perform.
newPathstringNew path for the worktree (for move operation).
pathstringPath to the Git repository. Defaults to session working directory set via git_set_working_dir.
verbosebooleanProvide detailed output for worktree operations.
worktreePathstringPath for the new worktree (for add/move operations).
NameTypeReqDescription
addedstringAdded worktree path (for add mode).
modestringyesOperation mode that was performed.
movedobjectMove operation info (for move mode).
prunedarrayPruned worktree paths (for prune mode).
removedstringRemoved worktree path (for remove mode).
successbooleanyesIndicates if the operation was successful.
worktreesarrayList of worktrees (for list mode).

No examples provided.

git_wrapup_instructions ~157

Returns a Git wrap-up protocol: an acceptance-criteria checklist the agent must satisfy before the session is considered shipped. Uses the operator's custom instructions if configured, otherwise emits a generic goals-strict/mechanism-generic default. Enriches the response with a repository snapshot (status, recent commits, recent tags) so the agent has immediate orientation for the commit and release steps.

NameTypeReqDescription
acknowledgementstringyesAcknowledgement to initiate the wrap-up workflow.
createTagbooleanControls whether the tag criterion appears in the emitted protocol. Omit or set `true` to include the tag step. Set `false` to omit it entirely — e.g., when tagging is deferred to a separate release…
NameTypeReqDescription
enrichmentWarningsarrayActionable notes when snapshot gathering was skipped or partially failed.
instructionsstringyesThe wrap-up protocol to satisfy before the session ships.
repositoryobjectBest-effort repository snapshot. Omitted when no working directory is set or when the path is not a git repository.

No examples provided.