Git MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITHUB_TOKEN | No | GitHub Personal Access Token for authenticated git operations (required for push/pull) |
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| git_create_branchA | Create and checkout a git branch. Naming: branch_name (explicit) OR issue_number/description (auto: issue-N-desc or feature-desc). Options: from_branch (default: HEAD or main if auto-naming), pull_latest (default: False). Returns: {branch_name, previous_branch, sha, based_on} |
| git_commitA | Create conventional commit (type: message) with Claude attribution. Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert Options:
Returns: {sha, stats: {files_changed, insertions, deletions}, message} |
| git_pushA | Push commits to remote. Uses GITHUB_TOKEN from env if available. Options:
Returns: {branch, remote, sha, commits_pushed, is_new_branch, force} |
| git_pullB | Pull commits from remote. Uses GITHUB_TOKEN from env if available. Fails if there are uncommitted changes (commit or stash first). Returns: {branch, remote, sha_before, sha_after, commits_pulled, files_changed, up_to_date} |
| git_statusA | Get repository status: branch, tracking info, and file changes. Returns: {branch, tracking, ahead, behind, staged, modified, untracked, clean} clean=True means no staged, modified, or untracked files. |
| git_sync_with_mainA | Sync current branch with main. Fetches latest and merges/rebases. Options:
Fails if on main branch or has uncommitted changes. Returns: {branch, main_branch, strategy, sha_before, sha_after, commits_added, up_to_date, files_changed} |
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 6 tools
Each tool has a distinct purpose: commit, create branch, pull, push, status, and sync with main. There is no ambiguity or overlap between them.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., git_commit, git_push), making them predictable and easy to distinguish.
With 6 tools, the server is well-scoped for common Git operations. The number is neither too large nor too small for the domain.
The tool set covers core Git workflows (commit, branch, push/pull, status, sync). Minor gaps include no explicit diff or log tools, but these are not essential for basic operations.