# GitHub (oci · ghcr.io/github/github-mcp-server:1.8.0)

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

- Trust score: 40/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `api.githubcopilot.com`: 39/100, [markdown](https://verifymcp.io/servers/github-github-mcp-server/api.md), [page](https://verifymcp.io/servers/github-github-mcp-server/api)
- oci · `ghcr.io/github/github-mcp-server:1.8.0`: 40/100 (this document), [markdown](https://verifymcp.io/servers/github-github-mcp-server/ghcr-io-github-github-mcp-server-1-8-0.md), [page](https://verifymcp.io/servers/github-github-mcp-server/ghcr-io-github-github-mcp-server-1-8-0)

## Channel facts

- Registry: `oci`
- Package: `ghcr.io/github/github-mcp-server:1.8.0`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - CVE data not yet available for this package.
  - Install-script risk not yet assessed.
  - Dependency-health data not yet available.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 3 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 78/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 7400 tokens (~154/item across 48 items; 44 tools + 4 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**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

### Claude

```bash
claude mcp add github-github-mcp-server -- docker run --rm -i ghcr.io/github/github-mcp-server:1.8.0
```

### Codex

```bash
codex mcp add github-github-mcp-server -- docker run --rm -i ghcr.io/github/github-mcp-server:1.8.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.8.0"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  github-github-mcp-server:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/github/github-mcp-server:1.8.0"]
```

### Other

```json
{
  "mcpServers": {
    "github-github-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/github/github-mcp-server:1.8.0"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-07-31 (score 40, +29)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 11)

First indexed and scored.

## MCP tools (44)

### `add_comment_to_pending_review` (~240 tokens)

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

Input parameters:

- `body` (string, required): The text of the review comment
- `line` (number): 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
- `owner` (string, required): Repository owner
- `path` (string, required): The relative path to the file that necessitates a comment
- `pullNumber` (number, required): Pull request number
- `repo` (string, required): Repository name
- `side` (string): The side of the diff to comment on. LEFT indicates the previous state, RIGHT indicates the new state
- `startLine` (number): For multi-line comments, the first line of the range that the comment applies to
- `startSide` (string): 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
- `subjectType` (string, required): The level at which the comment is targeted

### `add_issue_comment` (~189 tokens)

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.

Input parameters:

- `body` (string): Comment content. Required unless reaction is provided.
- `comment_id` (number): 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_number` (number, required): Issue or pull request number to comment on or react to.
- `owner` (string, required): Repository owner
- `reaction` (string): Emoji reaction to add. Required unless body is provided.
- `repo` (string, required): Repository name

### `add_reply_to_pull_request_comment` (~179 tokens)

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.

Input parameters:

- `body` (string): The text of the reply. Required unless reaction is provided.
- `commentId` (number, required): The 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_...).
- `owner` (string, required): Repository owner
- `pullNumber` (number): Pull request number. Required when body is provided.
- `reaction` (string): Emoji reaction to add. Required unless body is provided.
- `repo` (string, required): Repository name

### `assign_copilot_to_issue` (~178 tokens)

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

Input parameters:

- `base_ref` (string): Git reference (e.g., branch) that the agent will start its work from. If not specified, defaults to the repository's default branch
- `custom_instructions` (string): 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_number` (number, required): Issue number
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name

### `create_branch` (~62 tokens)

Create a new branch in a GitHub repository

Input parameters:

- `branch` (string, required): Name for new branch
- `from_branch` (string): Source branch (defaults to repo default)
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name

### `create_or_update_file` (~196 tokens)

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.

In order to obtain the SHA of original file version before updating, use the following git command:
git rev-parse <branch>:<path to file>

SHA MUST be provided for existing file updates.

Input parameters:

- `branch` (string, required): Branch to create/update the file in
- `content` (string, required): Content of the file
- `message` (string, required): Commit message
- `owner` (string, required): Repository owner (username or organization)
- `path` (string, required): Path where to create/update the file
- `repo` (string, required): Repository name
- `sha` (string): The blob SHA of the file being replaced. Required if the file already exists.

### `create_pull_request` (~124 tokens)

Create a new pull request in a GitHub repository.

Input parameters:

- `base` (string, required): Branch to merge into
- `body` (string): PR description
- `draft` (boolean): Create as draft PR
- `head` (string, required): Branch containing changes
- `maintainer_can_modify` (boolean): Allow maintainer edits
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
- `reviewers` (array): GitHub usernames or ORG/team-slug team reviewers to request reviews from
- `title` (string, required): PR title

### `create_repository` (~93 tokens)

Create a new GitHub repository in your account or specified organization

Input parameters:

- `autoInit` (boolean): Initialize with README
- `description` (string): Repository description
- `name` (string, required): Repository name
- `organization` (string): Organization to create the repository in (omit to create in your personal account)
- `private` (boolean): Whether the repository should be private. Defaults to true (private) when omitted.

### `delete_file` (~74 tokens)

Delete a file from a GitHub repository

Input parameters:

- `branch` (string, required): Branch to delete the file from
- `message` (string, required): Commit message
- `owner` (string, required): Repository owner (username or organization)
- `path` (string, required): Path to the file to delete
- `repo` (string, required): Repository name

### `fork_repository` (~49 tokens)

Fork a GitHub repository to your account or specified organization

Input parameters:

- `organization` (string): Organization to fork to
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name

### `get_commit` (~167 tokens)

Get details for a commit from a GitHub repository

Input parameters:

- `detail` (string): 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…
- `owner` (string, required): Repository owner
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `repo` (string, required): Repository name
- `sha` (string, required): Commit SHA, branch name, or tag name

### `get_file_contents` (~185 tokens)

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

Input parameters:

- `fields` (array): 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…
- `owner` (string, required): Repository owner (username or organization)
- `path` (string): Path to file/directory
- `ref` (string): Accepts optional git refs such as `refs/tags/{tag}`, `refs/heads/{branch}` or `refs/pull/{pr_number}/head`
- `repo` (string, required): Repository name
- `sha` (string): Accepts optional commit SHA. If specified, it will be used instead of ref

### `get_label` (~48 tokens)

Get a specific label from a repository.

Input parameters:

- `name` (string, required): Label name.
- `owner` (string, required): Repository owner (username or organization name)
- `repo` (string, required): Repository name

### `get_latest_release` (~37 tokens)

Get the latest release in a GitHub repository

Input parameters:

- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name

### `get_me` (~43 tokens)

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.

### `get_release_by_tag` (~62 tokens)

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

Input parameters:

- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
- `tag` (string, required): Tag name (e.g., 'v1.0.0')

### `get_tag` (~48 tokens)

Get details about a specific git tag in a GitHub repository

Input parameters:

- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
- `tag` (string, required): Tag name

### `get_team_members` (~54 tokens)

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

Input parameters:

- `org` (string, required): Organization login (owner) that contains the team.
- `team_slug` (string, required): Team slug

### `get_teams` (~50 tokens)

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

Input parameters:

- `user` (string): Username to get teams for. If not provided, uses the authenticated user.

### `issue_read` (~211 tokens)

Get information about a specific issue in a GitHub repository.

Input parameters:

- `issue_number` (number, required): The number of the issue
- `method` (string, required): The 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…
- `owner` (string, required): The owner of the repository
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `repo` (string, required): The name of the repository

### `issue_write` (~295 tokens)

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

Input parameters:

- `assignees` (array): Usernames to assign to this issue
- `body` (string): Issue body content
- `duplicate_of` (number): Issue number that this issue is a duplicate of. Only used when state_reason is 'duplicate'.
- `issue_fields` (array): Issue field values to set or clear. Each item requires 'field_name' and exactly one of 'value', 'field_option_name', or 'delete: true'.
- `issue_number` (number): Issue number to update
- `labels` (array): Labels to apply to this issue
- `method` (string, required): Write operation to perform on a single issue. Options are: - 'create' - creates a new issue. - 'update' - updates an existing issue.
- `milestone` (number): Milestone number
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name
- `state` (string): New state
- `state_reason` (string): Reason for the state change. Ignored unless state is changed.
- `title` (string): Issue title
- `type` (string): Type of this issue. Only use if issue types are enabled for this repository. Use list_issue_types tool to get valid type values for this repository or its owner organization. If the repository doesn'…

### `list_branches` (~71 tokens)

List branches in a GitHub repository

Input parameters:

- `owner` (string, required): Repository owner
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `repo` (string, required): Repository name

### `list_commits` (~302 tokens)

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

Input parameters:

- `author` (string): Author username or email address to filter commits by
- `fields` (array): 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'.
- `owner` (string, required): Repository owner
- `page` (number): Page number for pagination (min 1)
- `path` (string): Only commits containing this file path will be returned
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `repo` (string, required): Repository name
- `sha` (string): 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.
- `since` (string): Only commits after this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD)
- `until` (string): Only commits before this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD)

### `list_issue_fields` (~117 tokens)

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.

Input parameters:

- `owner` (string, required): The account owner of the repository or organization. The name is not case sensitive.
- `repo` (string): The name of the repository. When provided, returns fields for this specific repository (inherited from its organization). When omitted, returns org-level fields directly.

### `list_issue_types` (~81 tokens)

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

Input parameters:

- `owner` (string, required): The account owner of the repository or organization.
- `repo` (string): The name of the repository. When provided, returns issue types for this specific repository. When omitted, returns org-level issue types directly.

### `list_issues` (~306 tokens)

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

Input parameters:

- `after` (string): Cursor for pagination. Use the cursor from the previous response.
- `direction` (string): Order direction. If provided, the 'orderBy' also needs to be provided.
- `field_filters` (array): 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…
- `fields` (array): 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…
- `labels` (array): Filter by labels
- `orderBy` (string): Order issues by field. If provided, the 'direction' also needs to be provided.
- `owner` (string, required): Repository owner
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `repo` (string, required): Repository name
- `since` (string): Filter by date (ISO 8601 timestamp)
- `state` (string): Filter by state, by default both open and closed issues are returned when not provided

### `list_pull_requests` (~199 tokens)

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.

Input parameters:

- `base` (string): Filter by base branch
- `direction` (string): Sort direction
- `fields` (array): 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…
- `head` (string): Filter by head user/org and branch
- `owner` (string, required): Repository owner
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `repo` (string, required): Repository name
- `sort` (string): Sort by
- `state` (string): Filter by state

### `list_releases` (~122 tokens)

List releases in a GitHub repository

Input parameters:

- `fields` (array): 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…
- `owner` (string, required): Repository owner
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `repo` (string, required): Repository name

### `list_repository_collaborators` (~174 tokens)

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.

Input parameters:

- `affiliation` (string): Filter by affiliation. Can be one of: 'outside' (outside collaborators), 'direct' (all with permissions regardless of org membership), 'all' (all collaborators). Default: 'all'
- `owner` (string, required): Repository owner
- `page` (number): Page number for pagination (default 1, min 1)
- `perPage` (number): Results per page for pagination (default 30, min 1, max 100)
- `repo` (string, required): Repository name

### `list_tags` (~71 tokens)

List git tags in a GitHub repository

Input parameters:

- `owner` (string, required): Repository owner
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `repo` (string, required): Repository name

### `merge_pull_request` (~83 tokens)

Merge a pull request in a GitHub repository.

Input parameters:

- `commit_message` (string): Extra detail for merge commit
- `commit_title` (string): Title for merge commit
- `merge_method` (string): Merge method
- `owner` (string, required): Repository owner
- `pullNumber` (number, required): Pull request number
- `repo` (string, required): Repository name

### `pull_request_read` (~427 tokens)

Get information on a specific pull request in GitHub repository.

Input parameters:

- `after` (string): 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.
- `method` (string, required): Action 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…
- `owner` (string, required): Repository owner
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `pullNumber` (number, required): Pull request number
- `repo` (string, required): Repository name

### `pull_request_review_write` (~378 tokens)

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.

Input parameters:

- `body` (string): Review comment text
- `commitID` (string): SHA of commit to review
- `event` (string): Review action to perform.
- `method` (string, required): The write operation to perform on pull request review.
- `owner` (string, required): Repository owner
- `pullNumber` (number, required): Pull request number
- `repo` (string, required): Repository name
- `threadId` (string): 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.

### `push_files` (~84 tokens)

Push multiple files to a GitHub repository in a single commit

Input parameters:

- `branch` (string, required): Branch to push to
- `files` (array, required): Array of file objects to push, each object with path (string) and content (string)
- `message` (string, required): Commit message
- `owner` (string, required): Repository owner
- `repo` (string, required): Repository name

### `request_copilot_review` (~69 tokens)

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

Input parameters:

- `owner` (string, required): Repository owner
- `pullNumber` (number, required): Pull request number
- `repo` (string, required): Repository name

### `search_code` (~307 tokens)

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.

Input parameters:

- `fields` (array): 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…
- `order` (string): Sort order for results
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `query` (string, required): Search 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…
- `sort` (string): Sort field ('indexed' only)

### `search_commits` (~315 tokens)

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.

Input parameters:

- `order` (string): Sort order
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `query` (string, required): Commit 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…
- `sort` (string): Sort by author or committer date (defaults to best match)

### `search_issues` (~213 tokens)

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

Input parameters:

- `fields` (array): 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'…
- `order` (string): Sort order
- `owner` (string): Optional repository owner. If provided with repo, only issues for this repository are listed.
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `query` (string, required): Search query using GitHub issues search syntax
- `repo` (string): Optional repository name. If provided with owner, only issues for this repository are listed.
- `sort` (string): Sort field by number of matches of categories, defaults to best match

### `search_pull_requests` (~218 tokens)

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

Input parameters:

- `fields` (array): 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…
- `order` (string): Sort order
- `owner` (string): Optional repository owner. If provided with repo, only pull requests for this repository are listed.
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `query` (string, required): Search query using GitHub pull request search syntax
- `repo` (string): Optional repository name. If provided with owner, only pull requests for this repository are listed.
- `sort` (string): Sort field by number of matches of categories, defaults to best match

### `search_repositories` (~175 tokens)

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

Input parameters:

- `minimal_output` (boolean): Return minimal repository information (default: true). When false, returns full GitHub API repository objects.
- `order` (string): Sort order
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `query` (string, required): Repository search query. Examples: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Supports advanced search syntax for precise filtering.
- `sort` (string): Sort repositories by field, defaults to best match

### `search_users` (~138 tokens)

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

Input parameters:

- `order` (string): Sort order
- `page` (number): Page number for pagination (min 1)
- `perPage` (number): Results per page for pagination (min 1, max 100)
- `query` (string, required): User search query. Examples: 'john smith', 'location:seattle', 'followers:>100'. Search is automatically scoped to type:user.
- `sort` (string): Sort users by number of followers or repositories, or when the person joined GitHub.

### `sub_issue_write` (~302 tokens)

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

Input parameters:

- `after_id` (number): The ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified)
- `before_id` (number): The ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified)
- `issue_number` (number, required): The number of the parent issue
- `method` (string, required): The 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…
- `owner` (string, required): Repository owner
- `replace_parent` (boolean): When true, replaces the sub-issue's current parent issue. Use with 'add' method only.
- `repo` (string, required): Repository name
- `sub_issue_id` (number, required): The ID of the sub-issue to add. ID is not the same as issue number

### `update_pull_request` (~146 tokens)

Update an existing pull request in a GitHub repository.

Input parameters:

- `base` (string): New base branch name
- `body` (string): New description
- `draft` (boolean): Mark pull request as draft (true) or ready for review (false)
- `maintainer_can_modify` (boolean): Allow maintainer edits
- `owner` (string, required): Repository owner
- `pullNumber` (number, required): Pull request number to update
- `repo` (string, required): Repository name
- `reviewers` (array): GitHub usernames or ORG/team-slug team reviewers to request reviews from
- `state` (string): New state
- `title` (string): New title

### `update_pull_request_branch` (~74 tokens)

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

Input parameters:

- `expectedHeadSha` (string): The expected SHA of the pull request's HEAD ref
- `owner` (string, required): Repository owner
- `pullNumber` (number, required): Pull request number
- `repo` (string, required): Repository name

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/github-github-mcp-server/ghcr-io-github-github-mcp-server-1-8-0#diagnostics

## Score history

- 2026-08-03: 40
- 2026-08-02: 40
- 2026-08-01: 40
- 2026-07-31: 40
- 2026-07-30: 11

## Links

- Repository: https://github.com/github/github-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/github-github-mcp-server/ghcr-io-github-github-mcp-server-1-8-0/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/github-github-mcp-server/ghcr-io-github-github-mcp-server-1-8-0/changelog.json
- HTML version of this page: https://verifymcp.io/servers/github-github-mcp-server/ghcr-io-github-github-mcp-server-1-8-0
