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 cloudbarista/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)
create_issueCreate a new issue in a GitHub repository
titlePR title (string, required)
bodyPR 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)
per_pageResults per page (number, optional)
get_pull_requestGet details of a specific pull request
pullNumberPull request number (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, each object with path (string), position (number), and body (string) (array, optional)
create_pull_requestCreate a new pull request
headBranch containing changes (string, required)
baseBranch to merge into (string, required)
draftCreate as draft PR (boolean, optional)
maintainer_can_modifyAllow maintainer edits (boolean, optional)
create_or_update_fileCreate or update a single file in a repository
pathOnly commits containing this file path (string, optional)
messageCommit message (string, required)
contentFile content (string, required)
branchNew branch name (string, required)
shaBranch name, tag, or commit SHA (string, optional)
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_commitsGets commits of a branch in 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