GitHub MCP Server

MCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.

Local serverstdioMIT

What is the GitHub MCP Server?

GitHub MCP Server is an MCP project maintained in the marcusdb/github-mcp-server-ts repository. The maintainer describes its purpose as “MCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more”. 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
Inputs:owner (string): Repository owner
branchstring): Name for new branch
shaoptional string): branch name
ReturnsSuccess status (usually 204 No Content)
pageoptional number): Page number
perPageoptional number): Results per page (max 100)
privateoptional boolean): Whether repo should be private
autoInitoptional boolean): Initialize with README
titleoptional string): New title
bodystring): Comment text
assigneesoptional string[]): New assignees
labelsoptional string[]): Array of label names to set. Provide an empty array to remove all labels.
milestoneoptional number): New milestone number
headoptional string): Filter by head user/org and branch
baseoptional string): Filter by base branch
draftoptional boolean): Create as draft PR
maintainer_can_modifyoptional boolean): Allow maintainer edits
organizationoptional string): Organization to fork to
from_branchoptional string): Source branch (defaults to repo default)
stateoptional string): New state ('open' or 'closed')
sortoptional string): Sort by ('due_on', 'completeness', default: 'due_on')
directionoptional string): Sort direction ('asc', 'desc', default: 'asc')
sinceoptional string): Filter by date (ISO 8601 timestamp)
per_pageoptional number): Results per page
orderoptional string): Sort order ('asc' or 'desc')
commit_idoptional string): SHA of commit to review
commentsoptional array): Line-specific comments, each with:
commit_titleoptional string): Title for merge commit
commit_messageoptional string): Extra detail for merge commit
merge_methodoptional string): Merge method ('merge', 'squash', 'rebase')
expected_head_shaoptional string): The expected SHA of the pull request's HEAD ref
coloroptional string): New hex color code
new_nameoptional string): The new name for the label
due_onoptional string): New due date (ISO 8601 format)

How to install the GitHub MCP Server

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "mcp/github"
      ],
      "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