Pack local or remote codebases into AI-friendly files that LLMs and coding agents can read or search
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).
A call is made on an account: it counts against an allowance and the publisher sees it, which is why this one asks who you are first.
What it does
GitHub's official MCP server (github/github-mcp-server v1.12.2), hosted: repositories, files, branches, commits, issues, pull requests, reviews, releases and search. It runs GitHub's own release binary, checked against the checksum GitHub published, on mcprush hosting: there is no endpoint to keep alive and nothing to deploy yourself. It asks for your own GitHub personal access token (Dashboard › Variables); give it only the repositories and permissions the agent may use. The image is pinned, so what answers today is what answered yesterday.
Quickstart
# 1 — buy it first ($29 a month): mcprush.com/checkout?server=github-server-hosted-mcp
# a key alone is not enough: the gateway refuses every call until it is bought
# 2 — sign in with a key of the account that bought it: npx mcprush@latest login
# the key is at mcprush.com/dashboard#access
# 3 — install
npx mcprush@latest add mcpdevpro/github-server-hosted-mcp
# 4 — ask your agent for something these tools do
# add_comment_to_pending_review, add_issue_comment, add_reply_to_pull_request_comment and 42 more
Windows PowerShell says 'running scripts is disabled on this system'? Run Set-ExecutionPolicy -Scope CurrentUser RemoteSigned once, or type npx.cmd instead of npx (codex.cmd, gemini.cmd, grok.cmd likewise). PowerShell 7 needs neither.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine — this server runs on infrastructure we host behind our gateway, and what you install is the connection to it.
Claude Code has its own MCP command, and the key rides on it as a header — the gateway refuses a call that carries none. Claude Code reads MCPRUSH_KEY each time it connects, so the key stays out of its config: export your key from Access in your shell profile (macOS, Linux), or run setx MCPRUSH_KEY <your key> and open a new terminal (Windows). Or let npx mcprush@latest add mcpdevpro/github-server-hosted-mcp write the entry with the key for you; --scope user makes it available in every project. The first connection after a quiet spell starts the server, which takes up to a minute: if your client says it failed to connect, reconnect after that (/mcp in Claude Code).
Buy it first — $29 a month. A key alone is not enough: until this account has bought it, the gateway refuses every call. Subscribe, then use a key of the account that bought it.
claude mcp add --transport http --scope user github-server-hosted-mcp https://mcprush.com/gw/github-server-hosted-mcp/mcp --header 'Authorization: Bearer ${MCPRUSH_KEY}'Reconnect, or start a new session, and the tools appear in the model’s tool list.
It reaches a system of yours, so it needs your own credential rather than the publisher’s: GITHUB_PERSONAL_ACCESS_TOKEN — Your GitHub personal access token. Create a fine-grained one at github.com/settings/personal-access-tokens and give it only the repositories and permissions the agent may use (for example Contents, Issues, Pull requests). A classic token from github.com/settings/tokens also works.. You set it after installing; the value is sealed here and handed to the server when it starts.
One config entry pointing at the gateway. The server itself runs on infrastructure we host, so nothing from this listing executes on your machine.
45 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | yes | The text of the review comment |
| line | number | no | 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 | yes | Repository owner |
| path | string | yes | The relative path to the file that necessitates a comment |
| pullNumber | number | yes | Pull request number |
| repo | string | yes | Repository name |
| side | string | no | The side of the diff to comment on. LEFT indicates the previous state, RIGHT indicates the new state |
| startLine | number | no | For multi-line comments, the first line of the range that the comment applies to |
| startSide | string | no | 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 | yes | The level at which the comment is targeted |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | no | Comment content. Required unless reaction is provided. |
| comment_id | integer | no | 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 | yes | Issue or pull request number to comment on or react to. |
| owner | string | yes | Repository owner |
| reaction | string | no | Emoji reaction to add. Required unless body is provided. |
| repo | string | yes | Repository name |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | no | The text of the reply. Required unless reaction is provided. |
| commentId | number | yes | 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 | yes | Repository owner |
| pullNumber | number | no | Pull request number. Required when body is provided. |
| reaction | string | no | Emoji reaction to add. Required unless body is provided. |
| repo | string | yes | Repository name |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base_ref | string | no | 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 | no | 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 | yes | Issue number |
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
Create a new branch in a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| branch | string | yes | Name for new branch |
| from_branch | string | no | Source branch (defaults to repo default) |
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
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'
| Parameter | Type | Required | Notes |
|---|---|---|---|
| allow_symlink_write | boolean | no | Set true to update a symbolic link itself; content must be its new target path. |
| branch | string | yes | Branch to create/update the file in |
| content | string | yes | Content of the file, exactly as it should appear once written. Do not base64-encode it; this server does that before calling the REST API. |
| message | string | yes | Commit message |
| owner | string | yes | Repository owner (username or organization) |
| path | string | yes | Path where to create/update the file |
| repo | string | yes | Repository name |
| sha | string | no | 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. |
Create a new pull request in a GitHub repository.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base | string | yes | Branch to merge into |
| body | string | no | PR description |
| draft | boolean | no | Create as draft PR |
| head | string | yes | Branch containing changes |
| maintainer_can_modify | boolean | no | Allow maintainer edits |
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
| reviewers | array | no | GitHub usernames or ORG/team-slug team reviewers to request reviews from |
| title | string | yes | PR title |
Create a new GitHub repository in your account or specified organization
| Parameter | Type | Required | Notes |
|---|---|---|---|
| autoInit | boolean | no | Initialize with README |
| description | string | no | Repository description |
| name | string | yes | Repository name |
| organization | string | no | Organization to create the repository in (omit to create in your personal account) |
| private | boolean | no | Whether the repository should be private. Defaults to true (private) when omitted. |
Delete a file from a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| branch | string | yes | Branch to delete the file from |
| message | string | yes | Commit message |
| owner | string | yes | Repository owner (username or organization) |
| path | string | yes | Path to the file to delete |
| repo | string | yes | Repository name |
Fork a GitHub repository to your account or specified organization
| Parameter | Type | Required | Notes |
|---|---|---|---|
| organization | string | no | Organization to fork to |
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
Get details for a commit from a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| detail | string | no | 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, cha |
| owner | string | yes | Repository owner |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| repo | string | yes | Repository name |
| sha | string | yes | Commit SHA, branch name, or tag name |
Get the contents of a file or directory from a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fields | array | no | 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 direc |
| owner | string | yes | Repository owner (username or organization) |
| path | string | no | Path to file/directory |
| ref | string | no | Accepts optional git refs such as refs/tags/{tag}, refs/heads/{branch} or refs/pull/{pr_number}/head |
| repo | string | yes | Repository name |
| sha | string | no | Accepts optional commit SHA. If specified, it will be used instead of ref |
Get a specific label from a repository.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Label name. |
| owner | string | yes | Repository owner (username or organization name) |
| repo | string | yes | Repository name |
Get the latest release in a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
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.
No parameter schema on file.
Get a specific release by its tag name in a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
| tag | string | yes | Tag name (e.g., 'v1.0.0') |
Get details about a specific git tag in a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
| tag | string | yes | Tag name |
Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials
| Parameter | Type | Required | Notes |
|---|---|---|---|
| org | string | yes | Organization login (owner) that contains the team. |
| team_slug | string | yes | Team slug |
Get details of the teams the user is a member of. Limited to organizations accessible with current credentials
| Parameter | Type | Required | Notes |
|---|---|---|---|
| user | string | no | Username to get teams for. If not provided, uses the authenticated user. |
Get information about a specific issue in a GitHub repository.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| issue_number | number | yes | The number of the issue |
| method | string | yes | 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 are |
| owner | string | yes | The owner of the repository |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| repo | string | yes | The name of the repository |
Create a new or update an existing issue in a GitHub repository.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| assignees | array | no | Usernames to assign to this issue |
| body | string | no | Issue body content |
| duplicate_of | number | no | Issue number that this issue is a duplicate of. Required when state_reason is 'duplicate'. |
| issue_fields | array | no | 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 | no | Issue number to update |
| labels | array | no | Labels to apply to this issue |
| method | string | yes | Write operation to perform on a single issue. Options are: - 'create' - creates a new issue. - 'update' - updates an existing issue. |
| milestone | number | no | Milestone number |
| owner | string | yes | Repository owner |
| parent_issue_number | number | no | 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_owner | string | no | 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_repo | string | no | 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. |
| repo | string | yes | Repository name |
| state | string | no | New state |
| state_reason | string | no | Reason for the state change. Ignored unless state is changed. |
| title | string | no | Issue title |
| type | no | 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 its |
List branches in a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Repository owner |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| repo | string | yes | Repository name |
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).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| author | string | no | Author username or email address to filter commits by |
| fields | array | no | 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 | yes | Repository owner |
| page | number | no | Page number for pagination (min 1) |
| path | string | no | Only commits containing this file path will be returned |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| repo | string | yes | Repository name |
| sha | string | no | 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 | no | Only commits after this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD) |
| until | string | no | Only commits before this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | The account owner of the repository or organization. The name is not case sensitive. |
| repo | string | no | 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 supported issue types for a repository or its owner organization. When repo is omitted, returns org-level issue types directly.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | The account owner of the repository or organization. |
| repo | string | no | The name of the repository. When provided, returns issue types for this specific repository. When omitted, returns org-level issue types directly. |
List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| after | string | no | Cursor for pagination. Use the cursor from the previous response. |
| direction | string | no | Order direction. If provided, the 'orderBy' also needs to be provided. |
| field_filters | array | no | 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 | no | 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 dr |
| labels | array | no | Filter by labels |
| orderBy | string | no | Order issues by field. If provided, the 'direction' also needs to be provided. |
| owner | string | yes | Repository owner |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| repo | string | yes | Repository name |
| since | string | no | Filter by date (ISO 8601 timestamp) |
| state | string | no | Filter by state, by default both open and closed issues are returned when not provided |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base | string | no | Filter by base branch |
| direction | string | no | Sort direction |
| fields | array | no | 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 larg |
| head | string | no | Filter by head user/org and branch |
| owner | string | yes | Repository owner |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| repo | string | yes | Repository name |
| sort | string | no | Sort by |
| state | string | no | Filter by state |
List releases in a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fields | array | no | 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 p |
| owner | string | yes | Repository owner |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| repo | string | yes | Repository name |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| affiliation | string | no | 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 | yes | Repository owner |
| page | number | no | Page number for pagination (default 1, min 1) |
| perPage | number | no | Results per page for pagination (default 30, min 1, max 100) |
| repo | string | yes | Repository name |
List git tags in a GitHub repository
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Repository owner |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| repo | string | yes | Repository name |
Merge a pull request in a GitHub repository.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| commit_message | string | no | Extra detail for merge commit |
| commit_title | string | no | Title for merge commit |
| expectedHeadSha | string | no | The expected SHA of the pull request's HEAD ref |
| merge_method | string | no | Merge method |
| owner | string | yes | Repository owner |
| pullNumber | number | yes | Pull request number |
| repo | string | yes | Repository name |
Get information on a specific pull request in GitHub repository.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| after | string | no | 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 | yes | 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. get |
| owner | string | yes | Repository owner |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| pullNumber | number | yes | Pull request number |
| repo | string | yes | Repository name |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | no | Review comment text |
| commitID | string | no | SHA of commit to review |
| event | string | no | Review action to perform. |
| method | string | yes | The write operation to perform on pull request review. |
| owner | string | yes | Repository owner |
| pullNumber | number | yes | Pull request number |
| repo | string | yes | Repository name |
| threadId | string | no | 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 multiple files to a GitHub repository in a single commit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| branch | string | yes | Branch to push to |
| files | array | yes | Array of file objects to push, each object with path (string) and content (string) |
| message | string | yes | Commit message |
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | Repository owner |
| pullNumber | number | yes | Pull request number |
| repo | string | yes | Repository name |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fields | array | no | 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_matche |
| order | string | no | Sort order for results |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| query | string | yes | 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 | no | Sort field ('indexed' only) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| order | string | no | Sort order |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| query | string | yes | 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 mat |
| sort | string | no | Sort by author or committer date (defaults to best match) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fields | array | no | 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' i |
| order | string | no | Sort order |
| owner | string | no | Optional repository owner. If provided with repo, only issues for this repository are listed. |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| query | string | yes | The search query, as natural language. When the user gives alternative wordings, include them as plain words rather than joining them with OR. |
| repo | string | no | Optional repository name. If provided with owner, only issues for this repository are listed. |
| sort | string | no | Sort field by number of matches of categories, defaults to best match |
Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fields | array | no | 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 'la |
| order | string | no | Sort order |
| owner | string | no | Optional repository owner. If provided with repo, only pull requests for this repository are listed. |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| query | string | yes | Search query using GitHub pull request search syntax |
| repo | string | no | Optional repository name. If provided with owner, only pull requests for this repository are listed. |
| sort | string | no | Sort field by number of matches of categories, defaults to best match |
Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| minimal_output | boolean | no | Return minimal repository information (default: true). When false, returns full GitHub API repository objects. |
| order | string | no | Sort order |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| query | string | yes | 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 | no | Sort repositories by field, defaults to best match |
Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| order | string | no | Sort order |
| page | number | no | Page number for pagination (min 1) |
| perPage | number | no | Results per page for pagination (min 1, max 100) |
| query | string | yes | User search query. Examples: 'john smith', 'location:seattle', 'followers:>100'. Search is automatically scoped to type:user. |
| sort | string | no | Sort users by number of followers or repositories, or when the person joined GitHub. |
Add a sub-issue to a parent issue in a GitHub repository.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| after_id | number | no | The ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified) |
| before_id | number | no | The ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified) |
| issue_number | number | yes | The number of the parent issue |
| method | string | yes | 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 | yes | Repository owner |
| replace_parent | boolean | no | When true, replaces the sub-issue's current parent issue. Use with 'add' method only. |
| repo | string | yes | Repository name |
| sub_issue_id | number | yes | The ID of the sub-issue to add. ID is not the same as issue number |
Update the body of an existing issue or pull request conversation comment. This tool cannot update pull request review comments.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | yes | New comment content |
| comment_id | integer | yes | The numeric ID of the issue or pull request conversation comment to update. Do not use a pull request review comment ID. |
| owner | string | yes | Repository owner |
| repo | string | yes | Repository name |
Update an existing pull request in a GitHub repository.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base | string | no | New base branch name |
| body | string | no | New description |
| draft | boolean | no | Mark pull request as draft (true) or ready for review (false) |
| maintainer_can_modify | boolean | no | Allow maintainer edits |
| owner | string | yes | Repository owner |
| pullNumber | number | yes | Pull request number to update |
| repo | string | yes | Repository name |
| reviewers | array | no | GitHub usernames or ORG/team-slug team reviewers to request reviews from |
| state | string | no | New state |
| title | string | no | New title |
Update the branch of a pull request with the latest changes from the base branch.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| expectedHeadSha | string | no | The expected SHA of the pull request's HEAD ref |
| owner | string | yes | Repository owner |
| pullNumber | number | yes | Pull request number |
| repo | string | yes | Repository name |
- 50,000 calls a month, included
- 120 calls a minute at peak
- Every tool the listing has
- Cancel any time — the unused days are credited
- Runs behind the gateway, so cancelling stops it
What counts against the 50,000 calls a month on Starter
| Tool | Unit | Calls used | Out of the monthly allowance |
|---|---|---|---|
| add_comment_to_pending_review | write | 2 | 0.0040% |
| add_issue_comment | write | 2 | 0.0040% |
| add_reply_to_pull_request_comment | write | 2 | 0.0040% |
| assign_copilot_to_issue | write | 2 | 0.0040% |
| create_branch | write | 2 | 0.0040% |
| create_or_update_file | write | 2 | 0.0040% |
| create_pull_request | write | 2 | 0.0040% |
| create_repository | write | 2 | 0.0040% |
Failed calls, timeouts and anything the gateway rejects never count. When the allowance runs out the gateway returns an error naming the plan limit — nothing is billed beyond the subscription, ever.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
No tools were enumerated, so prompt-injection, capability and toxic-flow analysis had no tool surface to inspect. To grade a package’s real runtime tools, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| No per-tool rows for this release — see the note below. | ||
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
The gateway serves every install the publisher’s current release, so a release cannot be pinned or rolled back to here yet. The history below is for reading; the current release on file is 0.1.1.
- Built from github.com/github/github-mcp-server at v1.12.2 and released on our hosting.
- The version this listing went live with, after review.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish GitHub Server can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.