adityaanand176/Github-MCP
If you are the rightful owner of Github-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server implementation for interacting with GitHub repositories programmatically.
get-user-info
Gets information about the authenticated user.
list-repos
Lists repositories for the authenticated user.
get-repo
Gets details of a specific repository.
list-branches
Lists branches of a repository.
list-following
Lists GitHub users you are following.
make-a-commit
Creates a commit with a message and file content.
create-branch
Creates a new branch from an existing branch.
get-file
Gets the contents of a file in a repository.
list-repo-contents
Lists the contents of a repository directory.
compare-branches
Compares two branches in a repository.
delete-file
Deletes a file from a repository.
update-file
Updates a file in a repository.
get-branch
Gets details of a specific branch.
get-latest-commit
Gets the latest commit of a branch.
get-pull-requests
Lists pull requests for a repository.
create-pull-request
Creates a new pull request.
GitHub MCP Server 🚀
A Model Context Protocol (MCP) server implementation that provides a set of tools for interacting with GitHub repositories programmatically.
Features
-
User Management
- Get user information
- List following users
-
Repository Operations
- List repositories
- Get repository details
- List repository contents
- Compare branches
-
Branch Management
- List branches
- Get branch details
- Create new branches
- Get latest commit
-
File Operations
- Get file contents
- Update files
- Delete files
- Create commits
-
Pull Request Management
- List pull requests
- Create pull requests
Installation
- Clone the repository
- Install dependencies:
bun install
- Create a
.env
file with your GitHub token:
GITHUB_TOKEN=your_token_here
Usage
Start the MCP server(Claude):
- Install Bun
bun index.ts
- For command you may have to provide the directory of your bun.
which bun
- Add the mcp server to claude_desktop_config.json(currently only claude desktop supports mcp capabilities)
{
"mcpServers": {
"Github-MCP": {
"command": "/Users/<user>>/.bun/bin/bun",
"args": ["index.ts"]
}
}
}
GitHub Copilot
You can also use this MCP server with GitHub Copilot by configuring it in your development environment:
- Install the GitHub Copilot extension in VS Code
- Configure the MCP server in your workspace settings or global settings:
"mcp": {
"servers": {
"github-mcp-test2": {
"command": "/Users/<user>/.bun/bin/bun",
"args": ["/path/to/your/Github-MCP/index.ts"],
"env": {
"GITHUB_TOKEN": "YOUR_PERSONAL_ACCOUNT_TOKEN"
},
}
}
}
- Restart VS Code and GitHub Copilot will have access to the GitHub MCP tools
Available Tools
-
get-user-info
- Gets information about the authenticated user
-
list-repos
- Lists repositories for the authenticated user
-
get-repo
- Parameters:
owner
: Repository ownerrepo
: Repository name
- Parameters:
-
list-branches
- Parameters:
owner
: Repository ownerrepo
: Repository name
- Parameters:
-
list-following
- Lists GitHub users you are following
-
make-a-commit
- Parameters:
message
: Commit messagecontent
: File contentpath
: File pathbranch
: Target branchrepo
: Repository name
- Parameters:
-
create-branch
- Parameters:
owner
: Repository ownerrepo
: Repository namebranch
: New branch namefrom_branch
: (Optional) Source branch
- Parameters:
-
get-file
- Parameters:
owner
: Repository ownerrepo
: Repository namepath
: File pathbranch
: Branch name
- Parameters:
-
list-repo-contents
- Parameters:
owner
: Repository ownerrepo
: Repository namepath
: Directory pathbranch
: Branch name
- Parameters:
-
compare-branches
- Parameters:
owner
: Repository ownerrepo
: Repository namebase
: Base branchhead
: Head branch
- Parameters:
-
delete-file
- Parameters:
owner
: Repository ownerrepo
: Repository namepath
: File pathsha
: File SHAbranch
: Branch name
- Parameters:
-
update-file
- Parameters:
owner
: Repository ownerrepo
: Repository namepath
: File pathcontent
: New contentsha
: File SHAbranch
: Branch name
- Parameters:
-
get-branch
- Parameters:
owner
: Repository ownerrepo
: Repository namebranch
: Branch name
- Parameters:
-
get-latest-commit
- Parameters:
owner
: Repository ownerrepo
: Repository namebranch
: Branch name
- Parameters:
-
get-pull-requests
- Parameters:
owner
: Repository ownerrepo
: Repository namestate
: (Optional) Filter by state ("all", "open", "closed")
- Parameters:
-
create-pull-request
- Parameters:
owner
: Repository ownerrepo
: Repository namehead
: Head branchbase
: Base branchtitle
: PR titlebody
: (Optional) PR description
- Parameters:
Development
This project uses Bun as the runtime environment. Make sure you have Bun installed before running the project.
License
MIT