When should you use this server

  • Triage issues and pull requests, or generate daily summaries of repo activity
  • Search code for API usage, functions, or configuration keys before making changes
  • Automate repository housekeeping (e.g., create PRs, label issues) under guardrails

Key features

  • Repository listing and metadata retrieval
  • Issue and pull request querying and creation
  • Code search across repositories or organizations
  • Commit history inspection

Authentication

  • Method: OAuth2 (hosted) or Personal Access Token (PAT) for local/self-hosted setups
  • Scopes: repo, read:org; optionally workflow and read:packages if needed
  • Notes: Organization policies may restrict which methods are allowed

Endpoints

  • Remote (hosted): https://api.githubcopilot.com/mcp/
  • Local (Docker image): ghcr.io/github/github-mcp-server
Remote server is in Public Preview; access can be gated by OAuth/PAT policies and the “MCP servers in Copilot” org policy.

Setup & usage

VS Code (remote, OAuth)

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}

VS Code (Using a GitHub PAT)

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

Install in other MCP hosts

Tools provided

cancel_workflow_run

Cancels a workflow run that is currently in progress. Useful for stopping jobs triggered by mistake, stuck runs, or unnecessary duplicate builds. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • run_id (number, required) — unique identifier of the workflow run.

delete_workflow_run_logs

Deletes all logs associated with a specific workflow run. Helpful for reclaiming storage space or removing outdated run data. Arguments:
  • owner (string, required)
  • repo (string, required)
  • run_id (number, required)

download_workflow_run_artifact

Downloads a single artifact generated by a workflow run (e.g., build output, test reports). Arguments:
  • artifact_id (number, required) — unique identifier of the artifact.
  • owner (string, required)
  • repo (string, required)

get_job_logs

Retrieves logs for specific jobs within a workflow run. Supports filtering for only failed jobs, returning full content, or tailing the last N lines. Arguments:
  • owner (string, required)
  • repo (string, required)
  • failed_only (boolean, optional) — when true, returns logs for all failed jobs in run_id.
  • job_id (number, optional) — workflow job ID (for one job’s logs).
  • run_id (number, optional) — workflow run ID (required with failed_only).
  • return_content (boolean, optional) — whether to return log content instead of URLs.
  • tail_lines (number, optional) — number of lines to return from the end of the log.

get_workflow_run

Retrieves detailed information about a specific workflow run, including status, event, branch, and timestamps. Arguments:
  • owner (string, required)
  • repo (string, required)
  • run_id (number, required)

get_workflow_run_logs

Returns the full logs for an entire workflow run, across all jobs. Arguments:
  • owner (string, required)
  • repo (string, required)
  • run_id (number, required)

get_workflow_run_usage

Shows resource usage statistics (billable minutes, operating system, runtime) for a given workflow run. Useful for tracking costs and optimizing pipelines. Arguments:
  • owner (string, required)
  • repo (string, required)
  • run_id (number, required)

list_workflow_jobs

Lists all jobs associated with a workflow run, including job names, statuses, and completion times. Arguments:
  • owner (string, required)
  • repo (string, required)
  • run_id (number, required)
  • filter (string, optional) — filter by completed_at timestamp.
  • page (number, optional) — page number (default 1).
  • perPage (number, optional) — results per page (1–100).

list_workflow_run_artifacts

Lists all artifacts created during a workflow run, with IDs and metadata for later download. Arguments:
  • owner (string, required)
  • repo (string, required)
  • run_id (number, required)
  • page (number, optional)
  • perPage (number, optional)

list_workflow_runs

Lists past runs for a given workflow, with filters for branch, actor, event type, or status. Arguments:
  • owner (string, required)
  • repo (string, required)
  • workflow_id (string, required) — workflow file name (e.g. ci.yml) or numeric ID.
  • actor (string, optional) — filter runs by user.
  • branch (string, optional) — filter by branch name.
  • event (string, optional) — filter by event type.
  • status (string, optional) — filter by check run status.
  • page (number, optional)
  • perPage (number, optional)

list_workflows

Lists all workflows defined in the repository (e.g., CI/CD, test, build pipelines). Arguments:
  • owner (string, required)
  • repo (string, required)
  • page (number, optional)
  • perPage (number, optional)

rerun_failed_jobs

Triggers a rerun for only the failed jobs in a workflow run, instead of rerunning everything. Arguments:
  • owner (string, required)
  • repo (string, required)
  • run_id (number, required)

rerun_workflow_run

Reruns the entire workflow run, including all jobs. Arguments:
  • owner (string, required)
  • repo (string, required)
  • run_id (number, required)

run_workflow

Dispatches a new workflow run by reference (branch or tag). Supports passing custom workflow inputs. Arguments:
  • owner (string, required)
  • repo (string, required)
  • workflow_id (string, required) — workflow ID or file name (e.g., ci.yml).
  • ref (string, required) — git ref (branch or tag).
  • inputs (object, optional) — inputs accepted by the workflow.

get_code_scanning_alert

Retrieves details of a single code scanning alert (e.g., CodeQL or third-party scanner findings) for a repository. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • alertNumber (number, required) — unique identifier of the code scanning alert.

get_code_scanning_alert

Retrieves details of a single code scanning alert (e.g., CodeQL or third-party scanner findings) for a repository. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • alertNumber (number, required) — unique identifier of the code scanning alert.

list_code_scanning_alerts

Lists all code scanning alerts for a repository. Supports filtering by branch, severity, state, or scanning tool. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • ref (string, optional) — git ref to filter results.
  • severity (string, optional) — filter by severity.
  • state (string, optional) — filter by state (defaults to open).
  • tool_name (string, optional) — filter by scanner/tool name.

get_me

Fetches the authenticated user’s GitHub profile information (login, name, email, etc.). Arguments: None

get_team_members

Retrieves all members of a specific GitHub team within an organization. Arguments:
  • org (string, required) — organization login.
  • team_slug (string, required) — team slug.

get_teams

Lists teams associated with a user (or the authenticated user if no username is provided). Arguments:
  • user (string, optional) — GitHub username.

get_dependabot_alert

Retrieves details about a single Dependabot security alert for a repository. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • alertNumber (number, required) — unique identifier of the Dependabot alert.

list_dependabot_alerts

Lists all Dependabot alerts for a repository, with filters for severity and state. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • severity (string, optional) — filter by severity.
  • state (string, optional, default=open) — filter by alert state.

get_discussion

Retrieves the details of a specific GitHub Discussion (title, body, author, category, comments count). Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • discussionNumber (number, required) — unique identifier of the discussion.

get_discussion_comments

Gets comments from a specific GitHub Discussion, with pagination support. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • discussionNumber (number, required) — unique identifier of the discussion.
  • perPage (number, optional, min 1, max 100) — number of comments per page.
  • after (string, optional) — cursor for pagination.

list_discussion_categories

Lists all available categories for discussions in a repository or across an organization. Arguments:
  • owner (string, required) — repository owner or organization.
  • repo (string, optional) — repository name; if omitted, queries at the organization level.

list_discussions

Lists discussions for a repository or organization, with filters for category, sorting, and pagination. Arguments:
  • owner (string, required) — repository owner or organization.
  • repo (string, optional) — repository name.
  • category (string, optional) — discussion category ID.
  • orderBy (string, optional) — field to order by.
  • direction (string, optional) — ascending/descending order.
  • perPage (number, optional) — number of results per page.
  • after (string, optional) — pagination cursor.

create_gist

Creates a new GitHub Gist (single file, with optional description and visibility). Arguments:
  • filename (string, required) — file name.
  • content (string, required) — file content.
  • description (string, optional) — gist description.
  • public (boolean, optional) — visibility of the gist.

list_gists

Lists Gists for a user (or the authenticated user if username is not provided). Supports pagination and date filters. Arguments:
  • username (string, optional) — GitHub username.
  • since (string, optional, ISO 8601) — updated after date.
  • page (number, optional) — page number.
  • perPage (number, optional) — results per page.

update_gist

Updates an existing Gist’s content, description, or adds a file. Arguments:
  • gist_id (string, required) — unique identifier of the gist.
  • filename (string, required) — file name.
  • content (string, required) — file content.
  • description (string, optional) — gist description.

add_issue_comment

Adds a new comment to an issue. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issue_number (number, required) — issue number.
  • body (string, required) — comment body.

add_sub_issue

Attaches an existing issue as a sub-issue of another parent issue. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issue_number (number, required) — parent issue number.
  • sub_issue_id (number, required) — ID of the sub-issue.
  • replace_parent (boolean, optional) — replace current parent if already assigned.

assign_copilot_to_issue

Assigns GitHub Copilot to a specific issue, so AI can draft solutions or manage tasks. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issueNumber (number, required) — issue number.

create_issue

Opens a new GitHub issue. Supports assigning users, adding labels, milestones, and custom issue types. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • title (string, required) — issue title.
  • body (string, optional) — issue body.
  • assignees (string[], optional) — list of assignees.
  • labels (string[], optional) — list of labels.
  • milestone (number, optional) — milestone number.
  • type (string, optional) — custom issue type.

get_issue

Retrieves details of a specific issue, including title, body, labels, state, and assignees. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issue_number (number, required) — issue number.

get_issue_comments

Lists comments on a specific issue. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issue_number (number, required) — issue number.
  • page (number, optional) — page number.
  • perPage (number, optional) — results per page.

list_issue_types

Lists all available issue types for a repository. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.

list_issues

Lists issues in a repository with filters for labels, state, dates, sorting, and pagination. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • labels (string[], optional) — filter by labels.
  • state (string, optional) — filter by issue state.
  • since (string, optional) — ISO 8601 timestamp to filter updated issues.
  • orderBy (string, optional) — field to order by.
  • direction (string, optional) — sort direction.
  • perPage (number, optional) — results per page.
  • after (string, optional) — pagination cursor.

list_sub_issues

Lists all sub-issues attached to a parent issue. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issue_number (number, required) — parent issue number.
  • page (number, optional) — page number.
  • per_page (number, optional) — results per page.

remove_sub_issue

Removes a sub-issue from its parent issue. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issue_number (number, required) — parent issue number.
  • sub_issue_id (number, required) — ID of the sub-issue to remove.

reprioritize_sub_issue

Changes the order of sub-issues within a parent issue by moving one before or after another. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issue_number (number, required) — parent issue number.
  • sub_issue_id (number, required) — sub-issue to move.
  • before_id (number, optional) — move before this sub-issue.
  • after_id (number, optional) — move after this sub-issue.

search_issues

Searches for issues across GitHub or within a repository using GitHub’s issue search syntax. Arguments:
  • query (string, required) — search string.
  • owner (string, optional) — restrict search to a repo owner.
  • repo (string, optional) — restrict search to a specific repo.
  • sort (string, optional) — field to sort by.
  • order (string, optional) — sort direction (asc/desc).
  • page (number, optional) — page number.
  • perPage (number, optional) — results per page.

update_issue

Edits an existing issue, allowing updates to the title, body, labels, assignees, milestone, state, or type. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • issue_number (number, required) — issue number.
  • title (string, optional) — new issue title.
  • body (string, optional) — new issue body.
  • labels (string[], optional) — list of labels.
  • assignees (string[], optional) — list of assignees.
  • milestone (number, optional) — milestone number.
  • state (string, optional) — issue state.
  • type (string, optional) — custom issue type.
  • type (string, optional)

get_code_scanning_alert

Retrieves details of a single code scanning alert (e.g., CodeQL or third-party scanner findings) for a repository. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • alertNumber (number, required) — unique identifier of the code scanning alert.

list_code_scanning_alerts

Lists code scanning alerts for a repository. Supports filtering by severity, state, tool name, or git reference. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • ref (string, optional) — git reference for the results.
  • severity (string, optional) — filter by severity.
  • state (string, optional) — filter by state (defaults to open).
  • tool_name (string, optional) — filter by scanning tool name.

get_me

Returns the profile information of the authenticated user. Arguments: None

get_team_members

Lists all members of a team within an organization. Arguments:
  • org (string, required) — organization login.
  • team_slug (string, required) — team slug.

get_teams

Lists teams for a given user (or the authenticated user if no username is specified). Arguments:
  • user (string, optional) — GitHub username.

get_dependabot_alert

Retrieves details of a single Dependabot security alert for a repository. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • alertNumber (number, required) — unique identifier of the Dependabot alert.

list_dependabot_alerts

Lists Dependabot alerts for a repository. Can be filtered by severity and state. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • severity (string, optional) — filter by severity.
  • state (string, optional) — filter by state (defaults to open).

get_discussion

Retrieves details of a single GitHub Discussion, including title, body, author, and metadata. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • discussionNumber (number, required) — discussion number.

get_discussion_comments

Lists comments in a GitHub Discussion, with optional pagination. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • discussionNumber (number, required) — discussion number.
  • perPage (number, optional) — results per page (min 1, max 100).
  • after (string, optional) — cursor for pagination.

list_discussion_categories

Lists available discussion categories in a repository (or across an organization if no repo is specified). Arguments:
  • owner (string, required) — repository owner.
  • repo (string, optional) — repository name.

list_discussions

Lists discussions for a repository or organization. Supports filtering by category, sorting, and pagination. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, optional) — repository name.
  • category (string, optional) — filter by discussion category ID.
  • orderBy (string, optional) — field to order by.
  • direction (string, optional) — order direction.
  • perPage (number, optional) — results per page (min 1, max 100).
  • after (string, optional) — cursor for pagination.

dismiss_notification

Marks a specific notification thread as dismissed, updating its state to read or done. Arguments:
  • threadID (string, required) — ID of the notification thread.
  • state (string, optional) — new state of the notification (read or done).

get_notification_details

Retrieves full details for a specific notification, including subject type (issue, PR, discussion), repository, and updated time. Arguments:
  • notificationID (string, required) — ID of the notification.

list_notifications

Lists notifications for the authenticated user. Supports filtering by repository, read state, and time window. Arguments:
  • owner (string, optional) — repository owner; when provided with repo, limits results.
  • repo (string, optional) — repository name; requires owner.
  • filter (string, optional) — filter type (all, read, unread, participating).
  • since (string, optional) — only show notifications updated after this time (ISO 8601).
  • before (string, optional) — only show notifications updated before this time (ISO 8601).
  • page (number, optional) — page number for pagination (min 1).
  • perPage (number, optional) — results per page (min 1, max 100).

manage_notification_subscription

Manages a user’s subscription for a single notification thread (e.g., ignore updates, resume watching, or delete). Arguments:
  • notificationID (string, required) — ID of the notification thread.
  • action (string, required) — action to perform (ignore, watch, delete).

manage_repository_notification_subscription

Manages a user’s subscription settings for all notifications in a repository. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • action (string, required) — action to perform (ignore, watch, delete).

mark_all_notifications_read

Marks all notifications as read, either globally or scoped to a specific repository. Arguments:
  • lastReadAt (string, optional) — timestamp of the last read time (ISO 8601). Defaults to now.
  • owner (string, optional) — repository owner; if provided with repo, limits scope.
  • repo (string, optional) — repository name; requires owner.

search_orgs

Searches for GitHub organizations by name, location, or creation date. Results can be sorted and paginated. Arguments:
  • query (string, required) — search string (e.g., “microsoft”, “location:california”, “created:>=2025-01-01”).
  • order (string, optional) — sort order (asc or desc).
  • sort (string, optional) — sort field by category.
  • page (number, optional) — page number for pagination (min 1).
  • perPage (number, optional) — results per page (min 1, max 100).

add_comment_to_pending_review

Adds a comment to the requester’s latest pending pull request review, targeted to a file, line, or range. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • pullNumber (number, required) — pull request number.
  • body (string, required) — review comment text.
  • path (string, required) — relative file path in the PR diff.
  • subjectType (string, required) — target level (file, line, etc.).
  • line (number, optional) — single line in the diff.
  • side (string, optional) — side of the diff (LEFT or RIGHT).
  • startLine (number, optional) — starting line for multi-line comments.
  • startSide (string, optional) — starting side of the diff (LEFT or RIGHT).

create_and_submit_pull_request_review

Creates and immediately submits a pull request review, without additional comments. Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)
  • body (string, required) — review body text.
  • event (string, required) — review action (APPROVE, REQUEST_CHANGES, COMMENT).
  • commitID (string, optional) — SHA of the commit under review.

create_pending_pull_request_review

Creates a pending pull request review that can later have comments added before submission. Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)
  • commitID (string, optional) — SHA of the commit under review.

create_pull_request

Opens a new pull request from one branch (head) into another (base). Arguments:
  • owner (string, required)
  • repo (string, required)
  • title (string, required) — PR title.
  • base (string, required) — branch to merge into.
  • head (string, required) — branch with proposed changes.
  • body (string, optional) — PR description.
  • draft (boolean, optional) — create as draft PR.
  • maintainer_can_modify (boolean, optional) — allow maintainers to edit the PR.

delete_pending_pull_request_review

Deletes the requester’s latest pending pull request review (not yet submitted). Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)

get_pull_request

Retrieves details about a specific pull request (title, body, state, mergeability, branches). Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)

get_pull_request_comments

Lists review comments on a specific pull request. Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)

get_pull_request_diff

Retrieves the unified diff for a pull request. Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)

get_pull_request_files

Lists the files changed in a pull request, with pagination. Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)
  • page (number, optional)
  • perPage (number, optional)

get_pull_request_reviews

Lists all reviews submitted on a pull request (including approvals and change requests). Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)

get_pull_request_status

Retrieves the status checks for a pull request (CI/CD, lint, tests). Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)

list_pull_requests

Lists pull requests in a repository, with filters for state, branch, and sorting. Arguments:
  • owner (string, required)
  • repo (string, required)
  • state (string, optional) — PR state (open, closed, all).
  • base (string, optional) — filter by base branch.
  • head (string, optional) — filter by head branch or user.
  • sort (string, optional) — sort field.
  • direction (string, optional) — sort direction.
  • page (number, optional)
  • perPage (number, optional)

merge_pull_request

Merges a pull request using the chosen merge method (merge commit, squash, or rebase). Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)
  • commit_title (string, optional) — custom merge commit title.
  • commit_message (string, optional) — custom merge commit body.
  • merge_method (string, optional) — merge type (merge, squash, rebase).

request_copilot_review

Requests a review of a pull request from GitHub Copilot. Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)

search_pull_requests

Searches pull requests across GitHub or within a repository using search syntax. Arguments:
  • query (string, required) — search query.
  • owner (string, optional) — filter by repo owner.
  • repo (string, optional) — filter by repository name.
  • sort (string, optional) — sort field.
  • order (string, optional) — sort order.
  • page (number, optional)
  • perPage (number, optional)

submit_pending_pull_request_review

Submits the requester’s latest pending pull request review, optionally adding a comment body. Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)
  • event (string, required) — action (APPROVE, REQUEST_CHANGES, COMMENT).
  • body (string, optional) — optional text to include.

update_pull_request

Updates an existing pull request’s details (title, description, reviewers, branch). Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)
  • title (string, optional)
  • body (string, optional)
  • state (string, optional) — open/closed.
  • base (string, optional) — new base branch.
  • draft (boolean, optional) — mark as draft or ready for review.
  • maintainer_can_modify (boolean, optional)
  • reviewers (string[], optional) — users to request reviews from.

update_pull_request_branch

Updates the pull request branch by merging in the latest changes from the base branch. Arguments:
  • owner (string, required)
  • repo (string, required)
  • pullNumber (number, required)
  • expectedHeadSha (string, optional) — SHA of the current PR head to ensure consistency.

create_branch

Creates a new branch in a repository from an existing branch (defaults to the repo’s default branch if not specified). Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • branch (string, required) — name for the new branch.
  • from_branch (string, optional) — source branch (defaults to repo default).

create_or_update_file

Creates a new file or updates an existing file in a repository, committing the change to the specified branch. Arguments:
  • owner (string, required) — repository owner (user or org).
  • repo (string, required) — repository name.
  • branch (string, required) — branch where the file will be created/updated.
  • path (string, required) — file path in the repo.
  • content (string, required) — file content (base64-encoded).
  • message (string, required) — commit message.
  • sha (string, optional) — required if updating; the blob SHA of the file being replaced.

create_repository

Creates a new repository, either under the authenticated user’s account or within an organization. Arguments:
  • name (string, required) — repository name.
  • description (string, optional) — repo description.
  • organization (string, optional) — org to create in; omit for personal account.
  • private (boolean, optional) — whether the repo is private.
  • autoInit (boolean, optional) — initialize with README.

delete_file

Deletes a file from a repository on a specific branch. Arguments:
  • owner (string, required) — repository owner (user or org).
  • repo (string, required) — repository name.
  • branch (string, required) — branch from which to delete the file.
  • path (string, required) — path to the file.
  • message (string, required) — commit message.

fork_repository

Forks a repository into the authenticated user’s account or into an organization. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • organization (string, optional) — org to fork into.

get_commit

Retrieves details of a commit, optionally including file diffs and stats. Arguments:
  • owner (string, required)
  • repo (string, required)
  • sha (string, required) — commit SHA, branch name, or tag name.
  • include_diff (boolean, optional) — include diffs and stats (default: true).
  • page (number, optional)
  • perPage (number, optional)

get_file_contents

Fetches the contents of a file or directory at a given path. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • path (string, optional) — path to file or directory (dirs must end with /).
  • ref (string, optional) — git ref (branch, tag, or PR head).
  • sha (string, optional) — specific commit SHA (overrides ref).

get_latest_release

Retrieves metadata about the latest published release in a repository. Arguments:
  • owner (string, required)
  • repo (string, required)

get_release_by_tag

Gets details for a release by its tag name. Arguments:
  • owner (string, required)
  • repo (string, required)
  • tag (string, required) — tag name (e.g., v1.0.0).

get_tag

Retrieves metadata about a tag in a repository. Arguments:
  • owner (string, required)
  • repo (string, required)
  • tag (string, required) — tag name.

list_branches

Lists branches in a repository, with pagination support. Arguments:
  • owner (string, required)
  • repo (string, required)
  • page (number, optional)
  • perPage (number, optional)

list_commits

Lists commits for a repository, optionally filtered by author, branch, or SHA. Arguments:
  • owner (string, required)
  • repo (string, required)
  • author (string, optional) — filter by author username or email.
  • sha (string, optional) — branch, tag, or commit SHA.
  • page (number, optional)
  • perPage (number, optional)

list_releases

Lists all releases published in a repository. Arguments:
  • owner (string, required)
  • repo (string, required)
  • page (number, optional)
  • perPage (number, optional)

list_tags

Lists tags in a repository, with pagination. Arguments:
  • owner (string, required)
  • repo (string, required)
  • page (number, optional)
  • perPage (number, optional)

push_files

Pushes multiple files to a branch in a repository in a single commit. Arguments:
  • owner (string, required)
  • repo (string, required)
  • branch (string, required) — target branch.
  • files (object[], required) — array of (path, content) objects.
  • message (string, required) — commit message.

search_code

Searches code across GitHub or within a repository using advanced search syntax. Arguments:
  • query (string, required) — search query (supports filters like language:, repo:, path:).
  • order (string, optional) — sort order (asc, desc).
  • sort (string, optional) — sort field (indexed).
  • page (number, optional)
  • perPage (number, optional)

search_repositories

Searches repositories by name, topic, stars, or language. Returns minimal metadata by default. Arguments:
  • query (string, required) — repo search string (e.g., “topic:react”, “stars:>1000 language:python”).
  • minimal_output (boolean, optional) — return minimal output (default: true).
  • page (number, optional)
  • perPage (number, optional)

get_secret_scanning_alert

Retrieves details of a single secret scanning alert for a repository. Useful for investigating exposed credentials or tokens flagged by GitHub’s security scans. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • alertNumber (number, required) — unique identifier of the secret scanning alert.

list_secret_scanning_alerts

Lists all secret scanning alerts for a repository. Supports filtering by state, resolution, or secret type. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • state (string, optional) — filter by state (e.g., open, resolved).
  • resolution (string, optional) — filter by resolution (e.g., revoked, false_positive).
  • secret_type (string, optional) — comma-separated list of secret types to return.

get_global_security_advisory

Retrieves a single global GitHub Security Advisory by its GHSA ID. Advisories describe vulnerabilities across ecosystems, with CVEs, severity, and remediation info. Arguments:
  • ghsaId (string, required) — advisory ID (format: GHSA-xxxx-xxxx-xxxx).

list_global_security_advisories

Lists all global GitHub Security Advisories, with filters for ecosystem, severity, CVE ID, CWE IDs, or publish/update dates. Arguments:
  • affects (string, optional) — filter by affected package or version (e.g., “package1,[email protected]”).
  • cveId (string, optional) — filter by CVE ID.
  • cwes (string[], optional) — filter by CWE IDs (e.g., [“79”, “284”, “22”]).
  • ecosystem (string, optional) — filter by package ecosystem (npm, Maven, etc.).
  • ghsaId (string, optional) — filter by advisory ID.
  • isWithdrawn (boolean, optional) — only return withdrawn advisories.
  • modified (string, optional) — filter by publish or update date/range (ISO 8601).
  • published (string, optional) — filter by publish date/range (ISO 8601).
  • updated (string, optional) — filter by update date/range (ISO 8601).
  • severity (string, optional) — filter by severity (low, medium, high, critical).
  • type (string, optional) — filter by advisory type.

list_org_repository_security_advisories

Lists security advisories published across repositories in a specific organization. Arguments:
  • org (string, required) — organization login.
  • state (string, optional) — filter by advisory state (draft, published, closed).
  • sort (string, optional) — sort field.
  • direction (string, optional) — sort direction (asc or desc).

list_repository_security_advisories

Lists security advisories created for a single repository. Arguments:
  • owner (string, required) — repository owner.
  • repo (string, required) — repository name.
  • state (string, optional) — filter by advisory state.
  • sort (string, optional) — sort field.
  • direction (string, optional) — sort direction.

search_users

Searches GitHub users by name, location, followers, or other attributes. Supports advanced filters and pagination. Arguments:
  • query (string, required) — search query (e.g., “john smith”, “location:seattle”, “followers:>100”).
  • sort (string, optional) — sort users by followers, repositories, or join date.
  • order (string, optional) — sort order (asc or desc).
  • page (number, optional) — page number (min 1).
  • perPage * (number, optional)* — results per page (min 1, max 100).

Prerequisites

  • A compatible MCP host with remote server support