greenmtnsun avatar

GitEasy MCP

greenmtnsun/giteasy

If you've ever needed to script Git operations but wanted to shield users from raw Git terminology, this wraps 21 common workflows into plain-English commands. It's built as a PowerShell module first, exposed here as an MCP server. You get operations like Save-Work, Find-CodeChange, Show-History, and credential helpers that write diagnostic logs instead of dumping cryptic errors. The author is a SQL Server DBA who built this for teammates who aren't full-time developers. It's aimed at CI pipelines, AI agents, or any automation layer where you want Git functionality without forcing humans to parse rebase conflicts. Each operation logs to a structured file you can inspect when things go wrong.

GitHub stars
1
tools
22
auth
Secret needed
transport
HTTP
last updated
Oct 25, 2026

Install

From registry metadata
$ npx add-mcp https://giteasy-mcp.azurewebsites.net/mcp --name giteasy --header 'X-Api-Key: ${X_API_KEY}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http giteasy https://giteasy-mcp.azurewebsites.net/mcp --header 'X-Api-Key: YOUR_X_API_KEY'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 22 tools

Verified live against the running server on Nov 6, 2026.

pushSend already-committed work to the remote without making a new commit. Pushes the current branch; on a branch's first push, sets the remote branch as its upstream automatically.2 params

Send already-committed work to the remote without making a new commit. Pushes the current branch; on a branch's first push, sets the remote branch as its upstream automatically.

Parameters* required
remoteNamestring
Remote name. Default origin.default: origin
workingDirectorystring
Git repo path. Default current directory.default: .
show_diagnosticShow git repository diagnostic info: current branch, upstream, HEAD SHA, remote URLs, and status summary.1 params

Show git repository diagnostic info: current branch, upstream, HEAD SHA, remote URLs, and status summary.

Parameters* required
workingDirectorystring
Git repo path. Default current directory.default: .
set_vaultConfigure the git credential helper to use a specific vault path. Returns new credential helper value.2 params

Configure the git credential helper to use a specific vault path. Returns new credential helper value.

Parameters* required
vaultPathstring
Path to the credential helper vault executable.default:
workingDirectorystring
Git repo path. Default current directory.default: .
restore_fileRestore a single file to its HEAD state, discarding uncommitted changes. Returns restored file path.2 params

Restore a single file to its HEAD state, discarding uncommitted changes. Returns restored file path.

Parameters* required
filePathstring
Repo-relative path to the file to restore.default:
workingDirectorystring
Git repo path. Default current directory.default: .
reset_loginClear stored git credentials by unsetting the credential helper in local git config. Returns confirmation.1 params

Clear stored git credentials by unsetting the credential helper in local git config. Returns confirmation.

Parameters* required
workingDirectorystring
Git repo path. Default current directory.default: .
set_sshChange a remote URL to its SSH equivalent. Returns old and new remote URLs.3 params

Change a remote URL to its SSH equivalent. Returns old and new remote URLs.

Parameters* required
remoteNamestring
Remote name to update. Default origin.default: origin
sshUrlstring
New SSH remote URL, e.g. git@github.com:owner/repo.git.default:
workingDirectorystring
Git repo path. Default current directory.default: .
save_workStage changes, commit with a message, and optionally push to remote. Returns commit SHA and push result.4 params

Stage changes, commit with a message, and optionally push to remote. Returns commit SHA and push result.

Parameters* required
filesarray
Files to commit. Default empty (commits all changes).
messagestring
Commit message.default:
pushToRemoteboolean
Push to remote after commit. Default false.default: false
workingDirectorystring
Git repo path. Default current directory.default: .
get_vault_statusReport current git credential helper configuration. Returns helper name and scope.1 params

Report current git credential helper configuration. Returns helper name and scope.

Parameters* required
workingDirectorystring
Git repo path. Default current directory.default: .
test_loginTest whether git credentials are working by attempting ls-remote against the origin. Returns success/failure and remote refs count.2 params

Test whether git credentials are working by attempting ls-remote against the origin. Returns success/failure and remote refs count.

Parameters* required
remoteNamestring
Remote to test. Default origin.default: origin
workingDirectorystring
Git repo path. Default current directory.default: .
show_releasesList all tags/releases in the repository, newest first. Returns tag names, target SHAs, and annotation messages.1 params

List all tags/releases in the repository, newest first. Returns tag names, target SHAs, and annotation messages.

Parameters* required
workingDirectorystring
Git repo path. Default current directory.default: .
show_changeShow the diff for a specific file or all changed files. Returns unified diff text.3 params

Show the diff for a specific file or all changed files. Returns unified diff text.

Parameters* required
filePathstring
Repo-relative file path. If empty, shows all.default:
stagedboolean
Show staged diff. Default false.default: false
workingDirectorystring
Git repo path. Default current directory.default: .
new_releaseCreate an annotated git tag and push it to the remote. Returns the tag name and target commit SHA.4 params

Create an annotated git tag and push it to the remote. Returns the tag name and target commit SHA.

Parameters* required
messagestring
Annotation message for the tag.default:
remoteNamestring
Remote to push to. Default origin.default: origin
tagNamestring
Tag name, e.g. v1.2.0.default:
workingDirectorystring
Git repo path. Default current directory.default: .
find_changesList changed files: staged, unstaged, and untracked. Returns file counts and paths by status group.1 params

List changed files: staged, unstaged, and untracked. Returns file counts and paths by status group.

Parameters* required
workingDirectorystring
Git repo path. Default current directory.default: .
show_remoteShow all remote names and their fetch/push URLs. Returns list of remotes with URL and type.1 params

Show all remote names and their fetch/push URLs. Returns list of remotes with URL and type.

Parameters* required
workingDirectorystring
Git repo path. Default current directory.default: .
get_updatesFetch from remote and show incoming commits not yet in local branch. Returns count and commit summaries.2 params

Fetch from remote and show incoming commits not yet in local branch. Returns count and commit summaries.

Parameters* required
remoteNamestring
Remote name. Default origin.default: origin
workingDirectorystring
Git repo path. Default current directory.default: .
undo_changesDiscard uncommitted changes. If filePath given, restores that file; otherwise restores all tracked files. Returns list of restored paths.2 params

Discard uncommitted changes. If filePath given, restores that file; otherwise restores all tracked files. Returns list of restored paths.

Parameters* required
filePathstring
Repo-relative file path to undo. If empty, undoes all tracked changes.default:
workingDirectorystring
Git repo path. Default current directory.default: .
switch_workSwitch to an existing branch. Returns the branch switched to and current HEAD SHA.2 params

Switch to an existing branch. Returns the branch switched to and current HEAD SHA.

Parameters* required
branchNamestring
Name of the branch to switch to.default:
workingDirectorystring
Git repo path. Default current directory.default: .
search_historySearch commit history for commits whose message matches a search term. Returns matching commits with SHA, author, date, and message.3 params

Search commit history for commits whose message matches a search term. Returns matching commits with SHA, author, date, and message.

Parameters* required
limitinteger
Max commits to return. Default 20.default: 20
searchTermstring
Text to search for in commit messages.default:
workingDirectorystring
Git repo path. Default current directory.default: .
show_historyShow recent commit history. Returns commits with SHA, author, date, and message.3 params

Show recent commit history. Returns commits with SHA, author, date, and message.

Parameters* required
branchNamestring
Branch name. Default current branch.default:
limitinteger
Number of commits to return. Default 20.default: 20
workingDirectorystring
Git repo path. Default current directory.default: .
new_work_branchCreate a new branch from current HEAD and switch to it. Returns branch name and base commit SHA.2 params

Create a new branch from current HEAD and switch to it. Returns branch name and base commit SHA.

Parameters* required
branchNamestring
Name of the new branch.default:
workingDirectorystring
Git repo path. Default current directory.default: .
set_tokenStore a personal access token for HTTP git authentication. Returns confirmation (token value is never echoed).2 params

Store a personal access token for HTTP git authentication. Returns confirmation (token value is never echoed).

Parameters* required
tokenstring
Personal access token to store.default:
workingDirectorystring
Git repo path. Default current directory.default: .
clear_junkRemove untracked files and directories from the working tree (git clean -fd). Returns list of removed paths.1 params

Remove untracked files and directories from the working tree (git clean -fd). Returns list of removed paths.

Parameters* required
workingDirectorystring
Git repo path. Default current directory.default: .

Sponsors

Readme

GitEasy

GitEasy — Plain-English Git for everyone who isn't a developer

A PowerShell module that lets a Git-clueless person save and publish their work without learning Git jargon.

From Keith

I'm Keith Ramsey. For a living, I'm a SQL Server database administrator, and in my spare time, I'm a massive PowerShell enthusiast. For the past thirteen years, I've worked on the same team, quietly building internal tools to solve our specific headaches. GitEasy is a new chapter for me. It's the first tool I've ever released to the public, and honestly, the process of designing for strangers—polishing the code, writing in plain English just to be helpful—has been an absolute blast.


View the full README on GitHub

Details

Repository
github.com/greenmtnsun/giteasy
Website
detentpoint.com/giteasy
Category
Developer Tools
Transport
HTTP
Auth
Required
Registry
MCP registry, active
Prompts
4
Tools verified
Nov 6, 2026

More from greenmtnsun

Related Developer Tools MCP servers

View all
12648782102 avatarProofpack2648782102/proofpack-cliLocal, read-only acceptance reports for AI-assisted Git changes, exposed as one MCP tool.1stars
2tencent-lexiang avatarDEPRECATED - Use lexiang-mcp-servertencent-lexiang/lexiang-mcp-serverDEPRECATED: Please use io.github.tencent-lexiang/lexiang-mcp-server instead.1stars
3jcislo avatarMoltalyzer Mcpjcislo/moltalyzer-mcpPolymarket prediction-market intelligence + AI, GitHub & narrative feeds for agents, via x402.1stars
4malkreide avatarHn Tech Signal Mcpmalkreide/hn-tech-signal-mcpMCP server for tech & AI signal intelligence: HackerNews, arXiv, Lobste.rs and GitHub1stars
5mrorigo avatarBash Command Mcpmrorigo/bash-command-mcpSophisticated bash command MCP server that runs and manages shell execution.1stars
6sandip124 avatarWisegitsandip124/wisegitExtracts decision intent from git history and protects intentional code from AI modification.1stars