GitHub MCP Server

The GitHub MCP Server is a Model Context Protocol (MCP) server that provides seamless integration with GitHub APIs, enabling advanced automation and interaction capabilities for developers and tools.

Local serverstdio

What is the GitHub MCP Server?

GitHub MCP Server is an MCP project maintained in the tangochuy/github-mcp-server repository. The maintainer describes its purpose as “The GitHub MCP Server is a Model Context Protocol (MCP) server that provides seamless integration with GitHub APIs, enabling advanced automation and interaction capabilities for…”. Read the project documentation for the complete scope.

Local setup

The project provides a local client configuration using docker. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.

Configuration values

The example declares GITHUB_PERSONAL_ACCESS_TOKEN. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
get_meGet details of the authenticated user
get_issueGets the contents of an issue within a repository
ownerRepository owner (string, required)
repoRepository name (string, required)
issue_numberIssue number to update (number, required)
get_issue_commentsGet comments for a GitHub issue
create_issueCreate a new issue in a GitHub repository
titleNew title (string, optional)
bodyNew description (string, optional)
assigneesNew assignees (string[], optional)
labelsNew labels (string[], optional)
add_issue_commentAdd a comment to an issue
list_issuesList and filter repository issues
stateAlert state (string, optional)
sortSort field (string, optional)
directionSort direction (string, optional)
sinceFilter by date (ISO 8601 timestamp) (string, optional)
pagePage number (number, optional)
perPageResults per page (number, optional)
update_issueUpdate an existing issue in a GitHub repository
milestoneNew milestone number (number, optional)
search_issuesSearch for issues and pull requests
querySearch query (string, required)
orderSort order (string, optional)
get_pull_requestGet details of a specific pull request
pullNumberPull request number to update (number, required)
list_pull_requestsList and filter repository pull requests
merge_pull_requestMerge a pull request
commit_titleTitle for the merge commit (string, optional)
commit_messageMessage for the merge commit (string, optional)
merge_methodMerge method (string, optional)
get_pull_request_filesGet the list of files changed in a pull request
get_pull_request_statusGet the combined status of all status checks for a pull request
update_pull_request_branchUpdate a pull request branch with the latest changes from the base branch
expectedHeadShaThe expected SHA of the pull request's HEAD ref (string, optional)
get_pull_request_commentsGet the review comments on a pull request
get_pull_request_reviewsGet the reviews on a pull request
create_pull_request_reviewCreate a review on a pull request review
eventReview action ('APPROVE', 'REQUEST_CHANGES', 'COMMENT') (string, required)
commitIdSHA of commit to review (string, optional)
commentsLine-specific comments array of objects to place comments on pull request changes (array, optional)
create_pull_requestCreate a new pull request
headBranch containing changes (string, required)
baseNew base branch name (string, optional)
draftCreate as draft PR (boolean, optional)
maintainer_can_modifyAllow maintainer edits (boolean, optional)
add_pull_request_review_commentAdd a review comment to a pull request or reply to an existing comment
pull_numberPull request number (number, required)
commit_idThe SHA of the commit to comment on (string, required unless using in_reply_to)
pathOnly commits containing this file path (string, optional)
lineThe line of the blob in the pull request diff that the comment applies to (number, optional)
sideThe side of the diff to comment on (LEFT or RIGHT) (string, optional)
start_lineFor multi-line comments, the first line of the range (number, optional)
start_sideFor multi-line comments, the starting side of the diff (LEFT or RIGHT) (string, optional)
subject_typeThe level at which the comment is targeted (line or file) (string, optional)
in_reply_toThe ID of the review comment to reply to (number, optional). When specified, only body is required and other parameters are ignored.
update_pull_requestUpdate an existing pull request in a GitHub repository
create_or_update_fileCreate or update a single file in a repository
messageCommit message (string, required)
contentFile content (string, required)
branchNew branch name (string, required)
shaCommit SHA, branch name, or tag name (string, required)
list_branchesList branches in a GitHub repository
push_filesPush multiple files in a single commit
filesFiles to push, each with path and content (array, required)
search_repositoriesSearch for GitHub repositories
create_repositoryCreate a new GitHub repository
privateWhether the repository is private (boolean, optional)
autoInitAuto-initialize with README (boolean, optional)
get_file_contentsGet contents of a file or directory
refGit reference (string, optional)
fork_repositoryFork a repository
organizationTarget organization name (string, optional)
create_branchCreate a new branch
list_commitsGet a list of commits of a branch in a repository
get_commitGet details for a commit from a repository
search_codeSearch for code across GitHub repositories
search_usersSearch for GitHub users
get_code_scanning_alertGet a code scanning alert
alertNumberAlert number (number, required)
list_code_scanning_alertsList code scanning alerts for a repository
severityAlert severity (string, optional)

How to install the GitHub MCP Server

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PERSONAL_ACCESS_TOKEN"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
GITHUB_PERSONAL_ACCESS_TOKENDeclared in the maintainer’s client configuration.Check documentation