actions_getLABSCO SUMMARY
Toolsets are the setting that decides whether this helps or floods the context window.
GitHub's surface is enormous, so the default is five toolsets and everything else is opt-in by name — worth configuring deliberately rather than reaching for all. Two guards sit beside it: --read-only strips the writing tools outright, and lockdown mode filters content from public-repository authors without push access to blunt prompt injection. GitHub is explicit that lockdown is a best-effort content filter and not an authorization boundary, so treat it as one layer rather than the fence.
What it is
GitHub's MCP server for the GitHub platform, in two forms over the same API surface: a remote endpoint GitHub hosts at https://api.githubcopilot.com/mcp/, and a local binary or Docker image you run with your own token.
What you get
- Repository work: file contents read and written, branches and tags, commits, releases, the repository tree, forks, collaborators and code search — get_file_contents, create_or_update_file, push_files, create_branch, list_branches, list_commits, get_commit, get_repository_tree, list_releases, fork_repository, search_code
- Issues end to end, including sub-issues, labels, fields and types — issue_read, issue_write, sub_issue_write, list_issues, search_issues, add_issue_comment, list_issue_fields, list_issue_types
- Pull requests created, read in detail, reviewed comment by comment, merged, updated and their branches refreshed — create_pull_request, pull_request_read, add_comment_to_pending_review, pull_request_review_write, merge_pull_request, update_pull_request, update_pull_request_branch, search_pull_requests
- Actions: workflows and runs listed and inspected, a run triggered, and the logs of the job that failed — actions_list, actions_get, actions_run_trigger, get_job_logs
- Security findings in one place: code scanning, Dependabot, secret scanning and published advisories — list_code_scanning_alerts, list_dependabot_alerts, list_secret_scanning_alerts, get_secret_scanning_alert, list_global_security_advisories
- Discussions, gists, labels, notifications, projects, stargazers, organizations, users and low-level Git operations, each in its own toolset enabled by name
- Work handed to Copilot: an issue assigned, a review requested, and — on the remote server — a pull request opened by the coding agent, Copilot Spaces read, and GitHub's support docs searched — assign_copilot_to_issue, request_copilot_review, create_pull_request_with_copilot, get_copilot_space, github_support_docs_search
- Two safety switches: read-only mode, which offers only the reading tools, and lockdown mode, which withholds or filters public-repository content authored by people without push access
Requirements
A GitHub account. The remote server is authorized over OAuth in hosts that support it, or with a personal access token — enterprise-managed users have PATs disabled until an administrator enables them. Locally it takes GITHUB_PERSONAL_ACCESS_TOKEN and runs as the binary or the ghcr.io/github/github-mcp-server image. Only five toolsets are on by default — context, repos, issues, pull_requests and users — and the rest are named in GITHUB_TOOLSETS, the --toolsets flag, a URL path or an HTTP header depending on how you run it, with all as the catch-all. GitHub Enterprise Server cannot use the remote endpoint; Enterprise Cloud with data residency has its own.
Setup effort
One command plus a key — claude mcp add-json github '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer <YOUR_GITHUB_PAT>"}}', then supply credentials
USE CASES
Reviewing a pull request without leaving the editor
Read the PR with its diff and comments, leave review comments as you go, then submit the review.
Working out why the build went red
Find the run, identify the failing job, and read that job's logs rather than the whole workflow output.
Triaging what security scanning found
Pull code scanning, Dependabot and secret scanning alerts together and sort out which ones are real.
Making a small fix and opening a pull request for it
Branch, commit the change, and open the PR against the base branch in one sequence.
Finding out how a repository does something
Search the code, then read the files the search points at instead of cloning to look around.
Handing a well-specified issue to the coding agent
Write the issue so it stands on its own, then assign Copilot to it.
90 tools
Listed in project docs. Your client may show a different list.
actions_listactions_run_triggerget_job_logsget_code_quality_findingget_code_scanning_alertlist_code_scanning_alertsget_meget_team_membersget_teamsassign_copilot_to_issuerequest_copilot_reviewassign_copilot_to_issue_with_intentget_dependabot_alertlist_dependabot_alertsdiscussion_comment_writeget_discussionget_discussion_commentslist_discussion_categorieslist_discussionscreate_gistget_gistlist_gistsupdate_gistget_repository_treeadd_issue_commentget_labelissue_readissue_writelist_issue_fieldslist_issue_typeslist_issuessearch_issuessub_issue_writelabel_writelist_labeldismiss_notificationget_notification_detailslist_notificationsmanage_notification_subscriptionmanage_repository_notification_subscriptionmark_all_notifications_readsearch_orgsprojects_getprojects_listprojects_writeadd_comment_to_pending_reviewadd_reply_to_pull_request_commentcreate_pull_requestlist_pull_requestsmerge_pull_requestpull_request_readpull_request_review_writesearch_pull_requestsupdate_pull_requestupdate_pull_request_branchcreate_branchcreate_or_update_filecreate_repositorydelete_filedelete_repositoryfork_repositoryget_commitget_file_contentsget_latest_releaseget_release_by_tagget_taglist_brancheslist_commitslist_releaseslist_repository_collaboratorslist_tagspush_filessearch_codesearch_commitssearch_repositoriesget_secret_scanning_alertlist_secret_scanning_alertsget_global_security_advisorylist_global_security_advisorieslist_org_repository_security_advisorieslist_repository_security_advisorieslist_starred_repositoriesstar_repositoryunstar_repositorysearch_userscreate_pull_request_with_copilotget_copilot_spacelist_copilot_spacesgithub_support_docs_searchBEFORE YOU INSTALL
What to know first
Tools you get
90 tools named in the project's documentation.
Requires
- A client that can reach a remote MCP server over HTTP
- GITHUB_PERSONAL_ACCESS_TOKEN in your environment
INSTALLATION
Connect your client
Server setup
claude mcp add
Claude Code
claude mcp add-json github '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer <YOUR_GITHUB_PAT>"}}'Hosted endpoint
https://api.githubcopilot.com/mcp/Add this hosted endpoint to your MCP client using the credentials listed under Requirements.
MCP Clients
VS Code
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}GitHub Copilot
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}The token comes from the GITHUB_PERSONAL_ACCESS_TOKEN environment variable: export it with your personal access token in your shell profile (~/.zshrc or ~/.bashrc) before you start Copilot.
Claude Desktop
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p",
"127.0.0.1:8085:8085",
"-e",
"GITHUB_OAUTH_CALLBACK_PORT",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_OAUTH_CALLBACK_PORT": "8085"
}
}
}
}Xcode
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer <YOUR_GITHUB_PAT>"
}
}
}
}Cursor
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer <YOUR_GITHUB_PAT>"
}
}
}
}Windsurf, Antigravity
{
"mcpServers": {
"github": {
"serverUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer <YOUR_GITHUB_PAT>"
}
}
}
}Zed
{
"context_servers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer <YOUR_GITHUB_PAT>"
}
}
}
}OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"github": {
"type": "remote",
"url": "https://api.githubcopilot.com/mcp/",
"enabled": true,
"oauth": false,
"headers": {
"Authorization": "Bearer <YOUR_GITHUB_PAT>"
}
}
}
}Cline
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"type": "streamableHttp",
"disabled": false,
"headers": {
"Authorization": "Bearer <YOUR_GITHUB_PAT>"
},
"autoApprove": []
}
}
}Roo Code
{
"mcpServers": {
"github": {
"type": "streamable-http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer <YOUR_GITHUB_PAT>"
}
}
}
}Codex
codex mcp add github --url https://api.githubcopilot.com/mcp/ --bearer-token-env-var GITHUB_PAT_TOKENCodex sends the token stored in the GITHUB_PAT_TOKEN environment variable: set it to your GitHub personal access token before you start Codex.
Gemini CLI
{
"mcpServers": {
"github": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer $GITHUB_MCP_PAT"
}
}
}
}Gemini CLI fills in $GITHUB_MCP_PAT from your environment: put GITHUB_MCP_PAT=<YOUR_GITHUB_PAT> in ~/.gemini/.env.