The GitHub MCP Server is GitHub's official Model Context Protocol server, designed to connect AI assistants and agents directly to GitHub's platform. It exposes a comprehensive set of tools that allow language models to interact with repositories, issues, pull requests, files, branches, releases, and teams programmatically.
This server enables end-to-end software development workflows, from creating and managing repositories to handling code reviews and collaboration. The available tools cover repository management (creating repos, branches, and files), issue tracking (creating, updating, and commenting on issues), pull request review workflows (adding review comments, replies, and reactions), and organizational context (retrieving teams, members, and authenticated user details).
Maintained by GitHub and released under the MIT license, the server supports read-only and lockdown modes for security-conscious environments and is highly configurable. It serves as a powerful bridge for automating and streamlining common developer operations through natural language.
Quickly bootstrap new projects by creating repositories, initializing files, and setting up branches without leaving your AI assistant.
Create a new private repository called "payment-service" in my organization "acme-corp", initialize it with a README, and add a description saying "Handles payment processing".Create, update, retrieve, or delete files directly in a repository, useful for configuration changes or quick edits.
Update the file "config/settings.yaml" on the "develop" branch of acme-corp/payment-service to change the timeout value to 30 seconds, and commit it with the message "Increase timeout".Create, update, and organize issues, including assigning labels, milestones, assignees, and managing sub-issue hierarchies.
Create a new issue in acme-corp/payment-service titled "Fix null pointer in checkout flow", assign it to user "janedoe", add the labels "bug" and "priority-high", and set the body describing the crash on the payment confirmation page.Open pull requests, request reviewers, and add detailed line-by-line review comments on the diff to facilitate code review workflows.
Create a pull request in acme-corp/payment-service from branch "feature/retry-logic" into "main" titled "Add retry logic for failed payments", and request review from "senior-dev-team".Add pending review comments, reply to existing comments, and react to feedback on specific lines of code.
On pull request #42 in acme-corp/payment-service, add a review comment on line 85 of "src/checkout.js" on the RIGHT side saying "This should handle the timeout exception explicitly".Add comments and emoji reactions to issues and pull requests to keep discussions moving and acknowledge contributors.
Add a comment to issue #17 in acme-corp/payment-service saying "I've reproduced this bug and will have a fix by tomorrow", and add a rocket reaction to the issue itself.Retrieve the latest releases, specific releases by tag, or git tag details to track versioning and deployment history.
Get the latest release for acme-corp/payment-service and show me its release notes and tag name.Fetch detailed commit information, including file-level stats or full diffs, to understand changes and troubleshoot regressions.
Show me the full patch details for commit abc123def in acme-corp/payment-service so I can see exactly what changed in the checkout module.Fork repositories and create feature branches to contribute to open-source or team projects.
Fork the repository octocat/hello-world to my account, then create a new branch called "fix-typo" from the main branch.Retrieve team memberships and member lists to understand organizational structure and route reviews or assignments appropriately.
List all the teams I'm a member of, and then show me the members of the "backend-engineers" team in the "acme-corp" organization.Fetch label details to keep issue categorization consistent across a repository.
Get the details of the "priority-high" label in acme-corp/payment-service including its color and description.Retrieve details of the authenticated user to personalize actions or auto-fill ownership information in other operations.
Who am I logged in as? Get my GitHub profile details and list the repositories I own.