Git MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Git MCP Server List the merged pull requests for this repository"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Git MCP Server
A Model Context Protocol (MCP) server that gives AI assistants the ability to inspect local Git repositories and interact with the GitHub API — reading commit history, diffs, file contents, issues, comments, pull requests, and project boards — all from a single, modular TypeScript server.
Tools
The server exposes 10 tools across four categories.
Git
Tool | Description |
| Returns all uncommitted changes in a local repository (equivalent to |
| Retrieves recent commit history with hash, author, date, and message. Accepts a |
| Shows line-by-line file differences. Can be scoped to a specific file or limited to staged changes only. |
| Returns the full directory and file tree of a repository — useful for architectural overviews and documentation. |
File System
Tool | Description |
| Reads the entire content of a small file at once. Ideal for source files and configs. |
| Reads a specific line range ( |
GitHub Issues
Tool | Description |
| Fetches all issues (open and closed) from a remote GitHub repository. |
| Retrieves all comments on a specific issue by number, including author and timestamps. |
| Creates a new issue with title, body, labels, assignees, and priority — then automatically adds it to the repository's GitHub Projects board. Handles multi-project repos by prompting for project selection. |
GitHub Pull Requests
Tool | Description |
| Lists recent pull requests from a repository. Toggle between merged and open PRs with |
Related MCP server: Simple Code Review Assistant
Architecture
The server follows a layered, modular design introduced in PR #1:
src/
├── index.ts # Server bootstrap — wires tools to the MCP server
├── config.ts # Centralised environment config (GITHUB_TOKEN, cache TTL)
├── services/
│ ├── github-rest.ts # GitHub REST API client
│ ├── github-graphql.ts # GitHub GraphQL client (used for Projects v2 boarding)
│ ├── cache.ts # In-memory project metadata cache (1 h TTL)
│ └── git-cmd.ts # Local Git CLI wrapper
├── tools/
│ ├── git.ts # Git operation tools
│ ├── filesystem.ts # File reading tools
│ ├── issues.ts # GitHub Issue tools
│ └── pulls.ts # GitHub Pull Request tools
├── types/
│ ├── github.ts # GitHub API response types
│ ├── cache.ts # Cache types
│ └── git.ts # Git operation types
└── utils/
└── helpers.ts # Shared utility functionsRequirements
Node.js v18 or later
GitHub Personal Access Token with
repoandprojectscopes
Installation
# Clone the repository
git clone https://github.com/EnesOzturk11/Git-MCP-Server.git
cd Git-MCP-Server
# Install dependencies
npm install
# Build
npm run buildConfiguration
The server reads a single environment variable:
Variable | Required | Description |
| Yes | Personal Access Token for GitHub API authentication |
Create a .env file in the project root or export the variable in your shell:
GITHUB_TOKEN=ghp_your_token_hereUsage with Claude Desktop
Add the server to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"git-mcp-server": {
"command": "node",
"args": ["/absolute/path/to/Git-MCP-Server/build/index.js"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}Restart Claude Desktop — the 10 tools will become available immediately.
Tech Stack
Layer | Technology |
Language | TypeScript 5 |
Runtime | Node.js (ESM) |
Protocol | Model Context Protocol SDK |
Validation | Zod |
GitHub API | REST + GraphQL (Projects v2) |
Environment | dotenv |
Contributing
Issues and pull requests are welcome. Please open an issue first to discuss any significant changes.
Available Tools
10 toolscreate_and_board_issueCreate GitHub Issue and Board the IssueA
Creates a new issue in a GitHub repository and automatically assigns it to the project board with a specific priority. Use this when identifying bugs, technical debt, or documentation gaps that need tracking.
Inputs: body (required), title (required), priority (required), repoName (required), +6 more.
fetch_all_issuesGet All IssuesB
Get all issues from the specified remote repo and list them
Inputs: repoName (required), repoOwner (required).
fetch_merged_prsFetch Pull RequestsB
Retrieves a list of Pull Requests from the specified GitHub repository. Crucial for generating automated release notes, writing changelogs, or summarizing the latest features and bug fixes added to the project.
Inputs: repoName (required), repoOwner (required), limit, isMerged.
get-git-diffGet Git DiffB
Get all difference in files and show the differences line by line. It can focus on a specific file according to willingness
Inputs: repoPath (required), cached, targetFile.
get_git_logGet Git LogB
List recent commits of the project
Inputs: maxCount (required), repoPath (required).
get_git_statusGet Git StatusC
Get all changes in directory by calling git command (git status)
Inputs: repoPath (required).
get_issue_commentsGet All Comments of the Given IssueC
Retrieves the all comments of the given issue based on its comment_url datafield which is given in the parameter of the function
Inputs: repoName (required), repoOwner (required), issue_number (required).
get_repo_structureGet Repository StructureB
Returns the directory and file structure of the git repository. Useful for architectural documentation.
Inputs: repoPath (required).
read_local_fileRead the Small Local FileA
Reads the entire content of a specific small sized file. Crucial for understanding the full context of the code before writing documentation.
Inputs: filePath (required), repoPath (required).
read_local_file_chunkRead Large File by Line RangeA
Reads a specific line range from a large file. Use startLine and endLine to fetch only the section you need, reducing memory usage and context size.
Inputs: endLine (required), filePath (required), repoPath (required), startLine (required), +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Most tools target clearly distinct resources or actions: log, status, diff, structure, file reading, issues, and PRs. Slight overlap exists between get_git_diff and get_git_status, but descriptions clarify the summary vs line-by-line difference. read_local_file and read_local_file_chunk are intentionally paired for whole vs chunk access.
The majority follow a verb_noun snake_case pattern (get_git_log, read_local_file, fetch_all_issues), but get-git-diff breaks the pattern with hyphens. Verbs also vary between get, read, fetch, and create, reducing predictability slightly.
Ten tools is well-scoped for a Git-oriented server, covering repository inspection, file reading, issues, and PRs without unnecessary bloat. Each tool has a clear role, and the count feels appropriate for the described workflows.
The server covers common read-heavy operations well (log, status, diff, structure, files) and includes issue listing/creation and merged PR fetching. However, notable gaps exist for a full Git workflow: no single-issue retrieval, no issue update/close, no PR creation, and no branch or commit detail tools. Minor workarounds are possible for documentation tasks, but some dead ends occur.
Maintenance
Related MCP Connectors
Operate GitHub from your AI assistant: repos, PRs, issues, Actions. Previews and read-only mode.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Read and write KukGit repositories, files, issues and pull requests from an AI assistant.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with local Git repositories for operations like status, commits, branching, and diffs, plus GitHub API integration for managing pull requests when authenticated.-
- FlicenseNot gradedqualityDmaintenanceEnables AI models to fetch GitHub repository information, read file contents, and search local documentation.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to answer natural-language GitHub queries by listing repositories, issues, pull requests, branches, commits, and files, as well as performing writes with dry-run and confirmation safeguards.-
- AlicenseAqualityDmaintenanceConnects AI assistants to GitHub repositories, pull requests, issues, commits, and code search while enabling repository visibility controls, CI/CD monitoring, sandboxed local filesystem access, and code quality/security analysis.131MIT