B

GitHub MCP Server

Official GitHub MCP server providing tools for repositories, issues, pull requests, code scanning, secret scanning, Dependabot, discussions, actions, gists, projects, and more.

Overall Score83/100

Score Breakdown

Server Info

Package
ghcr.io/github/github-mcp-server
Registry
ghcr
Maintainer
GitHubVendor
Category
Developer Tools
Tags
gitreposissuespull-requests
Last Scanned
28 May 2026

Findings

5 issues

Tool Schema Quality

HIGHRequired fields missing on 1 write operations

Write tools without required field declarations: mark_all_notifications_read.

Remediation

Add required arrays to all write/delete tool schemas.

MEDIUMOnly 9 of 87 schemas have parameter constraints

Most schemas lack maxLength, enum, or pattern constraints on string parameters.

Remediation

Add constraints to string parameters, especially on write operations.

Permission Granularity

MEDIUM3 tools combine read and write operations

Read/write separation is clear with ReadOnlyHint annotations set correctly. ReadOnly config flag strips all non-read-annotated tools from the inventory at startup. Toolset system provides fine-grained category-level enablement (repos, issues, pull_requests, discussions, actions, code_security, secret_protection, dependabot, notifications, gists, projects, labels, orgs, users, git). Destructive ops (delete_file, merge_pull_request, label_write delete mode, discussion_comment_write delete mode) are isolated in distinct named tools. LockdownMode validates content safety before exposing untrusted user content.

Remediation

Split into separate read and write tools.

Data Exposure

MEDIUM5 list operations lack pagination

Most list operations use WithPagination() helper adding typed page/perPage params. Cursor-based pagination (after param) supported on get_review_comments in pull_request_read and list_discussions. ContentWindowSize config limits response sizes. Full JSON objects returned with no field-selection support. CSV output mode available for some list operations.

Remediation

Add limit/offset or cursor-based pagination.

LOWNo field selection on responses

Responses return full records rather than projected fields.

Remediation

Implement field selection to return only relevant fields.

Tools

87 total
NameDescriptionRisk
get_meGet details of the authenticated GitHub userread
get_teamsGet the teams within an organization that the authenticated user belongs toread
get_team_membersGet members of a GitHub teamread
search_repositoriesSearch for GitHub repositories using a queryread
get_file_contentsGet the contents of a file or directory in a GitHub repositoryread
list_commitsGet list of commits of a branch in a GitHub repositoryread
search_codeSearch for code across GitHub repositoriesread
search_commitsSearch for commits across GitHub repositoriesread
get_commitGet details for a commit from a GitHub repositoryread
list_branchesList branches in a GitHub repositoryread
list_tagsList tags in a GitHub repositoryread
get_tagGet details about a specific tag in a GitHub repositoryread
list_releasesList releases in a GitHub repositoryread
get_latest_releaseGet the latest published full release for a repositoryread
get_release_by_tagGet a release by tag name in a GitHub repositoryread
create_or_update_fileCreate or update a single file in a GitHub repositorywrite
create_repositoryCreate a new GitHub repository in your account or specified organizationwrite
fork_repositoryFork a GitHub repository to your account or specified organizationwrite
create_branchCreate a new branch in a GitHub repositorywrite
push_filesPush multiple files to a GitHub repository in a single commitwrite
delete_fileDelete a file from a GitHub repositorywrite
list_starred_repositoriesList repositories starred by a userread
star_repositoryStar a GitHub repository for the authenticated userwrite
unstar_repositoryUnstar a GitHub repository for the authenticated userwrite
list_repository_collaboratorsList 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.read
get_repository_treeGet the file tree of a GitHub repositoryread
issue_readGet information about an issue in GitHub repositoryread
search_issuesSearch for GitHub issues and pull requestsread
list_issuesList issues in a GitHub repository with filtering optionsread
list_issue_typesList the issue types available in a GitHub repositoryread
list_issue_fieldsList available fields for issues in a GitHub repositoryread
issue_writeCreate or update an issue in a GitHub repositorywrite
add_issue_commentAdd a comment to a GitHub issuewrite
sub_issue_writeAdd or remove sub-issues from a GitHub issuewrite
search_usersSearch for GitHub usersread
search_orgsSearch for GitHub organizationsread
pull_request_readGet information on a specific pull request in GitHub repository.read
list_pull_requestsList and filter repository pull requestsread
search_pull_requestsSearch for pull requests across GitHub repositoriesread
merge_pull_requestMerge a pull request in a GitHub repositorywrite
update_pull_request_branchUpdate a pull request branch with the latest changes from the base branchwrite
create_pull_requestCreate a new pull request in a GitHub repositorywrite
update_pull_requestUpdate a pull request in a GitHub repositorywrite
pull_request_review_writeCreate, submit, or update a review on a GitHub pull requestwrite
add_comment_to_pending_reviewAdd a comment to a pending pull request review on GitHubwrite
add_reply_to_pull_request_commentAdd a reply to an existing pull request review comment on GitHubwrite
assign_copilot_to_issueAssign GitHub Copilot to work on an issuewrite
request_copilot_reviewRequest a Copilot review of a pull requestwrite
get_code_scanning_alertGet details of a specific code scanning alert in a GitHub repositoryread
list_code_scanning_alertsList code scanning alerts for a GitHub repositoryread
get_secret_scanning_alertGet details of a specific secret scanning alert in a GitHub repositoryread
list_secret_scanning_alertsList secret scanning alerts for a GitHub repositoryread
get_dependabot_alertGet details of a specific Dependabot alert in a GitHub repositoryread
list_dependabot_alertsList Dependabot alerts for a GitHub repositoryread
list_notificationsList all GitHub notifications for the authenticated userread
get_notification_detailsGet detailed information for a specific GitHub notificationread
dismiss_notificationDismiss a notification as done or unsubscribe from it on GitHubwrite
mark_all_notifications_readMark all GitHub notifications as readwrite
manage_notification_subscriptionManage a GitHub notification subscription for a specific threadwrite
manage_repository_notification_subscriptionManage a notification subscription for a GitHub repositorywrite
list_discussionsList discussions for a repository or organisation.read
get_discussionGet a specific discussion by IDread
get_discussion_commentsGet comments for a specific GitHub discussionread
discussion_comment_writeAdd, update, or delete a comment on a GitHub discussionwrite
list_discussion_categoriesList discussion categories for a repositoryread
actions_listList GitHub Actions workflows or workflow runs for a repositoryread
actions_getGet details of a GitHub Actions workflow or workflow runread
actions_run_triggerTrigger a GitHub Actions workflow runwrite
actions_get_job_logsGet logs for a GitHub Actions workflow jobread
list_global_security_advisoriesList global security advisories from the GitHub Advisory Databaseread
get_global_security_advisoryGet details of a specific global security advisoryread
list_repository_security_advisoriesList security advisories for a GitHub repositoryread
list_org_repository_security_advisoriesList security advisories for all repositories in a GitHub organizationread
list_gistsList gists for the authenticated user or another userread
get_gistGet a specific GitHub Gist by IDread
create_gistCreate a new GitHub Gist with one or more fileswrite
update_gistUpdate an existing GitHub Gistwrite
projects_listList GitHub Projects for a user or organizationread
projects_getGet details of a specific GitHub Projectread
projects_writeCreate, update, or modify a GitHub Project and its itemswrite
get_labelGet a label from a GitHub repositoryread
list_labelsList labels for a GitHub repositoryread
label_writeCreate, update, or delete a label in a GitHub repositorywrite
subscribe_pr_activitySubscribe to activity on a pull requestwrite
unsubscribe_pr_activityUnsubscribe from activity on a pull requestwrite
resolve_review_threadResolve a review thread on a GitHub pull requestwrite
unresolve_review_threadUnresolve a review thread on a GitHub pull requestwrite

Deploy GitHub MCP Server securely

CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.

Deploy on CompleteFlow