Koskamo

GitEasy MCP

GitEasy MCP provides 22 plain-English git tools for AI agents, allowing them to branch, commit, push, and manage repositories without requiring git syntax knowledge. It supports various plans from free to enterprise, integrating with clients like Claude Desktop and Cursor via an HTTP endpoint.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

GitEasy MCP logo, by Detent PointCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by Detent Point
You need:Free key: POST /keys/free with {"email": "your@email.com"}Replace ge_your_key_here with your API key.
MCP endpoint (Streamable HTTP)
https://giteasy-mcp.azurewebsites.net/mcp
Vendor documentation

What its tools do

22 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

22 of 22 have a description · 0 of 22 declare behavior hints · 22 of 22 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Branch, commit, and push code using plain English commands
  • Manage git history, changes, and releases
  • Integrate git operations directly into AI agent workflows

Source and maintenance

Community listingRegistry 1.6.2
Maintenance checked

Protocol and capabilities

Server
GitEasy.MCP 1.6.1.0
MCP protocol negotiated in check
2025-11-25
Tools
22 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
4 advertised
Server-advertised capabilities
{
  "tools": {},
  "logging": {},
  "prompts": {}
}

Tools

22 advertised

push
Advertised by the server during the last successful anonymous check.

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.

push input schema
{
  "type": "object",
  "properties": {
    "remoteName": {
      "type": "string",
      "default": "origin",
      "description": "Remote name. Default origin."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
show_diagnostic
Advertised by the server during the last successful anonymous check.

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

show_diagnostic input schema
{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
set_vault
Advertised by the server during the last successful anonymous check.

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

set_vault input schema
{
  "type": "object",
  "properties": {
    "vaultPath": {
      "type": "string",
      "default": "",
      "description": "Path to the credential helper vault executable."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
restore_file
Advertised by the server during the last successful anonymous check.

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

restore_file input schema
{
  "type": "object",
  "properties": {
    "filePath": {
      "type": "string",
      "default": "",
      "description": "Repo-relative path to the file to restore."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
reset_login
Advertised by the server during the last successful anonymous check.

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

reset_login input schema
{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
set_ssh
Advertised by the server during the last successful anonymous check.

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

set_ssh input schema
{
  "type": "object",
  "properties": {
    "sshUrl": {
      "type": "string",
      "default": "",
      "description": "New SSH remote URL, e.g. git@github.com:owner/repo.git."
    },
    "remoteName": {
      "type": "string",
      "default": "origin",
      "description": "Remote name to update. Default origin."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
save_work
Advertised by the server during the last successful anonymous check.

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

save_work input schema
{
  "type": "object",
  "properties": {
    "files": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null,
      "description": "Files to commit. Default empty (commits all changes)."
    },
    "message": {
      "type": "string",
      "default": "",
      "description": "Commit message."
    },
    "pushToRemote": {
      "type": "boolean",
      "default": false,
      "description": "Push to remote after commit. Default false."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
get_vault_status
Advertised by the server during the last successful anonymous check.

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

get_vault_status input schema
{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
test_login
Advertised by the server during the last successful anonymous check.

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

test_login input schema
{
  "type": "object",
  "properties": {
    "remoteName": {
      "type": "string",
      "default": "origin",
      "description": "Remote to test. Default origin."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
show_releases
Advertised by the server during the last successful anonymous check.

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

show_releases input schema
{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
show_change
Advertised by the server during the last successful anonymous check.

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

show_change input schema
{
  "type": "object",
  "properties": {
    "staged": {
      "type": "boolean",
      "default": false,
      "description": "Show staged diff. Default false."
    },
    "filePath": {
      "type": "string",
      "default": "",
      "description": "Repo-relative file path. If empty, shows all."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
new_release
Advertised by the server during the last successful anonymous check.

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

new_release input schema
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "default": "",
      "description": "Annotation message for the tag."
    },
    "tagName": {
      "type": "string",
      "default": "",
      "description": "Tag name, e.g. v1.2.0."
    },
    "remoteName": {
      "type": "string",
      "default": "origin",
      "description": "Remote to push to. Default origin."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
find_changes
Advertised by the server during the last successful anonymous check.

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

find_changes input schema
{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
show_remote
Advertised by the server during the last successful anonymous check.

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

show_remote input schema
{
  "type": "object",
  "properties": {
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
get_updates
Advertised by the server during the last successful anonymous check.

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

get_updates input schema
{
  "type": "object",
  "properties": {
    "remoteName": {
      "type": "string",
      "default": "origin",
      "description": "Remote name. Default origin."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
undo_changes
Advertised by the server during the last successful anonymous check.

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

undo_changes input schema
{
  "type": "object",
  "properties": {
    "filePath": {
      "type": "string",
      "default": "",
      "description": "Repo-relative file path to undo. If empty, undoes all tracked changes."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
switch_work
Advertised by the server during the last successful anonymous check.

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

switch_work input schema
{
  "type": "object",
  "properties": {
    "branchName": {
      "type": "string",
      "default": "",
      "description": "Name of the branch to switch to."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
search_history
Advertised by the server during the last successful anonymous check.

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

search_history input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "description": "Max commits to return. Default 20."
    },
    "searchTerm": {
      "type": "string",
      "default": "",
      "description": "Text to search for in commit messages."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
show_history
Advertised by the server during the last successful anonymous check.

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

show_history input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "description": "Number of commits to return. Default 20."
    },
    "branchName": {
      "type": "string",
      "default": "",
      "description": "Branch name. Default current branch."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
new_work_branch
Advertised by the server during the last successful anonymous check.

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

new_work_branch input schema
{
  "type": "object",
  "properties": {
    "branchName": {
      "type": "string",
      "default": "",
      "description": "Name of the new branch."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
set_token
Advertised by the server during the last successful anonymous check.

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

set_token input schema
{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "default": "",
      "description": "Personal access token to store."
    },
    "workingDirectory": {
      "type": "string",
      "default": ".",
      "description": "Git repo path. Default current directory."
    }
  }
}
clear_junk
Advertised by the server during the last successful anonymous check.

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

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

Prompts

4 advertised

save_and_share

Advertised by the server during the last successful anonymous check.

Save all my current work and publish it to the remote. Uses find_changes, save_work, and push.

workingDirectory
Git repo path. Default current directory.
start_new_work

Advertised by the server during the last successful anonymous check.

Start a new piece of work on its own branch so it stays separate from everything else.

workName
A short name for the work, like 'fix login bug'. (required)
workingDirectory
Git repo path. Default current directory.
whats_going_on

Advertised by the server during the last successful anonymous check.

Something seems off. Check the repo state and explain it in plain English without changing anything.

workingDirectory
Git repo path. Default current directory.
wrap_up_day

Advertised by the server during the last successful anonymous check.

End of day: save and publish any pending work, then summarize what I got done today.

workingDirectory
Git repo path. Default current directory.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
371 ms
95th percentile latency
371 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 371 ms · metadata changed · 22 tool(s), 4 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http giteasy-mcp https://giteasy-mcp.azurewebsites.net/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add giteasy-mcp --url https://giteasy-mcp.azurewebsites.net/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable giteasy-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "giteasy-mcp": {
      "url": "https://giteasy-mcp.azurewebsites.net/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "giteasy-mcp": {
      "type": "streamableHttp",
      "url": "https://giteasy-mcp.azurewebsites.net/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start giteasy-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "giteasy-mcp": {
      "type": "http",
      "url": "https://giteasy-mcp.azurewebsites.net/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http giteasy-mcp https://giteasy-mcp.azurewebsites.net/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://giteasy-mcp.azurewebsites.net/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "giteasy-mcp": {
      "serverUrl": "https://giteasy-mcp.azurewebsites.net/mcp"
    }
  }
}

Let your agent find its tools

Find servers like GitEasy MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.