GitHub MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITHUB_TOKEN | Yes | GitHub Personal Access Token for authentication | |
| GITHUB_USERNAME | No | GitHub username (optional, default: 'git') | git |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| logging | {} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| git-add-allA | Adds all files to the staging area |
| git-addB | Adds a specific file to the staging area |
| git-removeA | Removes a specific file from the staging area |
| git-remove-allB | Removes all files from the staging area |
| git-statusB | Displays the status of the git repository |
| git-commitC | Commits staged files |
| git-pushC | Pushes committed files to the remote repository |
| git-pullC | Pulls changes from the remote repository |
| git-branchB | Lists all branches or creates a new branch |
| git-checkoutB | Switches to a branch or creates and switches to a new branch |
| git-logB | Shows commit history |
| git-diffB | Shows differences between commits, branches, or working directory |
| git-stashB | Stashes current changes |
| git-stash-popC | Applies the most recent stash |
| git-resetC | Resets repository to a specific commit or state |
| git-cloneC | Clones a repository |
| git-initB | Initializes a new Git repository |
| git-remote-listB | Lists all remote repositories |
| git-remote-addC | Adds a remote repository |
| git-remote-removeB | Removes a remote repository |
| git-remote-set-urlB | Changes the URL of an existing remote repository |
| git-flowA | Complete Git workflow: add all changes, commit with message, and push to remote |
| git-quick-commitB | Quick commit with automatic message generation based on changes |
| git-syncB | Synchronize repository: pull from remote, then push local changes |
| git-tagB | Manage Git tags: create, list, delete, or show tag details |
| git-mergeB | Merge a branch into the current branch with conflict detection |
| git-rebaseC | Rebase current branch onto another branch or commit |
| git-cherry-pickB | Apply changes from a specific commit to the current branch |
| git-blameB | Show line-by-line authorship information for a file |
| git-bisectB | Binary search through commit history to find bugs |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 30 tools
Many tools have overlapping purposes, such as multiple ways to add files (git-add, git-add-all, git-flow, git-quick-commit) and commit (git-commit, git-quick-commit, git-flow). The presence of git-sync and git-pull also creates ambiguity. An agent would struggle to choose the correct tool without detailed knowledge.
All tools start with 'git-' and use lowercase hyphenated names, which is consistent. However, the pattern varies: some are simple verbs (git-clone), others are verb-object (git-add-all), and a few are phrases (git-quick-commit). Minor deviations from a strict verb_noun pattern.
With 30 tools, the server exceeds the recommended range for a focused server. Many tools are redundant (e.g., git-add vs git-add-all, git-commit vs git-quick-commit) and could be consolidated. The high count adds complexity without proportional benefit.
The tool set covers nearly all common Git operations, including init, clone, add, commit, push, pull, branch, merge, rebase, stash, diff, log, blame, bisect, cherry-pick, reset, tag, and remote management. No major gaps for typical Git workflows.