Microsoft & Azure intelligence →
Association is based on retained identity fields; it does not by itself prove first-party publication.
A Model Context Protocol server that provides Git version control operations as structured tools for AI coding agents. It enables LLMs to programmatically manage repositories through actions like committing changes, rolling back code, and comparing diffs
Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.
Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.
No verified installation or connection method is available in the retained evidence yet.
| Canonical slug | github-mcp-server-1bc0a3b1 | Deployment | Local Only |
|---|---|---|---|
| Canonical package | — | Repository | archish9/VersionControlHelperMCP |
| First published | — | Latest release | — |
| Last security verification | — | Classification confidence | 35% |
| Publication | Draft | Official distribution | Not verified |
| Channel | Identifier | Current version | Versions | Source |
|---|---|---|---|---|
| source_git | archish9/versioncontrolhelpermcp | 7e41c9e956d401947012e7ed83d0080fca1f9483 | 1 | Repository |
| Package | Version | Published / observed | Inventory | Security scan |
|---|---|---|---|---|
| source_gitarchish9/versioncontrolhelpermcp | 7e41c9e956d401947012e7ed83d0080fca1f9483Current | Aug 31, 2026 | 10 toolsSucceeded · 0 resources · 0 prompts | Evidence restricted |
Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.
No public current-version evidence is available yet.
| Tool | Category | Annotations | Risk |
|---|---|---|---|
commit_all_changesStage ALL changes (including untracked files) and create a commit.
This tool acts as a "save point" for the project. It performs the equivalent of:
1. `git add -A` (Stages all modified, deleted, and new files)
2. `git commit -m "message"`
It will automatically initialize the repository if it hasn't been initialized yet.
Args:
repo_path: The absolute path to the repository.
message: A descriptive commit message.
Common prefixes: 'feat:', 'fix:', 'docs:', 'refactor:', 'test:'.
Returns:
The SHA (full hash) of the new commit, or a message indicating "No changes to commit"
if the working directory was clean.
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
},
"message": {
"title": "Message",
"type": "string"
}
},
"required": [
"repo_path",
"message"
],
"title": "commit_all_changesArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "commit_all_changesOutput",
"type": "object"
} | — | — | |
compare_commitsCompare two commits and return the diff.
This tool generates a detailed comparison between two points in the history (`from_commit` -> `to_commit`).
It's useful for:
- Reviewing changes between versions.
- Debugging when a bug was introduced.
- Generating a changelog.
The output includes a summary of file changes (added, modified, deleted, renamed)
and the actual diff content for each file.
Args:
repo_path: The absolute path to the repository.
from_commit: The source (older) commit SHA.
to_commit: The target (newer) commit SHA.
Returns:
A JSON-formatted string containing the list of changed files,
additions/deletions counts, and diff patches.
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
},
"from_commit": {
"title": "From Commit",
"type": "string"
},
"to_commit": {
"title": "To Commit",
"type": "string"
}
},
"required": [
"repo_path",
"from_commit",
"to_commit"
],
"title": "compare_commitsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "compare_commitsOutput",
"type": "object"
} | — | — | |
create_branchCreate a new git branch.
This tool creates a new branch pointer but DOES NOT switch to it.
To start working on the new branch, you must call `switch_branch` afterwards.
Args:
repo_path: The absolute path to the repository.
branch_name: The name of the new branch (e.g., "feature/new-login").
from_ref: The commit SHA or branch name to start the new branch from.
If not provided, defaults to the current HEAD.
Returns:
A confirmation message containing the new branch name.
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
},
"branch_name": {
"title": "Branch Name",
"type": "string"
},
"from_ref": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "From Ref"
}
},
"required": [
"repo_path",
"branch_name"
],
"title": "create_branchArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "create_branchOutput",
"type": "object"
} | — | — | |
generate_commit_messageGenerate a suggested commit message based on staged changes.
This tool analyzes the staged and modified files to suggest a commit message.
Note: This uses a simple heuristic (template-based), not a full LLM analysis of the diff content.
It is useful as a starting point or for quick commits.
Styles:
- "conventional": Uses Conventional Commits format (feat: ..., fix: ..., chore: ...) based on file types.
- "simple": Returns a plain predictive sentence like "Update 3 files".
Args:
repo_path: The absolute path to the repository.
style: The message style format to use. Defaults to "conventional".
Returns:
A string containing the suggested commit message and a brief summary of detected changes.
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
},
"style": {
"default": "conventional",
"title": "Style",
"type": "string"
}
},
"required": [
"repo_path"
],
"title": "generate_commit_messageArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "generate_commit_messageOutput",
"type": "object"
} | — | — | |
get_repo_statusGet the current status of the git repository.
This tool provides a snapshot of the repository's state, including:
- Initialization status (is it a git repo?)
- Current branch name
- Whether there are uncommitted changes
- Lists of staged, modified, and untracked files
Use this tool before committing to verify what changes will be included,
or to simply check the current context (branch, pending changes).
Args:
repo_path: The absolute path to the repository.
Returns:
A JSON-formatted string containing the repository status details.
Example JSON structure:
{
"is_initialized": true,
"current_branch": "main",
"has_changes": true,
"staged_files": ["file1.py"],
"modified_files": ["file2.py"],
"untracked_files": ["new_file.py"]
}
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
}
},
"required": [
"repo_path"
],
"title": "get_repo_statusArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_repo_statusOutput",
"type": "object"
} | — | — | |
initialize_repoInitialize a new git repository at the specified path.
This tool creates a `.git` directory at `repo_path` if it doesn't already exist.
It is safe to call on an existing repository (it will return a success message without modifying the repo).
Args:
repo_path: The absolute path to the directory where the git repository should be initialized.
If the directory does not exist, it will be created.
initial_commit: If True, and the repository is empty or fresh, an initial commit will be created.
This includes creating a README.md if one doesn't exist.
Default is True.
Returns:
A status message indicating whether the repository was initialized,
already existed, or if an initial commit was created.
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
},
"initial_commit": {
"default": true,
"title": "Initial Commit",
"type": "boolean"
}
},
"required": [
"repo_path"
],
"title": "initialize_repoArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "initialize_repoOutput",
"type": "object"
} | — | — | |
list_branchesList all branches in the repository.
Shows all local branches with current branch marked.
Args:
repo_path: Path to the repository directory
Returns:
JSON list of branches with current branch indicator
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
}
},
"required": [
"repo_path"
],
"title": "list_branchesArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_branchesOutput",
"type": "object"
} | — | — | |
list_commitsList the commit history for a specific branch or reference.
Retrieves a list of commits starting from the specified `branch` (or HEAD),
going back in history up to `limit`. Each commit includes:
- SHA (full and short)
- Message
- Author details
- Timestamp
Args:
repo_path: The absolute path to the repository.
branch: The branch name, tag, or commit SHA to start listing from.
Defaults to "HEAD" (current checkout).
limit: The maximum number of commits to return. Defaults to 50.
Returns:
A JSON-formatted string containing a list of commit objects.
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
},
"branch": {
"default": "HEAD",
"title": "Branch",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"required": [
"repo_path"
],
"title": "list_commitsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_commitsOutput",
"type": "object"
} | — | — | |
rollback_to_commitRoll back the repository state to a previous commit.
This tool resets the current branch head to `commit_sha`. The `mode` determines
what happens to the working directory and index:
- "soft" (Default): Undoes the commit(s) but leaves changes staged in the index.
Useful if you want to squash commits or fix the last commit message.
- "mixed": Undoes the commit(s) and unstages changes, but keeps the files in the working directory.
Useful if you want to keep the work but start fresh with staging.
- "hard": WARNING - Destructive! Resets everything to the state of `commit_sha`.
Any uncommitted changes (staged or unstaged) will be PERMANENTLY LOST.
Use this only if you want to discard all work since `commit_sha`.
Args:
repo_path: The absolute path to the repository.
commit_sha: The full or short SHA of the commit to revert to.
mode: The reset mode: "soft", "mixed", or "hard".
Returns:
A message confirming the rollback and the new HEAD SHA.
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
},
"commit_sha": {
"title": "Commit Sha",
"type": "string"
},
"mode": {
"default": "soft",
"title": "Mode",
"type": "string"
}
},
"required": [
"repo_path",
"commit_sha"
],
"title": "rollback_to_commitArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "rollback_to_commitOutput",
"type": "object"
} | — | — | |
switch_branchSwitch the repository to a different branch.
This command updates the working directory to match the state of the specified branch.
It performs a `git checkout`.
Args:
repo_path: The absolute path to the repository.
branch_name: The name of the branch to switch to.
The branch must already exist.
Returns:
A confirmation message indicating the successful switch and current branch name.
Input schema{
"properties": {
"repo_path": {
"title": "Repo Path",
"type": "string"
},
"branch_name": {
"title": "Branch Name",
"type": "string"
}
},
"required": [
"repo_path",
"branch_name"
],
"title": "switch_branchArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "switch_branchOutput",
"type": "object"
} | — | — |
| Endpoint | Transport | Authentication | Health | Observed |
|---|---|---|---|---|
| No verified remote endpoint is linked. | ||||
No verified package installation command is available in the retained catalog evidence.
GitHub MCP Server exposed 10 tools during independent protocol observation, including commit_all_changes, compare_commits, create_branch, generate_commit_message, get_repo_status, initialize_repo, list_branches, list_commits, and others.
The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.
These internal links are derived from strong identity fields such as the implementation name, package, repository, vendor, and listing name—not generic description prose.
Association is based on retained identity fields; it does not by itself prove first-party publication.
Curated product and capability guides containing this catalog record.