GIT MCP Server (wty0512/git-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 49 out of 100, grade D. It declares 32 tools. No publisher has claimed this listing.

D
Caution
49/100

GIT MCP Server

A Model Context Protocol (MCP) server to provide git tools for LLM Agents, with fixes for the amend parameter caching issue

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

wty0512

Source: mcp.so · also listed on Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Known vulnerabilities in dependencies: 1 critical, 4 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
// tools this server exposes32 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

git_tag_create

Create a new tag in the repository. Tags are references that point to specific commits, useful for marking release points or important commits. Can create lightweight tags or annotated tags with messages.

git_tag_list

List all tags in the repository. Displays all tag names that exist in the repository, which can be used to identify releases or important reference points.

git_stash_create

Save uncommitted changes to a stash. Captures the current state of working directory and index and saves it on a stack of stashes, allowing you to switch branches without committing in-progress work.

git_stash_list

List all stashes in the repository. Shows the stack of stashes that have been created and their descriptions, allowing you to identify the stash you want to apply or pop.

git_stash_apply

Apply stashed changes to the working directory. Applies changes from the specified stash to the current working directory, but keeps the stash in the stash list.

git_stash_pop

Apply and remove a stash. Applies the specified stash to the working directory and then removes it from the stash stack. Combines the apply and drop operations.

git_cherry_pick

Apply changes from specific commits to the current branch. Takes the changes introduced in one or more existing commits and creates new commits with those changes on the current branch.

git_rebase

Reapply commits on top of another base commit. Takes all changes that were committed on one branch and replays them on another branch, providing a cleaner project history.

git_log

Show commit history. Displays a log of commits in reverse chronological order, optionally limited to a specific file's history or a maximum number of commits.

git_show

Show details of a specific commit. Displays the commit message, author, date, and the changes introduced by the commit including the diff.

git_branch_list

List branches in a repository. Displays both local and optionally remote branches, clearly marking the current branch.

git_branch_create

Create a new branch. Creates a new branch at the specified reference point (commit or branch) and optionally checks it out.

git_checkout

Checkout a branch, tag, or commit. Switches the working directory to the specified target and updates HEAD to point to it. Can optionally create a new branch.

git_branch_delete

Delete a branch. Removes the specified branch from the repository. By default, only fully merged branches can be deleted unless force is set to true.

git_merge

Merge a branch into the current branch. Combines changes from the specified branch into the current branch with configurable merge strategies.

git_remote_add

Add a new remote repository reference. Creates a connection to a remote repository with a name and URL, allowing fetching and pushing changes to and from that repository.

git_remote_list

List all configured remote repositories. Displays the names and URLs of all remotes associated with the repository, showing both fetch and push URLs.

git_fetch

Fetch changes from a remote repository. Downloads objects and refs from a remote repository without merging them into local branches.

git_pull

Pull changes from a remote repository. Fetches from a remote repository and integrates changes into the current branch, either by merging or rebasing.

git_push

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

git_init

Initialize a new Git repository. Creates the necessary directory structure and Git metadata for a new Git repository at the specified path. The repository can be created as a standard repository with a working directory or as a bare repository (typically used for centralized repositories). Creates a

git_clone

Clone a Git repository. Downloads a repository from a remote location and creates a local copy with all its history. Supports specifying branches, creating shallow clones, and more.

git_status

Get repository status. Shows the working tree status including tracked/untracked files, modifications, staged changes, and current branch information.

git_set_working_dir

Set a global working directory path for all Git operations. Future tool calls can use '.' as the filepath and it will resolve to this global path. IMPORTANT: Always use a full, absolute path to ensure proper functionality.

git_clear_working_dir

Clear the global working directory setting. Tools will use their explicitly provided path parameters.

git_add

Stage files for commit. Adds file contents to the index (staging area) in preparation for the next commit. Can stage specific files or all changes in the working directory. IMPORTANT: Always use a full, absolute path to the repository to ensure proper functionality.

git_reset

Unstage files from the index. Removes file contents from the staging area while preserving the working directory changes. The opposite of git_add. IMPORTANT: Always use a full, absolute path to the repository to ensure proper functionality.

git_commit

Commit staged changes to the repository. Creates a new commit containing the current contents of the index with the provided commit message. Supports optional author information, amending previous commits, and creating empty commits. IMPORTANT: Always use a full, absolute path to the repository to e

git_diff_unstaged

Show unstaged changes in the working directory. Displays the differences between the working directory and the index (staging area). Can be limited to a specific file or show all changed files. IMPORTANT: Always use a full, absolute path to the repository to ensure proper functionality.

git_diff_staged

Show staged changes ready for commit. Displays the differences between the index (staging area) and the latest commit. Can be limited to a specific file or show all staged files. IMPORTANT: Always use a full, absolute path to the repository to ensure proper functionality.

git_reset_commit

Reset the current branch to a specific commit. This changes where the branch HEAD points to, with different modes affecting the working directory and index differently (hard: discard all changes, soft: keep staged changes, mixed: unstage but keep changes). IMPORTANT: Always use a full, absolute path

git_clean

Remove untracked files from the working directory. Deletes files that aren't tracked by Git, optionally including directories. Use with caution as this operation cannot be undone. IMPORTANT: Always use a full, absolute path to the repository to ensure proper functionality.

// known CVEs in dependencies1 critical4 high

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

criticalsimple-git@3.27.0GHSA-r275-fr43-pm7q

simple-git has blockUnsafeOperationsPlugin bypass via case-insensitive protocol.allow config key enables RCE

high@modelcontextprotocol/sdk@1.7.0GHSA-8r9q-7v3j-jr4g

Anthropic's MCP TypeScript SDK has a ReDoS vulnerability

high@modelcontextprotocol/sdk@1.7.0GHSA-w48q-cv73-mx4w

Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default

highsimple-git@3.27.0GHSA-hffm-xvc3-vprc

simple-git is vulnerable to Remote Code Execution

highsimple-git@3.27.0GHSA-jcxm-m3jx-f287

simple-git Affected by Command Execution via Option-Parsing Bypass

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configGIT_AUTHOR_EMAIL
configGIT_AUTHOR_NAME
configGIT_COMMITTER_EMAIL
configGIT_COMMITTER_NAME
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

32/32 tools missing one or more hints — git_tag_create (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); git_tag_list (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); git_stash_create (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +29 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tests exist

No test files found

Add tests that exercise each declared tool.

Shell command execution

6 calls in production code run through a shell (src/server.ts:70, src/server.ts:71, src/services/git-service.ts:54)

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Production dependencies are patched

1 critical, 4 high severity in production deps — simple-git@3.27.0 (critical), @modelcontextprotocol/sdk@1.7.0 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Domain consistency

npm scope @cyanheads doesn't match GitHub owner wty0512

Use the same org name across GitHub, npm, and your homepage so users can verify the publisher.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/wty0512/git-mcp-server?variant=verified)](https://m8ven.ai/mcp/wty0512/git-mcp-server)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 0a7dd20481ccad73b5dd8b31986aeec5a3fa387a
code hash: 407831a42af536506ff9c63313053c775a6e815e63ecc413371e265442ea53e8
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client