Github MCP Server for interacting with Github's API
Project description
Github MCP Server
A Model Context Protocol (MCP) server for interacting with the Github API.
Features
- Repository Management: Create, fork, and manage Github repositories
- File Operations: Read, write, and update files in repositories
- Issue Tracking: Create, list, and update issues
- Pull Requests: Create and manage pull requests, perform code reviews
- Branch Management: Create branches and list commits
- Search: Search for repositories, code, issues, and users
- Authentication: Secure API authentication using personal access tokens
Installation
pip install mcp-github
Quick Start
- Create a Github personal access token with the necessary permissions.
- Set the token in your environment:
export GITHUB_TOKEN=your_personal_access_token
- Start using the MCP server with UVX:
uvx mcp-github
Environment Variables
GITHUB_TOKEN: Your Github personal access token (required)
UVX Configuration
You can add this to your UVX configuration to easily use the Github MCP Server:
"mcp-github": {
"command": "uvx",
"args": [
"mcp-github"
],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
Available Tools
Repository Management
search_repositories: Search for Github repositoriescreate_repository: Create a new repositoryfork_repository: Fork a repository to your account
File Management
get_file_contents: Get contents of a file or directorycreate_or_update_file: Create or update a file in a repositorypush_files: Push multiple files in a single commit
Issue Management
create_issue: Create a new issuelist_issues: List issues with filtering optionsget_issue: Get details of a specific issueupdate_issue: Update an existing issueadd_issue_comment: Add a comment to an issue
Pull Request Management
create_pull_request: Create a new pull requestlist_pull_requests: List and filter pull requestsget_pull_request: Get details of a specific pull requestcreate_pull_request_review: Create a review on a pull requestget_pull_request_reviews: Get reviews on a pull requestget_pull_request_files: Get list of files changed in a pull requestmerge_pull_request: Merge a pull request
Branch Management
create_branch: Create a new branchlist_commits: Get list of commits of a branch
Search Tools
search_code: Search for code across repositoriessearch_issues: Search for issues and pull requestssearch_users: Search for users on Github
Resources
The server exposes the following resources that can be accessed directly:
repo://{owner}/{repo}: Get repository informationuser://{username}: Get user informationissue://{owner}/{repo}/{number}: Get issue informationpull://{owner}/{repo}/{number}: Get pull request information
Prompt Templates
issue_search: Template for searching Github issuescreate_repository: Template for creating a new repositorypull_request: Template for creating a pull requestcode_search: Template for searching code on Github
Error Handling
The server provides comprehensive error handling for Github API interactions:
- Authentication errors (401)
- Rate limit and permission errors (403)
- Resource not found errors (404)
- Other Github API errors
Examples
Create a new repository:
result = tools.create_repository(
name="my-new-project",
description="A sample project created with Github MCP",
private=False,
auto_init=True
)
Search for repositories:
results = tools.search_repositories(
query="language:python stars:>100",
page=1,
per_page=10
)
Create an issue:
issue = tools.create_issue(
owner="username",
repo="repository-name",
title="Bug report: Application crashes on startup",
body="The application is crashing immediately on startup. This started after the latest update.",
labels=["bug", "high-priority"]
)
Create a pull request:
pr = tools.create_pull_request(
owner="username",
repo="repository-name",
title="Feature: Add user authentication",
body="This PR adds user authentication functionality using OAuth.",
head="feature-auth",
base="main"
)
Development
To contribute to this project:
- Clone the repository
- Install development dependencies
- Make your changes
- Submit a pull request
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_github-0.0.3.tar.gz.
File metadata
- Download URL: mcp_github-0.0.3.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef9de21869b6348bdac8c698aa5db505b3e8c3e129b95af4ce9964e447742771
|
|
| MD5 |
4577b1f4e2b14e7dcfd4e937feaeff38
|
|
| BLAKE2b-256 |
fa41fdf61a48758145b806f2e93933cd92bbc86fce73ef2e853dbd3a0779ae71
|
File details
Details for the file mcp_github-0.0.3-py3-none-any.whl.
File metadata
- Download URL: mcp_github-0.0.3-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8a553363f4d843f1c4498480edb0af7470a3306613d6192cfac2a3e558db872
|
|
| MD5 |
327c224a1ba8279a254ff878954175e4
|
|
| BLAKE2b-256 |
7b319bc25bcb1bcdb6fa707b74bb6f84a27ff3348d9932bc2cadd8a24bbbd3f2
|