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.
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.
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.
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.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| get_me | Get details of the authenticated user |
| get_issue | Gets the contents of an issue within a repository |
| owner | Repository owner (string, required) |
| repo | Repository name (string, required) |
| issue_number | Issue number to update (number, required) |
| get_issue_comments | Get comments for a GitHub issue |
| create_issue | Create a new issue in a GitHub repository |
| title | New title (string, optional) |
| body | New description (string, optional) |
| assignees | New assignees (string[], optional) |
| labels | New labels (string[], optional) |
| add_issue_comment | Add a comment to an issue |
| list_issues | List and filter repository issues |
| state | Alert state (string, optional) |
| sort | Sort field (string, optional) |
| direction | Sort direction (string, optional) |
| since | Filter by date (ISO 8601 timestamp) (string, optional) |
| page | Page number (number, optional) |
| perPage | Results per page (number, optional) |
| update_issue | Update an existing issue in a GitHub repository |
| milestone | New milestone number (number, optional) |
| search_issues | Search for issues and pull requests |
| query | Search query (string, required) |
| order | Sort order (string, optional) |
| get_pull_request | Get details of a specific pull request |
| pullNumber | Pull request number to update (number, required) |
| list_pull_requests | List and filter repository pull requests |
| merge_pull_request | Merge a pull request |
| commit_title | Title for the merge commit (string, optional) |
| commit_message | Message for the merge commit (string, optional) |
| merge_method | Merge method (string, optional) |
| get_pull_request_files | Get the list of files changed in a pull request |
| get_pull_request_status | Get the combined status of all status checks for a pull request |
| update_pull_request_branch | Update a pull request branch with the latest changes from the base branch |
| expectedHeadSha | The expected SHA of the pull request's HEAD ref (string, optional) |
| get_pull_request_comments | Get the review comments on a pull request |
| get_pull_request_reviews | Get the reviews on a pull request |
| create_pull_request_review | Create a review on a pull request review |
| event | Review action ('APPROVE', 'REQUEST_CHANGES', 'COMMENT') (string, required) |
| commitId | SHA of commit to review (string, optional) |
| comments | Line-specific comments array of objects to place comments on pull request changes (array, optional) |
| create_pull_request | Create a new pull request |
| head | Branch containing changes (string, required) |
| base | New base branch name (string, optional) |
| draft | Create as draft PR (boolean, optional) |
| maintainer_can_modify | Allow maintainer edits (boolean, optional) |
| add_pull_request_review_comment | Add a review comment to a pull request or reply to an existing comment |
| pull_number | Pull request number (number, required) |
| commit_id | The SHA of the commit to comment on (string, required unless using in_reply_to) |
| path | Only commits containing this file path (string, optional) |
| line | The line of the blob in the pull request diff that the comment applies to (number, optional) |
| side | The side of the diff to comment on (LEFT or RIGHT) (string, optional) |
| start_line | For multi-line comments, the first line of the range (number, optional) |
| start_side | For multi-line comments, the starting side of the diff (LEFT or RIGHT) (string, optional) |
| subject_type | The level at which the comment is targeted (line or file) (string, optional) |
| in_reply_to | The ID of the review comment to reply to (number, optional). When specified, only body is required and other parameters are ignored. |
| update_pull_request | Update an existing pull request in a GitHub repository |
| create_or_update_file | Create or update a single file in a repository |
| message | Commit message (string, required) |
| content | File content (string, required) |
| branch | New branch name (string, required) |
| sha | Commit SHA, branch name, or tag name (string, required) |
| list_branches | List branches in a GitHub repository |
| push_files | Push multiple files in a single commit |
| files | Files to push, each with path and content (array, required) |
| search_repositories | Search for GitHub repositories |
| create_repository | Create a new GitHub repository |
| private | Whether the repository is private (boolean, optional) |
| autoInit | Auto-initialize with README (boolean, optional) |
| get_file_contents | Get contents of a file or directory |
| ref | Git reference (string, optional) |
| fork_repository | Fork a repository |
| organization | Target organization name (string, optional) |
| create_branch | Create a new branch |
| list_commits | Get a list of commits of a branch in a repository |
| get_commit | Get details for a commit from a repository |
| search_code | Search for code across GitHub repositories |
| search_users | Search for GitHub users |
| get_code_scanning_alert | Get a code scanning alert |
| alertNumber | Alert number (number, required) |
| list_code_scanning_alerts | List code scanning alerts for a repository |
| severity | Alert severity (string, optional) |
{
"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.
| Variable | Description | Required |
|---|---|---|
| GITHUB_PERSONAL_ACCESS_TOKEN | Declared in the maintainer’s client configuration. | Check documentation |
Read, search and edit files inside allowed directories with the Model Context Protocol reference Filesystem server.
Retrieve version-aware library documentation and code examples with Context7 MCP, using resolve-library-id and query-docs.
Use Microsoft’s Playwright MCP server to navigate pages, inspect accessibility snapshots, fill forms and capture browser screenshots.
Connect GitHub MCP to repositories, issues and pull requests with GitHub’s hosted service or a locally run server.
Use the Supabase MCP server to inspect database schemas, query project data and retrieve docs through a project-scoped connection.
Search Linear issues and projects, inspect work context and manage updates through Linear’s hosted MCP server with OAuth.