GitHub Official

GitHub Official

Official GitHub MCP Server, by GitHub. Provides seamless integration with GitHub APIs, enabling advanced automation and interaction capabilities for developers and tools.

80 Tools

Requires Secrets
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

About

GitHub Official MCP Server

Official GitHub MCP Server, by GitHub. Provides seamless integration with GitHub APIs, enabling advanced automation and interaction capabilities for developers and tools.

What is an MCP Server?

Characteristics

AttributeDetails
Docker Imageghcr.io/github/github-mcp-server
Authorgithub
Repositoryhttps://github.com/github/github-mcp-server
Dockerfilehttps://github.com/github/github-mcp-server/blob/main/Dockerfile
Docker Image built bygithub
Docker Scout Health ScoreNot available
Verify SignatureNot available
LicenceMIT License

Available Tools (80)

Tools provided by this ServerShort Description
add_comment_to_pending_reviewAdd review comment to the requester's latest pending pull request review
add_issue_commentAdd comment to issue
add_sub_issueAdd sub-issue
assign_copilot_to_issueAssign Copilot to issue
cancel_workflow_runCancel workflow run
create_and_submit_pull_request_reviewCreate and submit a pull request review without comments
create_branchCreate branch
create_gistCreate Gist
create_issueOpen new issue
create_or_update_fileCreate or update file
create_pending_pull_request_reviewCreate pending pull request review
create_pull_requestOpen new pull request
create_repositoryCreate repository
delete_fileDelete file
delete_pending_pull_request_reviewDelete the requester's latest pending pull request review
delete_workflow_run_logsDelete workflow logs
dismiss_notificationDismiss notification
download_workflow_run_artifactDownload workflow artifact
fork_repositoryFork repository
get_code_scanning_alertGet code scanning alert
get_commitGet commit details
get_dependabot_alertGet dependabot alert
get_discussionGet discussion
get_discussion_commentsGet discussion comments
get_file_contentsGet file or directory contents
get_issueGet issue details
get_issue_commentsGet issue comments
get_job_logsGet job logs
get_meGet my user profile
get_notification_detailsGet notification details
get_pull_requestGet pull request details
get_pull_request_commentsGet pull request comments
get_pull_request_diffGet pull request diff
get_pull_request_filesGet pull request files
get_pull_request_reviewsGet pull request reviews
get_pull_request_statusGet pull request status checks
get_secret_scanning_alertGet secret scanning alert
get_tagGet tag details
get_workflow_runGet workflow run
get_workflow_run_logsGet workflow run logs
get_workflow_run_usageGet workflow usage
list_branchesList branches
list_code_scanning_alertsList code scanning alerts
list_commitsList commits
list_dependabot_alertsList dependabot alerts
list_discussion_categoriesList discussion categories
list_discussionsList discussions
list_gistsList Gists
list_issuesList issues
list_notificationsList notifications
list_pull_requestsList pull requests
list_secret_scanning_alertsList secret scanning alerts
list_sub_issuesList sub-issues
list_tagsList tags
list_workflow_jobsList workflow jobs
list_workflow_run_artifactsList workflow artifacts
list_workflow_runsList workflow runs
list_workflowsList workflows
manage_notification_subscriptionManage notification subscription
manage_repository_notification_subscriptionManage repository notification subscription
mark_all_notifications_readMark all notifications as read
merge_pull_requestMerge pull request
push_filesPush files to repository
remove_sub_issueRemove sub-issue
reprioritize_sub_issueReprioritize sub-issue
request_copilot_reviewRequest Copilot review
rerun_failed_jobsRerun failed jobs
rerun_workflow_runRerun workflow run
run_workflowRun workflow
search_codeSearch code
search_issuesSearch issues
search_orgsSearch organizations
search_pull_requestsSearch pull requests
search_repositoriesSearch repositories
search_usersSearch users
submit_pending_pull_request_reviewSubmit the requester's latest pending pull request review
update_gistUpdate Gist
update_issueEdit issue
update_pull_requestEdit pull request
update_pull_request_branchUpdate pull request branch

Tools Details

Tool: add_comment_to_pending_review

Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this (check with the user if not sure).

ParametersTypeDescription
bodystringThe text of the review comment
ownerstringRepository owner
pathstringThe relative path to the file that necessitates a comment
pullNumbernumberPull request number
repostringRepository name
subjectTypestringThe level at which the comment is targeted
linenumberoptionalThe line of the blob in the pull request diff that the comment applies to. For multi-line comments, the last line of the range
sidestringoptionalThe side of the diff to comment on. LEFT indicates the previous state, RIGHT indicates the new state
startLinenumberoptionalFor multi-line comments, the first line of the range that the comment applies to
startSidestringoptionalFor multi-line comments, the starting side of the diff that the comment applies to. LEFT indicates the previous state, RIGHT indicates the new state

Tool: add_issue_comment

Add a comment to a specific issue in a GitHub repository.

ParametersTypeDescription
bodystringComment content
issue_numbernumberIssue number to comment on
ownerstringRepository owner
repostringRepository name

Tool: add_sub_issue

Add a sub-issue to a parent issue in a GitHub repository.

ParametersTypeDescription
issue_numbernumberThe number of the parent issue
ownerstringRepository owner
repostringRepository name
sub_issue_idnumberThe ID of the sub-issue to add. ID is not the same as issue number
replace_parentbooleanoptionalWhen true, replaces the sub-issue's current parent issue

Tool: assign_copilot_to_issue

Assign Copilot to a specific issue in a GitHub repository.

This tool can help with the following outcomes:

  • a Pull Request created with source code changes to resolve the issue

More information can be found at:


Tool: cancel_workflow_run

Cancel a workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run

Tool: create_and_submit_pull_request_review

Create and submit a review for a pull request without review comments.

ParametersTypeDescription
bodystringReview comment text
eventstringReview action to perform
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name
commitIDstringoptionalSHA of commit to review

Tool: create_branch

Create a new branch in a GitHub repository

ParametersTypeDescription
branchstringName for new branch
ownerstringRepository owner
repostringRepository name
from_branchstringoptionalSource branch (defaults to repo default)

Tool: create_gist

Create a new gist

ParametersTypeDescription
contentstringContent for simple single-file gist creation
filenamestringFilename for simple single-file gist creation
descriptionstringoptionalDescription of the gist
publicbooleanoptionalWhether the gist is public

Tool: create_issue

Create a new issue in a GitHub repository.

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
titlestringIssue title
assigneesarrayoptionalUsernames to assign to this issue
bodystringoptionalIssue body content
labelsarrayoptionalLabels to apply to this issue
milestonenumberoptionalMilestone number

Tool: create_or_update_file

Create or update a single file in a GitHub repository. If updating, you must provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations.

ParametersTypeDescription
branchstringBranch to create/update the file in
contentstringContent of the file
messagestringCommit message
ownerstringRepository owner (username or organization)
pathstringPath where to create/update the file
repostringRepository name
shastringoptionalRequired if updating an existing file. The blob SHA of the file being replaced.

Tool: create_pending_pull_request_review

Create a pending review for a pull request. Call this first before attempting to add comments to a pending review, and ultimately submitting it. A pending pull request review means a pull request review, it is pending because you create it first and submit it later, and the PR author will not see it until it is submitted.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name
commitIDstringoptionalSHA of commit to review

Tool: create_pull_request

Create a new pull request in a GitHub repository.

ParametersTypeDescription
basestringBranch to merge into
headstringBranch containing changes
ownerstringRepository owner
repostringRepository name
titlestringPR title
bodystringoptionalPR description
draftbooleanoptionalCreate as draft PR
maintainer_can_modifybooleanoptionalAllow maintainer edits

Tool: create_repository

Create a new GitHub repository in your account

ParametersTypeDescription
namestringRepository name
autoInitbooleanoptionalInitialize with README
descriptionstringoptionalRepository description
privatebooleanoptionalWhether repo should be private

Tool: delete_file

Delete a file from a GitHub repository

ParametersTypeDescription
branchstringBranch to delete the file from
messagestringCommit message
ownerstringRepository owner (username or organization)
pathstringPath to the file to delete
repostringRepository name

This tool may perform destructive updates.


Tool: delete_pending_pull_request_review

Delete the requester's latest pending pull request review. Use this after the user decides not to submit a pending review, if you don't know if they already created one then check first.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name

Tool: delete_workflow_run_logs

Delete logs for a workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run

This tool may perform destructive updates.


Tool: dismiss_notification

Dismiss a notification by marking it as read or done

ParametersTypeDescription
threadIDstringThe ID of the notification thread
statestringoptionalThe new state of the notification (read/done)

Tool: download_workflow_run_artifact

Get download URL for a workflow run artifact

ParametersTypeDescription
artifact_idnumberThe unique identifier of the artifact
ownerstringRepository owner
repostringRepository name

This tool is read-only. It does not modify its environment.


Tool: fork_repository

Fork a GitHub repository to your account or specified organization

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
organizationstringoptionalOrganization to fork to

Tool: get_code_scanning_alert

Get details of a specific code scanning alert in a GitHub repository.

ParametersTypeDescription
alertNumbernumberThe number of the alert.
ownerstringThe owner of the repository.
repostringThe name of the repository.

This tool is read-only. It does not modify its environment.


Tool: get_commit

Get details for a commit from a GitHub repository

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
shastringCommit SHA, branch name, or tag name
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: get_dependabot_alert

Get details of a specific dependabot alert in a GitHub repository.

ParametersTypeDescription
alertNumbernumberThe number of the alert.
ownerstringThe owner of the repository.
repostringThe name of the repository.

This tool is read-only. It does not modify its environment.


Tool: get_discussion

Get a specific discussion by ID

ParametersTypeDescription
discussionNumbernumberDiscussion Number
ownerstringRepository owner
repostringRepository name

This tool is read-only. It does not modify its environment.


Tool: get_discussion_comments

Get comments from a discussion

ParametersTypeDescription
discussionNumbernumberDiscussion Number
ownerstringRepository owner
repostringRepository name
afterstringoptionalCursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs.
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: get_file_contents

Get the contents of a file or directory from a GitHub repository

ParametersTypeDescription
ownerstringRepository owner (username or organization)
repostringRepository name
pathstringoptionalPath to file/directory (directories must end with a slash '/')
refstringoptionalAccepts optional git refs such as refs/tags/{tag}, refs/heads/{branch} or refs/pull/{pr_number}/head
shastringoptionalAccepts optional commit SHA. If specified, it will be used instead of ref

This tool is read-only. It does not modify its environment.


Tool: get_issue

Get details of a specific issue in a GitHub repository.

ParametersTypeDescription
issue_numbernumberThe number of the issue
ownerstringThe owner of the repository
repostringThe name of the repository

This tool is read-only. It does not modify its environment.


Tool: get_issue_comments

Get comments for a specific issue in a GitHub repository.

ParametersTypeDescription
issue_numbernumberIssue number
ownerstringRepository owner
repostringRepository name
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: get_job_logs

Download logs for a specific workflow job or efficiently get all failed job logs for a workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
failed_onlybooleanoptionalWhen true, gets logs for all failed jobs in run_id
job_idnumberoptionalThe unique identifier of the workflow job (required for single job logs)
return_contentbooleanoptionalReturns actual log content instead of URLs
run_idnumberoptionalWorkflow run ID (required when using failed_only)
tail_linesnumberoptionalNumber of lines to return from the end of the log

This tool is read-only. It does not modify its environment.


Tool: get_me

Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls.

Tool: get_notification_details

Get detailed information for a specific GitHub notification, always call this tool when the user asks for details about a specific notification, if you don't know the ID list notifications first.

ParametersTypeDescription
notificationIDstringThe ID of the notification

This tool is read-only. It does not modify its environment.


Tool: get_pull_request

Get details of a specific pull request in a GitHub repository.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name

This tool is read-only. It does not modify its environment.


Tool: get_pull_request_comments

Get comments for a specific pull request.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name

This tool is read-only. It does not modify its environment.


Tool: get_pull_request_diff

Get the diff of a pull request.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name

This tool is read-only. It does not modify its environment.


Tool: get_pull_request_files

Get the files changed in a specific pull request.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: get_pull_request_reviews

Get reviews for a specific pull request.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name

This tool is read-only. It does not modify its environment.


Tool: get_pull_request_status

Get the status of a specific pull request.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name

This tool is read-only. It does not modify its environment.


Tool: get_secret_scanning_alert

Get details of a specific secret scanning alert in a GitHub repository.

ParametersTypeDescription
alertNumbernumberThe number of the alert.
ownerstringThe owner of the repository.
repostringThe name of the repository.

This tool is read-only. It does not modify its environment.


Tool: get_tag

Get details about a specific git tag in a GitHub repository

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
tagstringTag name

This tool is read-only. It does not modify its environment.


Tool: get_workflow_run

Get details of a specific workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run

This tool is read-only. It does not modify its environment.


Tool: get_workflow_run_logs

Download logs for a specific workflow run (EXPENSIVE: downloads ALL logs as ZIP. Consider using get_job_logs with failed_only=true for debugging failed jobs)

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run

This tool is read-only. It does not modify its environment.


Tool: get_workflow_run_usage

Get usage metrics for a workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run

This tool is read-only. It does not modify its environment.


Tool: list_branches

List branches in a GitHub repository

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: list_code_scanning_alerts

List code scanning alerts in a GitHub repository.

ParametersTypeDescription
ownerstringThe owner of the repository.
repostringThe name of the repository.
refstringoptionalThe Git reference for the results you want to list.
severitystringoptionalFilter code scanning alerts by severity
statestringoptionalFilter code scanning alerts by state. Defaults to open
tool_namestringoptionalThe name of the tool used for code scanning.

This tool is read-only. It does not modify its environment.


Tool: list_commits

Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
authorstringoptionalAuthor username or email address to filter commits by
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
shastringoptionalCommit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA.

This tool is read-only. It does not modify its environment.


Tool: list_dependabot_alerts

List dependabot alerts in a GitHub repository.

ParametersTypeDescription
ownerstringThe owner of the repository.
repostringThe name of the repository.
severitystringoptionalFilter dependabot alerts by severity
statestringoptionalFilter dependabot alerts by state. Defaults to open

This tool is read-only. It does not modify its environment.


Tool: list_discussion_categories

List discussion categories with their id and name, for a repository

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name

This tool is read-only. It does not modify its environment.


Tool: list_discussions

List discussions for a repository or organisation.

ParametersTypeDescription
ownerstringRepository owner
afterstringoptionalCursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs.
categorystringoptionalOptional filter by discussion category ID. If provided, only discussions with this category are listed.
directionstringoptionalOrder direction.
orderBystringoptionalOrder discussions by field. If provided, the 'direction' also needs to be provided.
perPagenumberoptionalResults per page for pagination (min 1, max 100)
repostringoptionalRepository name. If not provided, discussions will be queried at the organisation level.

This tool is read-only. It does not modify its environment.


Tool: list_gists

List gists for a user

ParametersTypeDescription
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
sincestringoptionalOnly gists updated after this time (ISO 8601 timestamp)
usernamestringoptionalGitHub username (omit for authenticated user's gists)

This tool is read-only. It does not modify its environment.


Tool: list_issues

List issues in a GitHub repository.

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
directionstringoptionalSort direction
labelsarrayoptionalFilter by labels
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
sincestringoptionalFilter by date (ISO 8601 timestamp)
sortstringoptionalSort order
statestringoptionalFilter by state

This tool is read-only. It does not modify its environment.


Tool: list_notifications

Lists all GitHub notifications for the authenticated user, including unread notifications, mentions, review requests, assignments, and updates on issues or pull requests. Use this tool whenever the user asks what to work on next, requests a summary of their GitHub activity, wants to see pending reviews, or needs to check for new updates or tasks. This tool is the primary way to discover actionable items, reminders, and outstanding work on GitHub. Always call this tool when asked what to work on next, what is pending, or what needs attention in GitHub.

ParametersTypeDescription
beforestringoptionalOnly show notifications updated before the given time (ISO 8601 format)
filterstringoptionalFilter notifications to, use default unless specified. Read notifications are ones that have already been acknowledged by the user. Participating notifications are those that the user is directly involved in, such as issues or pull requests they have commented on or created.
ownerstringoptionalOptional repository owner. If provided with repo, only notifications for this repository are listed.
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
repostringoptionalOptional repository name. If provided with owner, only notifications for this repository are listed.
sincestringoptionalOnly show notifications updated after the given time (ISO 8601 format)

This tool is read-only. It does not modify its environment.


Tool: list_pull_requests

List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead.

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
basestringoptionalFilter by base branch
directionstringoptionalSort direction
headstringoptionalFilter by head user/org and branch
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
sortstringoptionalSort by
statestringoptionalFilter by state

This tool is read-only. It does not modify its environment.


Tool: list_secret_scanning_alerts

List secret scanning alerts in a GitHub repository.

ParametersTypeDescription
ownerstringThe owner of the repository.
repostringThe name of the repository.
resolutionstringoptionalFilter by resolution
secret_typestringoptionalA comma-separated list of secret types to return. All default secret patterns are returned. To return generic patterns, pass the token name(s) in the parameter.
statestringoptionalFilter by state

This tool is read-only. It does not modify its environment.


Tool: list_sub_issues

List sub-issues for a specific issue in a GitHub repository.

ParametersTypeDescription
issue_numbernumberIssue number
ownerstringRepository owner
repostringRepository name
pagenumberoptionalPage number for pagination (default: 1)
per_pagenumberoptionalNumber of results per page (max 100, default: 30)

This tool is read-only. It does not modify its environment.


Tool: list_tags

List git tags in a GitHub repository

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: list_workflow_jobs

List jobs for a specific workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run
filterstringoptionalFilters jobs by their completed_at timestamp
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: list_workflow_run_artifacts

List artifacts for a workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: list_workflow_runs

List workflow runs for a specific workflow

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
workflow_idstringThe workflow ID or workflow file name
actorstringoptionalReturns someone's workflow runs. Use the login for the user who created the workflow run.
branchstringoptionalReturns workflow runs associated with a branch. Use the name of the branch.
eventstringoptionalReturns workflow runs for a specific event type
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
statusstringoptionalReturns workflow runs with the check run status

This tool is read-only. It does not modify its environment.


Tool: list_workflows

List workflows in a repository

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: manage_notification_subscription

Manage a notification subscription: ignore, watch, or delete a notification thread subscription.

ParametersTypeDescription
actionstringAction to perform: ignore, watch, or delete the notification subscription.
notificationIDstringThe ID of the notification thread.

Tool: manage_repository_notification_subscription

Manage a repository notification subscription: ignore, watch, or delete repository notifications subscription for the provided repository.

ParametersTypeDescription
actionstringAction to perform: ignore, watch, or delete the repository notification subscription.
ownerstringThe account owner of the repository.
repostringThe name of the repository.

Tool: mark_all_notifications_read

Mark all notifications as read

ParametersTypeDescription
lastReadAtstringoptionalDescribes the last point that notifications were checked (optional). Default: Now
ownerstringoptionalOptional repository owner. If provided with repo, only notifications for this repository are marked as read.
repostringoptionalOptional repository name. If provided with owner, only notifications for this repository are marked as read.

Tool: merge_pull_request

Merge a pull request in a GitHub repository.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name
commit_messagestringoptionalExtra detail for merge commit
commit_titlestringoptionalTitle for merge commit
merge_methodstringoptionalMerge method

Tool: push_files

Push multiple files to a GitHub repository in a single commit

ParametersTypeDescription
branchstringBranch to push to
filesarrayArray of file objects to push, each object with path (string) and content (string)
messagestringCommit message
ownerstringRepository owner
repostringRepository name

Tool: remove_sub_issue

Remove a sub-issue from a parent issue in a GitHub repository.

ParametersTypeDescription
issue_numbernumberThe number of the parent issue
ownerstringRepository owner
repostringRepository name
sub_issue_idnumberThe ID of the sub-issue to remove. ID is not the same as issue number

Tool: reprioritize_sub_issue

Reprioritize a sub-issue to a different position in the parent issue's sub-issue list.

ParametersTypeDescription
issue_numbernumberThe number of the parent issue
ownerstringRepository owner
repostringRepository name
sub_issue_idnumberThe ID of the sub-issue to reprioritize. ID is not the same as issue number
after_idnumberoptionalThe ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified)
before_idnumberoptionalThe ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified)

Tool: request_copilot_review

Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name

Tool: rerun_failed_jobs

Re-run only the failed jobs in a workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run

Tool: rerun_workflow_run

Re-run an entire workflow run

ParametersTypeDescription
ownerstringRepository owner
repostringRepository name
run_idnumberThe unique identifier of the workflow run

Tool: run_workflow

Run an Actions workflow by workflow ID or filename

ParametersTypeDescription
ownerstringRepository owner
refstringThe git reference for the workflow. The reference can be a branch or tag name.
repostringRepository name
workflow_idstringThe workflow ID (numeric) or workflow file name (e.g., main.yml, ci.yaml)
inputsobjectoptionalInputs the workflow accepts

Tool: search_code

Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns.

ParametersTypeDescription
querystringSearch query using GitHub's powerful code search syntax. Examples: 'content:Skill language:Java org:github', 'NOT is:archived language:Python OR language:go', 'repo:github/github-mcp-server'. Supports exact matching, language filters, path filters, and more.
orderstringoptionalSort order for results
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
sortstringoptionalSort field ('indexed' only)

This tool is read-only. It does not modify its environment.


Tool: search_issues

Search for issues in GitHub repositories using issues search syntax already scoped to is:issue

ParametersTypeDescription
querystringSearch query using GitHub issues search syntax
orderstringoptionalSort order
ownerstringoptionalOptional repository owner. If provided with repo, only notifications for this repository are listed.
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
repostringoptionalOptional repository name. If provided with owner, only notifications for this repository are listed.
sortstringoptionalSort field by number of matches of categories, defaults to best match

This tool is read-only. It does not modify its environment.


Tool: search_orgs

Find GitHub organizations by name, location, or other organization metadata. Ideal for discovering companies, open source foundations, or teams.

ParametersTypeDescription
querystringOrganization search query. Examples: 'microsoft', 'location:california', 'created:>=2025-01-01'. Search is automatically scoped to type:org.
orderstringoptionalSort order
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
sortstringoptionalSort field by category

This tool is read-only. It does not modify its environment.


Tool: search_pull_requests

Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr

ParametersTypeDescription
querystringSearch query using GitHub pull request search syntax
orderstringoptionalSort order
ownerstringoptionalOptional repository owner. If provided with repo, only notifications for this repository are listed.
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
repostringoptionalOptional repository name. If provided with owner, only notifications for this repository are listed.
sortstringoptionalSort field by number of matches of categories, defaults to best match

This tool is read-only. It does not modify its environment.


Tool: search_repositories

Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.

ParametersTypeDescription
querystringRepository search query. Examples: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Supports advanced search syntax for precise filtering.
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)

This tool is read-only. It does not modify its environment.


Tool: search_users

Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.

ParametersTypeDescription
querystringUser search query. Examples: 'john smith', 'location:seattle', 'followers:>100'. Search is automatically scoped to type:user.
orderstringoptionalSort order
pagenumberoptionalPage number for pagination (min 1)
perPagenumberoptionalResults per page for pagination (min 1, max 100)
sortstringoptionalSort users by number of followers or repositories, or when the person joined GitHub.

This tool is read-only. It does not modify its environment.


Tool: submit_pending_pull_request_review

Submit the requester's latest pending pull request review, normally this is a final step after creating a pending review, adding comments first, unless you know that the user already did the first two steps, you should check before calling this.

ParametersTypeDescription
eventstringThe event to perform
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name
bodystringoptionalThe text of the review comment

Tool: update_gist

Update an existing gist

ParametersTypeDescription
contentstringContent for the file
filenamestringFilename to update or create
gist_idstringID of the gist to update
descriptionstringoptionalUpdated description of the gist

Tool: update_issue

Update an existing issue in a GitHub repository.

ParametersTypeDescription
issue_numbernumberIssue number to update
ownerstringRepository owner
repostringRepository name
assigneesarrayoptionalNew assignees
bodystringoptionalNew description
labelsarrayoptionalNew labels
milestonenumberoptionalNew milestone number
statestringoptionalNew state
titlestringoptionalNew title

Tool: update_pull_request

Update an existing pull request in a GitHub repository.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number to update
repostringRepository name
basestringoptionalNew base branch name
bodystringoptionalNew description
draftbooleanoptionalMark pull request as draft (true) or ready for review (false)
maintainer_can_modifybooleanoptionalAllow maintainer edits
reviewersarrayoptionalGitHub usernames to request reviews from
statestringoptionalNew state
titlestringoptionalNew title

Tool: update_pull_request_branch

Update the branch of a pull request with the latest changes from the base branch.

ParametersTypeDescription
ownerstringRepository owner
pullNumbernumberPull request number
repostringRepository name
expectedHeadShastringoptionalThe expected SHA of the pull request's HEAD ref

Use this MCP Server

{
  "mcpServers": {
    "github-official": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Manual installation

You can install the MCP server using:

Installation for

Related servers