Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

GitHub

OCI · GHCR.IO/GITHUB/GITHUB-MCP-SERVER · 2 COMPONENTS · SCANNED OCT 2

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

41 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 7918 tokens (~158/item across 50 items; 46 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety88
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 1 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "merge_pull_request" implies "merge" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
  • An AI judge read all 48 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
  • Supports UI / widget rendering.Pass

Unverified: 2 categories

Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the GitHub MCP server?

GitHub runs locally as a container image, launched with docker run --rm -i ghcr.io/github/github-mcp-server:1.13.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/github/github-mcp-server

# add to Claude Code
claude mcp add github-github-mcp-server -- docker run --rm -i ghcr.io/github/github-mcp-server:1.13.0
// .cursor/mcp.json
{
  "mcpServers": {
    "github-github-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/github/github-mcp-server:1.13.0"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "github-github-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/github/github-mcp-server:1.13.0"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add github-github-mcp-server -- docker run --rm -i ghcr.io/github/github-mcp-server:1.13.0
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "github-github-mcp-server": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/github/github-mcp-server:1.13.0"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  github-github-mcp-server:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/github/github-mcp-server:1.13.0"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "github-github-mcp-server": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/github/github-mcp-server:1.13.0"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "github-github-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/github/github-mcp-server:1.13.0"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 1 Oct 26 41

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 2 Oct 2026 · Analysed oci/ghcr.io/github/github-mcp-server@1.13.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 46 exposed · ~7,474 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_comment_to_pending_review ~240

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).

NameTypeReqDescription
bodystringyesThe text of the review comment
linenumber–The line of the blob in the pull request diff that the comment applies to. For multi-line comments, the last line of the range
ownerstringyesRepository owner
pathstringyesThe relative path to the file that necessitates a comment
pullNumbernumberyesPull request number
repostringyesRepository name
sidestring–The side of the diff to comment on. LEFT indicates the previous state, RIGHT indicates the new state
startLinenumber–For multi-line comments, the first line of the range that the comment applies to
startSidestring–For multi-line comments, the starting side of the diff that the comment applies to. LEFT indicates the previous state, RIGHT indicates the new state
subjectTypestringyesThe level at which the comment is targeted

No output schema declared.

No examples provided.

add_issue_comment ~189

Add a comment and/or reaction to a specific issue or issue comment in a GitHub repository. Use this tool with pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add or react to review comments. At least one of body or reaction is required.

NameTypeReqDescription
bodystring–Comment content. Required unless reaction is provided.
comment_idinteger–The numeric ID of the issue or pull request comment to react to. Use this for reactions to comments; omit it to react to the issue or pull request itself. Cannot be combined with body.
issue_numbernumberyesIssue or pull request number to comment on or react to.
ownerstringyesRepository owner
reactionstring–Emoji reaction to add. Required unless body is provided.
repostringyesRepository name

No output schema declared.

No examples provided.

add_reply_to_pull_request_comment ~179

Add a reply and/or reaction to an existing pull request comment. This can create a new comment linked as a reply to the specified comment, add an emoji reaction to the specified comment, or do both. At least one of body or reaction is required.

NameTypeReqDescription
bodystring–The text of the reply. Required unless reaction is provided.
commentIdnumberyesThe numeric ID of the pull request review comment to reply or react to. Use the number from a #discussion_r... anchor, not the GraphQL thread node ID (PRRT_...).
ownerstringyesRepository owner
pullNumbernumber–Pull request number. Required when body is provided.
reactionstring–Emoji reaction to add. Required unless body is provided.
repostringyesRepository name

No output schema declared.

No examples provided.

assign_copilot_to_issue ~178

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: - https://docs.github.com/en/copilot/concepts/agents/cloud-agent/about-cloud-agent

NameTypeReqDescription
base_refstring–Git reference (e.g., branch) that the agent will start its work from. If not specified, defaults to the repository's default branch
custom_instructionsstring–Optional custom instructions to guide the agent beyond the issue body. Use this to provide additional context, constraints, or guidance that is not captured in the issue description
issue_numbernumberyesIssue number
ownerstringyesRepository owner
repostringyesRepository name

No output schema declared.

No examples provided.

create_branch ~62

Create a new branch in a GitHub repository

NameTypeReqDescription
branchstringyesName for new branch
from_branchstring–Source branch (defaults to repo default)
ownerstringyesRepository owner
repostringyesRepository name

No output schema declared.

No examples provided.

create_or_update_file ~293

Create or update a single file in a GitHub repository. If updating, you should 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. To obtain the current blob SHA before updating, call the get_file_contents tool with the same owner, repo, and path, and set its ref parameter to this tool's branch value. The first text result reports the blob SHA for the requested path. SHA MUST be provided for existing file updates.

NameTypeReqDescription
allow_symlink_writeboolean–Set true to update a symbolic link itself; content must be its new target path.
branchstringyesBranch to create/update the file in
contentstringyesContent of the file, exactly as it should appear once written. Do not base64-encode it; this server does that before calling the REST API.
messagestringyesCommit message
ownerstringyesRepository owner (username or organization)
pathstringyesPath where to create/update the file
repostringyesRepository name
shastring–The blob SHA of the file being replaced. Required if the file already exists. Retrieve it with get_file_contents using the same owner, repo, and path, with ref set to this tool's branch value.

No output schema declared.

No examples provided.

create_pull_request ~124

Create a new pull request in a GitHub repository.

NameTypeReqDescription
basestringyesBranch to merge into
bodystring–PR description
draftboolean–Create as draft PR
headstringyesBranch containing changes
maintainer_can_modifyboolean–Allow maintainer edits
ownerstringyesRepository owner
repostringyesRepository name
reviewersarray–GitHub usernames or ORG/team-slug team reviewers to request reviews from
titlestringyesPR title

No output schema declared.

No examples provided.

create_repository ~93

Create a new GitHub repository in your account or specified organization

NameTypeReqDescription
autoInitboolean–Initialize with README
descriptionstring–Repository description
namestringyesRepository name
organizationstring–Organization to create the repository in (omit to create in your personal account)
privateboolean–Whether the repository should be private. Defaults to true (private) when omitted.

No output schema declared.

No examples provided.

delete_file ~74

Delete a file from a GitHub repository

NameTypeReqDescription
branchstringyesBranch to delete the file from
messagestringyesCommit message
ownerstringyesRepository owner (username or organization)
pathstringyesPath to the file to delete
repostringyesRepository name

No output schema declared.

No examples provided.

fork_repository ~49

Fork a GitHub repository to your account or specified organization

NameTypeReqDescription
organizationstring–Organization to fork to
ownerstringyesRepository owner
repostringyesRepository name

No output schema declared.

No examples provided.

get_commit ~167

Get details for a commit from a GitHub repository

NameTypeReqDescription
detailstring–Level of detail to include for changed files. "none" omits stats and files entirely. "stats" (default) includes per-file metadata: filename, status, and lines-of-code counts (additions, deletions, ch…
ownerstringyesRepository owner
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
repostringyesRepository name
shastringyesCommit SHA, branch name, or tag name

No output schema declared.

No examples provided.

get_file_contents ~185

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

NameTypeReqDescription
fieldsarray–Subset of fields to return for each entry when the path is a directory. If omitted, all fields are returned. Ignored when the path is a single file. Use this to reduce response size when listing dire…
ownerstringyesRepository owner (username or organization)
pathstring–Path to file/directory
refstring–Accepts optional git refs such as `refs/tags/{tag}`, `refs/heads/{branch}` or `refs/pull/{pr_number}/head`
repostringyesRepository name
shastring–Accepts optional commit SHA. If specified, it will be used instead of ref

No output schema declared.

No examples provided.

get_label ~48

Get a specific label from a repository.

NameTypeReqDescription
namestringyesLabel name.
ownerstringyesRepository owner (username or organization name)
repostringyesRepository name

No output schema declared.

No examples provided.

get_latest_release ~37

Get the latest release in a GitHub repository

NameTypeReqDescription
ownerstringyesRepository owner
repostringyesRepository name

No output schema declared.

No examples provided.

get_me ~43

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_release_by_tag ~62

Get a specific release by its tag name in a GitHub repository

NameTypeReqDescription
ownerstringyesRepository owner
repostringyesRepository name
tagstringyesTag name (e.g., 'v1.0.0')

No output schema declared.

No examples provided.

get_tag ~48

Get details about a specific git tag in a GitHub repository

NameTypeReqDescription
ownerstringyesRepository owner
repostringyesRepository name
tagstringyesTag name

No output schema declared.

No examples provided.

get_team_members ~54

Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials

NameTypeReqDescription
orgstringyesOrganization login (owner) that contains the team.
team_slugstringyesTeam slug

No output schema declared.

No examples provided.

get_teams ~50

Get details of the teams the user is a member of. Limited to organizations accessible with current credentials

NameTypeReqDescription
userstring–Username to get teams for. If not provided, uses the authenticated user.

No output schema declared.

No examples provided.

issue_read ~240

Get information about a specific issue in a GitHub repository.

NameTypeReqDescription
issue_numbernumberyesThe number of the issue
methodstringyesThe read operation to perform on a single issue. Options are: 1. get - Get issue details. Also returns best-effort hierarchy flags (`has_parent`, `has_children`); `parent` and `sub_issues_summary` ar…
ownerstringyesThe owner of the repository
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
repostringyesThe name of the repository

No output schema declared.

No examples provided.

issue_write ~438

Create a new or update an existing issue in a GitHub repository.

NameTypeReqDescription
assigneesarray–Usernames to assign to this issue
bodystring–Issue body content
duplicate_ofnumber–Issue number that this issue is a duplicate of. Required when state_reason is 'duplicate'.
issue_fieldsarray–Issue field values to set or clear. Each item requires 'field_name' and exactly one of 'value', 'field_option_name', or 'delete: true'.
issue_numbernumber–Issue number to update
labelsarray–Labels to apply to this issue
methodstringyesWrite operation to perform on a single issue. Options are: - 'create' - creates a new issue. - 'update' - updates an existing issue.
milestonenumber–Milestone number
ownerstringyesRepository owner
parent_issue_numbernumber–Issue number of the parent issue. Only used when method is 'create' and cannot be combined with issue_fields. The new issue is created and attached to this parent in the same operation.
parent_ownerstring–Repository owner of the parent issue. Must be provided with parent_repo. Omit both to use owner and repo. Only used when method is 'create' and parent_issue_number is provided.
parent_repostring–Repository name of the parent issue. Must be provided with parent_owner. Omit both to use owner and repo. Only used when method is 'create' and parent_issue_number is provided.
repostringyesRepository name
statestring–New state
state_reasonstring–Reason for the state change. Ignored unless state is changed.
titlestring–Issue title
type––Type of this issue. For updates, pass null to remove the current type. Only use if issue types are enabled for this repository. Use list_issue_types to get valid type values for this repository or it…

No output schema declared.

No examples provided.

list_branches ~71

List branches in a GitHub repository

NameTypeReqDescription
ownerstringyesRepository owner
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
repostringyesRepository name

No output schema declared.

No examples provided.

list_commits ~302

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).

NameTypeReqDescription
authorstring–Author username or email address to filter commits by
fieldsarray–Subset of fields to return for each commit. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields, e.g. just 'sha' and 'html_url'.
ownerstringyesRepository owner
pagenumber–Page number for pagination (min 1)
pathstring–Only commits containing this file path will be returned
perPagenumber–Results per page for pagination (min 1, max 100)
repostringyesRepository name
shastring–Commit 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.
sincestring–Only commits after this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD)
untilstring–Only commits before this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD)

No output schema declared.

No examples provided.

list_issue_fields ~117

List issue fields for a repository or organization. Returns field definitions including name, type (text, number, date, single_select), and for single_select fields the list of valid option names. When repo is omitted, returns org-level fields directly.

NameTypeReqDescription
ownerstringyesThe account owner of the repository or organization. The name is not case sensitive.
repostring–The name of the repository. When provided, returns fields for this specific repository (inherited from its organization). When omitted, returns org-level fields directly.

No output schema declared.

No examples provided.

list_issue_types ~81

List supported issue types for a repository or its owner organization. When repo is omitted, returns org-level issue types directly.

NameTypeReqDescription
ownerstringyesThe account owner of the repository or organization.
repostring–The name of the repository. When provided, returns issue types for this specific repository. When omitted, returns org-level issue types directly.

No output schema declared.

No examples provided.

list_issues ~306

List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.

NameTypeReqDescription
afterstring–Cursor for pagination. Use the cursor from the previous response.
directionstring–Order direction. If provided, the 'orderBy' also needs to be provided.
field_filtersarray–Filter by custom issue field values. Each entry takes a field_name and a value; the server looks up the field and coerces the value to its type (single-select option name, text, number, or YYYY-MM-DD…
fieldsarray–Subset of fields to return for each issue. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields; omitting 'body' and 'field_values' in particular d…
labelsarray–Filter by labels
orderBystring–Order issues by field. If provided, the 'direction' also needs to be provided.
ownerstringyesRepository owner
perPagenumber–Results per page for pagination (min 1, max 100)
repostringyesRepository name
sincestring–Filter by date (ISO 8601 timestamp)
statestring–Filter by state, by default both open and closed issues are returned when not provided

No output schema declared.

No examples provided.

list_pull_requests ~199

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.

NameTypeReqDescription
basestring–Filter by base branch
directionstring–Sort direction
fieldsarray–Subset of fields to return for each pull request. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields; omitting 'body' in particular drops the lar…
headstring–Filter by head user/org and branch
ownerstringyesRepository owner
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
repostringyesRepository name
sortstring–Sort by
statestring–Filter by state

No output schema declared.

No examples provided.

list_releases ~122

List releases in a GitHub repository

NameTypeReqDescription
fieldsarray–Subset of fields to return for each release. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields; omitting 'body' in particular drops the largest…
ownerstringyesRepository owner
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
repostringyesRepository name

No output schema declared.

No examples provided.

list_repository_collaborators ~174

List collaborators of a GitHub repository. Results are paginated; the response includes `nextPage`, `prevPage`, `firstPage`, and `lastPage` fields. To get the next page, use the `nextPage` value as the `page` parameter.

NameTypeReqDescription
affiliationstring–Filter by affiliation. Can be one of: 'outside' (outside collaborators), 'direct' (all with permissions regardless of org membership), 'all' (all collaborators). Default: 'all'
ownerstringyesRepository owner
pagenumber–Page number for pagination (default 1, min 1)
perPagenumber–Results per page for pagination (default 30, min 1, max 100)
repostringyesRepository name

No output schema declared.

No examples provided.

list_tags ~71

List git tags in a GitHub repository

NameTypeReqDescription
ownerstringyesRepository owner
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
repostringyesRepository name

No output schema declared.

No examples provided.

merge_pull_request ~102

Merge a pull request in a GitHub repository.

NameTypeReqDescription
commit_messagestring–Extra detail for merge commit
commit_titlestring–Title for merge commit
expectedHeadShastring–The expected SHA of the pull request's HEAD ref
merge_methodstring–Merge method
ownerstringyesRepository owner
pullNumbernumberyesPull request number
repostringyesRepository name

No output schema declared.

No examples provided.

pull_request_read ~446

Get information on a specific pull request in GitHub repository.

NameTypeReqDescription
afterstring–Cursor for pagination, used only by the get_review_comments method. Pass the endCursor from the previous page's PageInfo to fetch the next page.
methodstringyesAction to specify what pull request data needs to be retrieved from GitHub. Possible options: 1. get - Get details of a specific pull request. 2. get_diff - Get the diff of a pull request. 3. ge…
ownerstringyesRepository owner
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
pullNumbernumberyesPull request number
repostringyesRepository name

No output schema declared.

No examples provided.

pull_request_review_write ~378

Create and/or submit, delete review of a pull request. Available methods: - create: Create a new review of a pull request. If "event" parameter is provided, the review is submitted. If "event" is omitted, a pending review is created. - submit_pending: Submit an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request. The "body" and "event" parameters are used when submitting the review. - delete_pending: Delete an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request. - resolve_thread: Resolve a review thread. Requires only "threadId" parameter with the thread's node ID (e.g., PRRT_kwDOxxx). The owner, repo, and pullNumber parameters are not used for this method. Resolving an already-resolved thread is a no-op. - unresolve_thread: Unresolve a previously resolved review thread. Requires only "threadId" parameter. The owner, repo, and pullNumber parameters are not used for this method. Unresolving an already-unresolved thread is a no-op.

NameTypeReqDescription
bodystring–Review comment text
commitIDstring–SHA of commit to review
eventstring–Review action to perform.
methodstringyesThe write operation to perform on pull request review.
ownerstringyesRepository owner
pullNumbernumberyesPull request number
repostringyesRepository name
threadIdstring–The node ID of the review thread (e.g., PRRT_kwDOxxx). Required for resolve_thread and unresolve_thread methods. Get thread IDs from pull_request_read with method get_review_comments.

No output schema declared.

No examples provided.

push_files ~84

Push multiple files to a GitHub repository in a single commit

NameTypeReqDescription
branchstringyesBranch to push to
filesarrayyesArray of file objects to push, each object with path (string) and content (string)
messagestringyesCommit message
ownerstringyesRepository owner
repostringyesRepository name

No output schema declared.

No examples provided.

request_copilot_review ~69

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

NameTypeReqDescription
ownerstringyesRepository owner
pullNumbernumberyesPull request number
repostringyesRepository name

No output schema declared.

No examples provided.

search_code ~307

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.

NameTypeReqDescription
fieldsarray–Subset of fields to return for each code search result. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields; omitting 'repository' and 'text_match…
orderstring–Sort order for results
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
querystringyesSearch query (GitHub code search REST). Implicit AND between terms; supports `OR`, `NOT`, and `"quoted phrase"` for exact match. Qualifiers: `repo:owner/repo`, `org:`, `user:`, `language:`, `path:dir…
sortstring–Sort field ('indexed' only)

No output schema declared.

No examples provided.

search_commits ~315

Search for commits across GitHub repositories using GitHub's commit search syntax. Useful for finding specific changes, authors, or messages across one or many repositories. Searches the default branch only.

NameTypeReqDescription
orderstring–Sort order
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
querystringyesCommit search query (GitHub commit search REST). Searches commit messages on the default branch only. Scope the search with `repo:owner/repo`, `org:`, or `user:` (queries without a scope qualifier ma…
sortstring–Sort by author or committer date (defaults to best match)

No output schema declared.

No examples provided.

search_issues ~248

Search issues using natural-language semantic matching. Best for conceptual or paraphrased queries (e.g. "login fails after password reset"). Already scoped to is:issue.

NameTypeReqDescription
fieldsarray–Subset of fields to return for each issue result. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields; omitting 'body', 'reactions', and 'labels'…
orderstring–Sort order
ownerstring–Optional repository owner. If provided with repo, only issues for this repository are listed.
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
querystringyesThe search query, as natural language. When the user gives alternative wordings, include them as plain words rather than joining them with OR.
repostring–Optional repository name. If provided with owner, only issues for this repository are listed.
sortstring–Sort field by number of matches of categories, defaults to best match

No output schema declared.

No examples provided.

search_pull_requests ~218

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

NameTypeReqDescription
fieldsarray–Subset of fields to return for each pull request result. If omitted, all fields are returned. Use this to reduce response size when you only need specific fields; omitting 'body', 'reactions', and 'l…
orderstring–Sort order
ownerstring–Optional repository owner. If provided with repo, only pull requests for this repository are listed.
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
querystringyesSearch query using GitHub pull request search syntax
repostring–Optional repository name. If provided with owner, only pull requests for this repository are listed.
sortstring–Sort field by number of matches of categories, defaults to best match

No output schema declared.

No examples provided.

search_repositories ~175

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

NameTypeReqDescription
minimal_outputboolean–Return minimal repository information (default: true). When false, returns full GitHub API repository objects.
orderstring–Sort order
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
querystringyesRepository search query. Examples: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Supports advanced search syntax for precise filtering.
sortstring–Sort repositories by field, defaults to best match

No output schema declared.

No examples provided.

search_users ~138

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

NameTypeReqDescription
orderstring–Sort order
pagenumber–Page number for pagination (min 1)
perPagenumber–Results per page for pagination (min 1, max 100)
querystringyesUser search query. Examples: 'john smith', 'location:seattle', 'followers:>100'. Search is automatically scoped to type:user.
sortstring–Sort users by number of followers or repositories, or when the person joined GitHub.

No output schema declared.

No examples provided.

sub_issue_write ~302

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

NameTypeReqDescription
after_idnumber–The ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified)
before_idnumber–The ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified)
issue_numbernumberyesThe number of the parent issue
methodstringyesThe action to perform on a single sub-issue Options are: - 'add' - add a sub-issue to a parent issue in a GitHub repository. - 'remove' - remove a sub-issue from a parent issue in a GitHub repository…
ownerstringyesRepository owner
replace_parentboolean–When true, replaces the sub-issue's current parent issue. Use with 'add' method only.
repostringyesRepository name
sub_issue_idnumberyesThe ID of the sub-issue to add. ID is not the same as issue number

No output schema declared.

No examples provided.

ui_get ~86

Fetch UI data for MCP Apps (labels, assignees, milestones, issue types, branches, issue fields, reviewers).

NameTypeReqDescription
methodstringyesThe type of data to fetch
ownerstringyesRepository owner (required for all methods)
repostring–Repository name (required for labels, assignees, milestones, branches, issue fields, reviewers)

No output schema declared.

No examples provided.

update_issue_comment ~90

Update the body of an existing issue or pull request conversation comment. This tool cannot update pull request review comments.

NameTypeReqDescription
bodystringyesNew comment content
comment_idintegeryesThe numeric ID of the issue or pull request conversation comment to update. Do not use a pull request review comment ID.
ownerstringyesRepository owner
repostringyesRepository name

No output schema declared.

No examples provided.

update_pull_request ~146

Update an existing pull request in a GitHub repository.

NameTypeReqDescription
basestring–New base branch name
bodystring–New description
draftboolean–Mark pull request as draft (true) or ready for review (false)
maintainer_can_modifyboolean–Allow maintainer edits
ownerstringyesRepository owner
pullNumbernumberyesPull request number to update
repostringyesRepository name
reviewersarray–GitHub usernames or ORG/team-slug team reviewers to request reviews from
statestring–New state
titlestring–New title

No output schema declared.

No examples provided.

update_pull_request_branch ~74

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

NameTypeReqDescription
expectedHeadShastring–The expected SHA of the pull request's HEAD ref
ownerstringyesRepository owner
pullNumbernumberyesPull request number
repostringyesRepository name

No output schema declared.

No examples provided.

Common questions

What is the GitHub MCP server?

GitHub is an MCP server listed in the public MCP registry as io.github.github/github-mcp-server. Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language. This page covers its container image (ghcr.io/github/github-mcp-server).

Is the GitHub MCP server safe to use?

GitHub scores 41 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the GitHub MCP server expose?

GitHub exposes 46 tools: add_comment_to_pending_review, add_issue_comment, add_reply_to_pull_request_comment, assign_copilot_to_issue, create_branch, and 41 more. Their descriptions and schemas cost roughly 7,474 tokens of context every time the server is loaded.

Is the GitHub MCP server still maintained?

GitHub is still listed as active in the MCP registry. We last reached this channel on 2 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the GitHub MCP server under?

GitHub declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.