giteasy

Plain-English git via MCP: 22 tools to branch, commit, push, and tag. No git jargon.

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
90%
Naming quality
94%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'restore_file' description lacks action verbin restore_file
  • LOWTool 'set_ssh' description lacks action verbin set_ssh
  • LOWTool 'save_work' description lacks action verbin save_work
  • LOWTool 'get_vault_status' description lacks action verbin get_vault_status
  • LOWTool 'switch_work' description lacks action verbin switch_work

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,910Tokens (tool definitions)
~736 BTypical response size
Moderate attention impact (1.49% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "giteasy": {
      "url": "https://giteasy-mcp.azurewebsites.net/mcp"
    }
  }
}

Remote endpoints

https://giteasy-mcp.azurewebsites.net/mcpstreamable-http

What it can do

Tool inventory

Tools (22)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡push(workingDirectory, remoteName)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "remoteName": {
      "description": "Remote name. Default origin.",
      "type": "string",
      "default": "origin"
    }
  }
}
🟢show_diagnostic(workingDirectory)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    }
  }
}
🟡set_vault(workingDirectory, vaultPath)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "vaultPath": {
      "description": "Path to the credential helper vault executable.",
      "type": "string",
      "default": ""
    }
  }
}
⚪restore_file(workingDirectory, filePath)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "filePath": {
      "description": "Repo-relative path to the file to restore.",
      "type": "string",
      "default": ""
    }
  }
}
🔴reset_login(workingDirectory)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    }
  }
}
🟡set_ssh(workingDirectory, remoteName, sshUrl)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "remoteName": {
      "description": "Remote name to update. Default origin.",
      "type": "string",
      "default": "origin"
    },
    "sshUrl": {
      "description": "New SSH remote URL, e.g. [email protected]:owner/repo.git.",
      "type": "string",
      "default": ""
    }
  }
}
🟡save_work(workingDirectory, message, pushToRemote, files)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "message": {
      "description": "Commit message.",
      "type": "string",
      "default": ""
    },
    "pushToRemote": {
      "description": "Push to remote after commit. Default false.",
      "type": "boolean",
      "default": false
    },
    "files": {
      "description": "Files to commit. Default empty (commits all changes).",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    }
  }
}
🟢get_vault_status(workingDirectory)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    }
  }
}
⚪test_login(workingDirectory, remoteName)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "remoteName": {
      "description": "Remote to test. Default origin.",
      "type": "string",
      "default": "origin"
    }
  }
}
🟢show_releases(workingDirectory)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    }
  }
}
🟡show_change(workingDirectory, filePath, staged)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "filePath": {
      "description": "Repo-relative file path. If empty, shows all.",
      "type": "string",
      "default": ""
    },
    "staged": {
      "description": "Show staged diff. Default false.",
      "type": "boolean",
      "default": false
    }
  }
}
🟡new_release(workingDirectory, tagName, message, remoteName)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "tagName": {
      "description": "Tag name, e.g. v1.2.0.",
      "type": "string",
      "default": ""
    },
    "message": {
      "description": "Annotation message for the tag.",
      "type": "string",
      "default": ""
    },
    "remoteName": {
      "description": "Remote to push to. Default origin.",
      "type": "string",
      "default": "origin"
    }
  }
}
🟢find_changes(workingDirectory)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    }
  }
}
🟢show_remote(workingDirectory)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    }
  }
}
🟢get_updates(workingDirectory, remoteName)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "remoteName": {
      "description": "Remote name. Default origin.",
      "type": "string",
      "default": "origin"
    }
  }
}
🟢undo_changes(workingDirectory, filePath)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "filePath": {
      "description": "Repo-relative file path to undo. If empty, undoes all tracked changes.",
      "type": "string",
      "default": ""
    }
  }
}
⚪switch_work(workingDirectory, branchName)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "branchName": {
      "description": "Name of the branch to switch to.",
      "type": "string",
      "default": ""
    }
  }
}
🟢search_history(workingDirectory, searchTerm, limit)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "searchTerm": {
      "description": "Text to search for in commit messages.",
      "type": "string",
      "default": ""
    },
    "limit": {
      "description": "Max commits to return. Default 20.",
      "type": "integer",
      "default": 20
    }
  }
}
🟢show_history(workingDirectory, limit, branchName)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "limit": {
      "description": "Number of commits to return. Default 20.",
      "type": "integer",
      "default": 20
    },
    "branchName": {
      "description": "Branch name. Default current branch.",
      "type": "string",
      "default": ""
    }
  }
}
🟡new_work_branch(workingDirectory, branchName)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "branchName": {
      "description": "Name of the new branch.",
      "type": "string",
      "default": ""
    }
  }
}
🟡set_token(workingDirectory, token)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    },
    "token": {
      "description": "Personal access token to store.",
      "type": "string",
      "default": ""
    }
  }
}
🔴clear_junk(workingDirectory)

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

Input Schema

{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "description": "Git repo path. Default current directory.",
      "type": "string",
      "default": "."
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded22 tools
verifiedversion not recorded22 tools