MCP server intelligence profile

GitHub MCP Server

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

Local Onlyarchish9
Awaiting current scanSource Git · 7e41c9e956d401947012e7ed83d0080fca1f9483

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

1Distribution channel
10Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.

Install and connect

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.

Identity

Canonical sluggithub-mcp-server-1bc0a3b1DeploymentLocal Only
Canonical packageRepositoryarchish9/VersionControlHelperMCP
First publishedLatest release
Last security verificationClassification confidence35%
PublicationDraftOfficial distributionNot verified

Distributions

ChannelIdentifierCurrent versionVersionsSource
source_gitarchish9/versioncontrolhelpermcp7e41c9e956d401947012e7ed83d0080fca1f94831Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
source_gitarchish9/versioncontrolhelpermcp7e41c9e956d401947012e7ed83d0080fca1f9483CurrentAug 31, 202610 toolsSucceeded · 0 resources · 0 promptsEvidence restricted
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

No public current-version evidence is available yet.

Current protocol inventory

2025-06-18Negotiated protocol
version-control-helper-mcpServer-reported name
4Capability groups
Aug 31, 2026Observed

Tools 10

ToolCategoryAnnotationsRisk
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"
}

Resources 0

  • None observed.

Resource templates 0

  • None observed.

Prompts 0

  • None observed.

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

GitHub MCP Server questions

How do I install GitHub MCP Server?

No verified package installation command is available in the retained catalog evidence.

What tools does GitHub MCP Server provide?

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.

Is GitHub MCP Server secure?

The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.

Company and product intelligence

These internal links are derived from strong identity fields such as the implementation name, package, repository, vendor, and listing name—not generic description prose.

Associated company landscape

Microsoft & Azure intelligence →

Association is based on retained identity fields; it does not by itself prove first-party publication.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

GitHub MCP ServersDeveloper Tool MCP ServersOfficial vs Community MCP Servers

Let’s talk about MCP security.

Share your details and our security team will contact you.