GitHub MCP server

OfficialGitHub30,334Config last verified Jun 1, 2026

GitHub's official remote MCP server for repos, issues, pull requests, Actions, and code search.

The GitHub MCP Server is GitHub's official integration that connects an agent to the GitHub platform: reading repository files, searching code across all of GitHub, managing issues and pull requests, inspecting commits and releases, and driving Actions workflows. Tools are grouped into toolsets (repos, issues, pull_requests, actions, code_security, secret_protection, dependabot, discussions, notifications, projects, and more) so you can enable only what a given agent needs and keep its context lean.

The canonical deployment is the hosted remote endpoint at https://api.githubcopilot.com/mcp/, which supports OAuth for interactive clients or a Personal Access Token passed as a bearer token for headless use. A local Docker image is also published for teams that prefer to run the server themselves, reading the PAT from the GITHUB_PERSONAL_ACCESS_TOKEN environment variable. It is the backbone integration for any coding agent that needs to act on real repositories.

Quick install

Copy-paste configs are provided for all 8 supported clients. Pick your client below.

Add to ~/.claude.json

~/.claude.json
json
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
Or via CLI
bash
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

Heads up

  • First tool call opens a browser to authorize.

Available tools

ToolDescription
get_meGets the authenticated user's profile.
get_teamsGets the teams a user or organization belongs to.
get_team_membersLists the members of an organization team.
get_file_contentsGets the contents of a file or directory from a repository.
create_or_update_fileCreates a new file or updates an existing one in a repository.
delete_fileDeletes a file from a repository.
push_filesPushes multiple files to a repository in a single commit.
create_repositoryCreates a new repository.
fork_repositoryForks a repository into your account.
create_branchCreates a new branch in a repository.
list_branchesLists the branches of a repository.
list_tagsLists the tags of a repository.
get_tagGets details for a specific git tag.
get_commitGets details and the diff for a specific commit.
list_commitsLists commits on a branch of a repository.
list_releasesLists releases for a repository.
get_latest_releaseGets the latest release for a repository.
get_release_by_tagGets a release by its tag name.
list_repository_collaboratorsLists the collaborators with access to a repository.
get_repository_treeGets the file tree of a repository.
search_codeSearches code across GitHub repositories.
search_commitsSearches commits across GitHub repositories.
search_repositoriesSearches for repositories matching a query.
issue_readGets the details, comments, and labels of an issue.
issue_writeCreates or updates an issue.
list_issuesLists issues in a repository with filters.
search_issuesSearches issues across GitHub.
add_issue_commentAdds a comment to an issue.
list_issue_typesLists the available issue type classifications for an org.
sub_issue_writeAdds, removes, or reprioritizes a sub-issue relationship.
list_labelLists the labels defined in a repository.
get_labelGets a specific label from a repository.
label_writeCreates, updates, or deletes a repository label.
create_pull_requestOpens a new pull request.
list_pull_requestsLists pull requests in a repository with filters.
search_pull_requestsSearches pull requests across GitHub.
pull_request_readGets the details, diff, reviews, and comments of a pull request.
update_pull_requestEdits the metadata of a pull request.
update_pull_request_branchUpdates a pull request branch with the latest base changes.
merge_pull_requestMerges a pull request into its base branch.
pull_request_review_writeCreates, submits, or deletes a pull request review.
add_comment_to_pending_reviewAdds a review comment to your latest pending pull request review.
add_reply_to_pull_request_commentReplies to an existing pull request review comment.
request_copilot_reviewRequests a Copilot code review on a pull request.
assign_copilot_to_issueAssigns the Copilot coding agent to an issue.
actions_getGets details of Actions resources such as workflows, runs, jobs, and artifacts.
actions_listLists Actions workflows and runs in a repository.
actions_run_triggerTriggers or controls an Actions workflow run.
get_job_logsGets the logs for an Actions workflow job.
list_code_scanning_alertsLists code scanning alerts for a repository.
get_code_scanning_alertGets details of a specific code scanning alert.
list_secret_scanning_alertsLists secret scanning alerts for a repository.
get_secret_scanning_alertGets details of a specific secret scanning alert.
list_dependabot_alertsLists Dependabot vulnerability alerts for a repository.
get_dependabot_alertGets details of a specific Dependabot alert.
list_global_security_advisoriesLists global security advisories from the GitHub Advisory Database.
get_global_security_advisoryGets a specific global security advisory.
list_repository_security_advisoriesLists security advisories for a repository.
list_org_repository_security_advisoriesLists repository security advisories across an organization.
list_discussionsLists discussions in a repository or organization.
get_discussionGets the details of a discussion.
get_discussion_commentsGets the comments on a discussion.
list_discussion_categoriesLists the available discussion categories.
discussion_comment_writeCreates, edits, or deletes a discussion comment.
list_notificationsLists the authenticated user's notifications.
get_notification_detailsGets the details of a specific notification.
dismiss_notificationMarks a notification as read or done.
mark_all_notifications_readMarks all notifications as read.
manage_notification_subscriptionManages the subscription for a notification thread.
manage_repository_notification_subscriptionManages the notification subscription for a repository.
projects_listLists GitHub Projects and their items.
projects_getGets details of Projects resources such as fields, items, and status updates.
projects_writeCreates or updates Projects items and fields.
create_gistCreates a new gist.
update_gistUpdates the files of an existing gist.
get_gistGets the content of a gist.
list_gistsLists a user's gists.
star_repositoryStars a repository.
unstar_repositoryRemoves a star from a repository.
list_starred_repositoriesLists a user's starred repositories.
search_orgsSearches GitHub organizations.
search_usersSearches GitHub user accounts.

Required configuration

  • GITHUB_PERSONAL_ACCESS_TOKENOptional

    PAT for bearer auth on the remote endpoint or for the local Docker server. Not needed when using OAuth.

  • GITHUB_TOOLSETSOptional

    Comma-separated list of toolsets to enable (e.g. repos,issues,pull_requests). Defaults to a curated set.

  • GITHUB_READ_ONLYOptional

    Set to 1 to restrict the server to read-only tools.

  • GITHUB_HOSTOptional

    Base URL for GitHub Enterprise Server or data-residency deployments.

What you can do with it

Triage and file issues

An agent reads a stack trace, searches the codebase for the offending symbol, and opens a well-scoped issue with the relevant file links.

Automate pull requests

Generate a fix, push it, and open a PR with a clear description, all from inside the agent's normal workflow.

FAQ

Is it free?
Yes. The server is free and open source; you only need a GitHub account and a token or OAuth session scoped to what you want the agent to do.
Does it support remote/OAuth?
Yes. The canonical deployment is remote at https://api.githubcopilot.com/mcp/ with OAuth, or a PAT bearer token; a self-hosted Docker stdio mode is also available.
← Browse all version-control servers