Skip to Content

GitHub

Github
Arcade Optimized

Description: Enable agents to interact with GitHub repositories, issues, and pull requests.

Author: Arcade

Auth: User authorization via the GitHub auth provider

PyPI VersionLicensePython VersionsWheel StatusDownloads

The Arcade GitHub MCP Server provides a pre-built set of tools for interacting with GitHub. This server is optimized for LLM usage and user experience, featuring fuzzy matching, smart defaults, and streamlined output. It is enterprise-ready and can be configured for both GitHub.com and GitHub Enterprise Server.

These tools make it easy to build agents and AI apps that can:

  • Access private repositories (with the user’s permission)
  • Get info about repositories, issues, pull requests, and more
  • Post issues, comments, and replies as the user
  • Perform fuzzy searches for repositories, users, and labels
  • Use intelligent defaults for user context and repository settings
  • Interact with Projects V2 (modern GitHub Projects)

Critical: This MCP Server is built for GitHub Apps, not OAuth Apps.

You must create a GitHub App (not an OAuth App) to use this server properly.

👉 Complete GitHub App Setup Guide

Configuration Required: All tools require secrets to be configured in Arcade Dashboard. See Secrets Setup below.


GitHub Enterprise Support

This MCP Server fully supports GitHub Enterprise Server 2.22+

Default Configuration:

  • If no GITHUB_SERVER_URL is configured, the default is https://api.github.com (GitHub.com)
  • All tools work with GitHub.com out of the box

For GitHub Enterprise Server:

  1. Create your GitHub App on your Enterprise instance (not github.com)
  2. Configure the GITHUB_SERVER_URL secret in Arcade Dashboard (see Secrets Setup below)
  3. Use your Enterprise server’s API endpoint

Example Enterprise Server URLs:

  • https://github.yourcompany.com/api/v3
  • https://enterprise.yourorg.com/api/v3
  • https://git.company.internal/api/v3

Note: GitHub Enterprise Server uses the /api/v3 path after the hostname. GitHub.com uses https://api.github.com (no /api/v3 suffix).


GitHub App Permissions Summary

When creating your GitHub App, you’ll need to grant specific permissions. Here’s a quick reference of which tools require which permissions:

Repository Permissions

PermissionLevelRequired For
ContentsReadAll repository and pull request tools, getting file contents
ContentsWriteCreating/updating files, creating branches, merging PRs
IssuesRead & WriteIssue management, PR assignments, managing labels (Issues)
Pull requestsRead & WritePull request management, reviews, managing labels (PRs)
MetadataReadAll tools (automatically granted)
StatusesReadCheckPullRequestMergeStatus

Organization Permissions

PermissionLevelRequired For
MembersReadProjects, collaborators, org repos, user search
ProjectsRead & WriteAll Projects V2 tools

User Permissions

PermissionLevelRequired For
Read user profileReadUser context tools, review workload
Act on behalf of userEnabledSetStarred (starring repositories)

Tools by Permission Requirements

Basic Repository Access (Contents Read + Metadata)

  • GetRepository
  • CountStargazers
  • ListStargazers
  • ListRepositoryActivities
  • GetFileContents

Repository Write (Contents Write + Metadata)

  • CreateBranch
  • CreateOrUpdateFile
  • UpdateFileLines

Issue Management (Contents Read + Issues + Metadata)

  • CreateIssue
  • UpdateIssue
  • GetIssue
  • ListIssues
  • CreateIssueComment
  • ListRepositoryLabels
  • ManageLabels (for issues)

Pull Request Read (Contents + Pull requests Read + Metadata)

  • ListPullRequests
  • GetPullRequest
  • ListPullRequestCommits
  • ListReviewCommentsOnPullRequest
  • CheckPullRequestMergeStatus (+ Statuses)

Pull Request Write (Contents Read + Pull requests Write + Metadata)

  • UpdatePullRequest
  • CreatePullRequest
  • SubmitPullRequestReview
  • ManagePullRequest
  • ManagePullRequestReviewers
  • CreateReviewComment
  • CreateReplyForReviewComment
  • ResolveReviewThread
  • ManageLabels (for pull requests)
  • MergePullRequest (+ Contents Write)

Organization Tools (Contents + Metadata + Members)

  • ListOrgRepositories
  • SearchMyRepos
  • ListRepositoryCollaborators
  • AssignPullRequestUser (+ Issues Write)

Projects V2 (Contents + Metadata + Projects + Members)

  • ListProjects
  • ListProjectItems
  • SearchProjectItem
  • ListProjectFields
  • UpdateProjectItem (Projects Write)

User Context (Contents + Metadata + Read user profile)

  • WhoAmI (+ Members)
  • GetUserRecentActivity
  • GetUserOpenItems
  • GetReviewWorkload (+ Pull requests Read)

⚠️ Special: Notifications (Requires Classic PAT)

  • GetNotificationSummary
  • ListNotifications

Note: GitHub Apps cannot access notifications API. Requires classic Personal Access Token with notifications scope.


Available Tools

These tools are currently available in the Arcade GitHub MCP Sever.

Tool NameDescription
Github.CreateIssueCreate an issue in a GitHub repository.
Github.UpdateIssueUpdate an existing issue in a repository.
Github.GetIssueGet details of a specific issue.
Github.ListIssuesList issues in a repository with filtering.
Github.CreateIssueCommentCreate a comment on an issue.
Github.ListPullRequestsList pull requests in a GitHub repository.
Github.GetPullRequestGet details of a pull request.
Github.UpdatePullRequestUpdate a pull request.
Github.CreatePullRequestCreate a new pull request.
Github.MergePullRequestMerge a pull request.
Github.ListPullRequestCommitsList commits on a pull request.
Github.SubmitPullRequestReviewSubmit a review (approve/request changes/comment).
Github.CreateReviewCommentCreate a review comment on a pull request.
Github.CreateReplyForReviewCommentReply to a review comment.
Github.ResolveReviewThreadResolve or unresolve a review conversation thread.
Github.ListReviewCommentsOnPullRequestList review comments on a pull request.
Github.ListReviewCommentsInARepositoryList all review comments in a repository.
Github.ManagePullRequestUpdate pull request properties.
Github.ManagePullRequestReviewersAdd or remove reviewers from a pull request.
Github.AssignPullRequestUserAssign a user to a pull request with fuzzy matching.
Github.CheckPullRequestMergeStatusCheck if a PR is ready to merge.
Github.ListProjectsList Projects V2 in an organization or user account.
Github.ListProjectItemsList items in a Projects V2 project.
Github.SearchProjectItemSearch for a specific item in a project.
Github.UpdateProjectItemUpdate field values for a project item.
Github.ListProjectFieldsList all custom fields in a project.
Github.GetRepositoryGet details of a GitHub repository.
Github.ListOrgRepositoriesList repositories of a GitHub organization.
Github.SearchMyReposSearch repositories with fuzzy matching.
Github.ListRepositoryCollaboratorsList collaborators and teams for a repository.
Github.ListRepositoryActivitiesList activities of a GitHub repository.
Github.CountStargazersCount the number of stargazers for a repository.
Github.ListStargazersList the stargazers of a GitHub repository.
Github.SetStarredStar or unstar a GitHub repository.
Github.CreateBranchCreate a new branch in a repository.
Github.GetFileContentsGet the contents of a file in a repository.
Github.CreateOrUpdateFileCreate or update a file in a repository.
Github.UpdateFileLinesReplace a block of lines within a file.
Github.ListRepositoryLabelsList all labels defined in a repository.
Github.ManageLabelsAdd or remove labels from an issue or pull request.
Github.WhoAmIGet information about the authenticated user.
Github.GetUserRecentActivityGet user's recently created PRs and issues.
Github.GetUserOpenItemsGet user's currently open PRs and issues.
Github.GetReviewWorkloadGet PRs awaiting review by the user.
Github.GetNotificationSummaryGet a summary of user notifications. ⚠️ Requires Classic PAT
Github.ListNotificationsList notifications with pagination. ⚠️ Requires Classic PAT

If you need to perform an action that’s not listed here, you can get in touch with us to request a new tool, or create your own tools with the GitHub auth provider.

Github.SetStarred


Star or unstar a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + User Permissions → “Act on behalf of user”

Important: This tool requires the “Act on behalf of user” permission to be enabled in your GitHub App settings.

Parameters

  • owner (string, required) The owner of the repository.
  • name (string, required) The name of the repository.
  • starred (boolean, required) Whether to star (true) or unstar (false) the repository.

Github.ListStargazers


List the stargazers of a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read)

Parameters

  • owner (string, required) The owner of the repository.
  • repo (string, required) The name of the repository.
  • limit (int, optional, Defaults to None) The maximum number of stargazers to return. If not provided, all stargazers will be returned.

Github.CreateIssue


Create an issue in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Issues (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • title (string, required) The title of the issue.
  • body (string, optional) The contents of the issue.
  • assignees (array of strings, optional) Logins for Users to assign to this issue.
  • milestone (integer, optional) The number of the milestone to associate this issue with.
  • labels (array of strings, optional) Labels to associate with this issue.
  • add_to_project_number (integer, optional) Project number to add this issue to.
  • add_to_project_scope (enum (ProjectScopeTarget), optional) Project scope (organization or user) if adding to a project.
  • add_to_project_owner (string, optional) Project owner (defaults to issue owner if not specified).

Github.CreateIssueComment


Create a comment on an issue in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Issues (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • issue_number (integer, required) The number that identifies the issue.
  • body (string, required) The contents of the comment.

Github.UpdateIssue


Update an existing issue in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Issues (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • issue_number (integer, required) The number that identifies the issue.
  • title (string, optional) The new title of the issue.
  • body (string, optional) The new contents of the issue.
  • state (enum (IssueState), optional) State of the issue (open, closed, all).
  • labels (array of strings, optional) Labels to set (replaces existing).
  • assignees (array of strings, optional) Assignees to set (replaces existing).
  • milestone (integer, optional) Milestone number to associate.

Github.GetIssue


Get details of a specific issue from a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Issues (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • issue_number (integer, required) The number that identifies the issue.

Github.ListIssues


List issues in a GitHub repository with filtering and pagination.

GitHub App Permissions: Repository → Contents (Read), Issues (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • state (enum (IssueState), optional, Defaults to open) The state of issues to return.
  • labels (string, optional) Comma-separated label names (e.g., “bug,ui,@high”).
  • sort (enum (IssueSortProperty), optional, Defaults to created) What to sort results by.
  • direction (enum (SortDirection), optional, Defaults to desc) The direction to sort results.
  • since (string, optional) Only show issues updated after this time (ISO 8601 format).
  • per_page (integer, optional, Defaults to 30) The number of results per page (max 100).
  • page (integer, optional, Defaults to 1) Page number of results to fetch.
  • search_org_wide (boolean, optional, Defaults to false) Search across all organization repositories instead of just one repository.

Github.ListPullRequests


List pull requests in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • state (enum (PRState), optional, Defaults to PRState.OPEN) The state of the pull requests to return.
  • head (string, optional) Filter pulls by head user or head organization and branch name in the format of user:ref-name or organization:ref-name.
  • base (string, optional, Defaults to 'main') Filter pulls by base branch name.
  • sort (enum (PRSortProperty), optional, Defaults to PRSortProperty.CREATED) The property to sort the results by.
  • direction (enum (SortDirection), optional) The direction of the sort.
  • per_page (integer, optional, Defaults to 30) The number of results per page (max 100).
  • page (integer, optional, Defaults to 1) The page number of the results to fetch.
  • search_org_wide (boolean, optional, Defaults to false) Search across all organization repositories instead of just one repository.

Github.GetPullRequest


Get details of a pull request in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • pull_number (integer, required) The number that identifies the pull request.
  • include_diff_content (boolean, optional, Defaults to false) If true, return the diff content of the pull request.

Github.UpdatePullRequest


Update a pull request in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • pull_number (integer, required) The number that identifies the pull request.
  • title (string, optional) The title of the pull request.
  • body (string, optional) The contents of the pull request.
  • state (enum (PRState), optional) State of this Pull Request. Either open or closed.
  • base (string, optional) The name of the branch you want your changes pulled into.
  • maintainer_can_modify (boolean, optional) Indicates whether maintainers can modify the pull request.

Github.ListPullRequestCommits


List commits (from oldest to newest) on a pull request in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • pull_number (integer, required) The number that identifies the pull request.
  • per_page (integer, optional, Defaults to 30) The number of results per page (max 100).
  • page (integer, optional, Defaults to 1) The page number of the results to fetch.

Github.CreateReplyForReviewComment


Create a reply to a review comment for a pull request in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • pull_number (integer, required) The number that identifies the pull request.
  • comment_id (integer, required) The unique identifier of the comment to reply to.
  • body (string, required) The text of the reply comment.

Github.ResolveReviewThread


Resolve or unresolve a pull request review conversation thread.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • thread_id (string, required) The GraphQL Node ID of the review thread.
  • resolved (boolean, optional, Defaults to true) Whether to resolve or unresolve the thread.

Github.ListReviewCommentsOnPullRequest


List review comments on a pull request in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • pull_number (integer, required) The number that identifies the pull request.
  • sort (enum (ReviewCommentSortProperty), optional, Defaults to 'created') The property to sort the results by. Can be one of: created, updated.
  • direction (enum (SortDirection), optional, Defaults to 'desc') The direction to sort results. Can be one of: asc, desc.
  • since (string, optional) Only show results that were last updated after the given time. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
  • per_page (integer, optional, Defaults to 30) The number of results per page (max 100).
  • page (integer, optional, Defaults to 1) The page number of the results to fetch.
  • include_extra_data (boolean, optional, Defaults to false) If true, return all the data available about the pull requests. This is a large payload and may impact performance - use with caution.

Github.CreateReviewComment


Create a review comment for a pull request in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Write), Metadata (Read)

Important: Line numbers must be part of the PR diff (changed lines only). If the line wasn’t changed in the PR, the comment will fail.

Tip: Use subject_type='file' to comment on the entire file if unsure about line positions.

If the subject_type is not ‘file’, then the start_line and end_line parameters are required. If the subject_type is ‘file’, then the start_line and end_line parameters are ignored. If the commit_id is not provided, the latest commit SHA of the PR’s base branch will be used.

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • pull_number (integer, required) The number that identifies the pull request.
  • body (string, required) The text of the review comment.
  • path (string, required) The relative path to the file that necessitates a comment.
  • commit_id (string, optional) The SHA of the commit needing a comment. If not provided, the latest commit SHA of the PR’s base branch will be used.
  • start_line (integer, optional) The start line of the range of lines in the pull request diff that the comment applies to. Required unless ‘subject_type’ is ‘file’.
  • end_line (integer, optional) The end line of the range of lines in the pull request diff that the comment applies to. Required unless ‘subject_type’ is ‘file’.
  • side (enum (DiffSide), optional, Defaults to 'RIGHT') The side of the diff that the pull request’s changes appear on. Use LEFT for deletions that appear in red. Use RIGHT for additions that appear in green or unchanged lines that appear in white and are shown for context.
  • start_side (string, optional) The starting side of the diff that the comment applies to.
  • subject_type (enum (ReviewCommentSubjectType), optional, Defaults to 'FILE') The type of subject that the comment applies to. Can be one of: file, hunk, or line.

Github.CountStargazers


Count the number of stargazers (stars) for a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read)

Parameters

  • owner (string, required) The owner of the repository.
  • name (string, required) The name of the repository.

Github.ListOrgRepositories


List repositories for the specified GitHub organization.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + Organization → Members (Read)

Parameters

  • org (string, required) The organization name. The name is not case sensitive.
  • repo_type (enum (RepoType), optional, Defaults to 'ALL') The types of repositories to return.
  • sort (enum (RepoSortProperty), optional, Defaults to 'CREATED') The property to sort the results by.
  • sort_direction (enum (SortDirection), optional, Defaults to 'ASC') The order to sort by.
  • per_page (integer, optional, Defaults to 30) The number of results per page.
  • page (integer, optional, Defaults to 1) The page number of the results to fetch.

Github.GetRepository


Get detailed information about a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.

Github.ListRepositoryActivities


List repository activities such as pushes, merges, force pushes, and branch changes. Retrieves a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • direction (enum (SortDirection), optional, Defaults to 'DESC') The direction to sort the results by.
  • per_page (integer, optional, Defaults to 30) The number of results per page (max 100).
  • before (string, optional) A cursor (unique identifier, e.g., a SHA of a commit) to search for results before this cursor.
  • after (string, optional) A cursor (unique identifier, e.g., a SHA of a commit) to search for results after this cursor.
  • ref (string, optional) The Git reference for the activities you want to list. Can be formatted as refs/heads/BRANCH_NAME or just BRANCH_NAME.
  • actor (string, optional) The GitHub username to filter by the actor who performed the activity.
  • time_period (enum (RepoTimePeriod), optional) The time period to filter by.
  • activity_type (enum (ActivityType), optional) The activity type to filter by.

Github.ListReviewCommentsInARepository


List review comments in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository. The name is not case sensitive.
  • repo (string, required) The name of the repository without the .git extension. The name is not case sensitive.
  • sort (enum (ReviewCommentSortProperty), optional, Defaults to 'created') The property to sort the results by. Can be one of: created, updated.
  • direction (enum (SortDirection), optional, Defaults to 'DESC') The direction to sort results. Ignored without sort parameter. Can be one of: asc, desc.
  • since (string, optional) Only show results that were last updated after the given time. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
  • per_page (integer, optional, Defaults to 30) The number of results per page (max 100).
  • page (integer, optional, Defaults to 1) The page number of the results to fetch.
  • include_extra_data (boolean, optional, Defaults to false) If true, return all the data available about the pull requests. This is a large payload and may impact performance - use with caution.

Github.CreatePullRequest


Create a new pull request in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • title (string, required) The title of the pull request.
  • head (string, required) The branch where your changes are (e.g., “feature/auth”). For cross-repo PRs: “username:branch”.
  • base (string, required) The branch you want changes pulled into (e.g., “main”).
  • body (string, optional) The contents/description of the pull request.
  • draft (boolean, optional, Defaults to false) Create as a draft pull request.
  • maintainer_can_modify (boolean, optional, Defaults to true) Allow maintainers to modify the PR branch.
  • issue (integer, optional) Issue number to auto-link. Will prepend “Closes #(issue)” to the PR body.
  • reviewers (array of strings, optional) List of user logins to request reviews from.
  • team_reviewers (array of strings, optional) List of team slugs to request reviews from.

Github.MergePullRequest


Merge a pull request in a GitHub repository.

GitHub App Permissions: Repository → Contents (Read & Write), Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • pull_number (integer, required) The number that identifies the pull request.
  • merge_method (enum (MergeMethod), optional, Defaults to merge) The merge method to use (merge, squash, rebase).
  • commit_title (string, optional) Title for the merge commit.
  • commit_message (string, optional) Extra detail for the merge commit message.
  • sha (string, optional) Expected head SHA to ensure merge safety. Merge fails if SHA doesn’t match.
  • delete_branch (boolean, optional, Defaults to false) Delete the head branch after successful merge.

Github.SubmitPullRequestReview


Submit a review for a pull request (approve, request changes, or comment).

GitHub App Permissions: Repository → Contents (Read), Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • pull_number (integer, required) The number that identifies the pull request.
  • event (enum (ReviewEvent), required) The review action (APPROVE, REQUEST_CHANGES, COMMENT).
  • body (string, optional) The body text of the review. Required when event is REQUEST_CHANGES or COMMENT.

Github.ManagePullRequest


Update properties of a pull request (title, body, state, base branch).

GitHub App Permissions: Repository → Contents (Read), Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • pull_number (integer, required) The number that identifies the pull request.
  • title (string, optional) New title for the pull request.
  • body (string, optional) New body for the pull request.
  • append_body (boolean, optional, Defaults to false) Append to existing body instead of replacing.
  • state (enum (PRState), optional) State of the pull request.
  • base (string, optional) The name of the branch to change the base to.

Github.ManagePullRequestReviewers


Add or remove reviewers from a pull request.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • pull_number (integer, required) The number that identifies the pull request.
  • add_reviewers (array of strings, optional) List of user logins to add as reviewers.
  • add_team_reviewers (array of strings, optional) List of team slugs to add as reviewers.
  • remove_reviewers (array of strings, optional) List of user logins to remove as reviewers.
  • remove_team_reviewers (array of strings, optional) List of team slugs to remove as reviewers.

Github.AssignPullRequestUser


Assign a user to a pull request with intelligent search and fuzzy matching.

GitHub App Permissions: Repository → Contents (Read), Issues (Write), Pull requests (Read), Metadata (Read) + Organization → Members (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • pull_number (integer, required) The number that identifies the pull request.
  • assignee_identifier (string, required) The user identifier (username, email, name, or ID).
  • search_mode (enum (UserSearchMode), required) How to interpret the assignee_identifier.
  • auto_accept_matches (boolean, optional, Defaults to false) Auto-accept fuzzy matches above 0.9 confidence.

Github.CheckPullRequestMergeStatus


Check if a pull request is ready to merge without attempting the merge.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Read), Metadata (Read), Statuses (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • pull_number (integer, required) The number that identifies the pull request.
  • include_check_details (boolean, optional, Defaults to false) Include individual check run details in the response.

Github.ListProjects


List Projects V2 across organization or user scopes.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + Organization → Projects (Read), Members (Read)

Note: Works with Projects V2 only (not Classic Projects).

Parameters

  • search_mode (enum (ProjectLookupMode), required) Select search by number or name.
  • scope_target (enum (ProjectScopeTarget), required) Where the project lives (organization, user, all).
  • scope_identifier (string, required) Owner reference (org name or username).
  • project_identifier (string, optional) Project number or title.
  • query_filter (string, optional) Filter projects (e.g., “template”).
  • state (enum (ProjectState), optional) Project state filter.
  • per_page (integer, optional, Defaults to 30) Items per page (max 100).
  • cursor (string, optional) Cursor for next page.
  • auto_accept_matches (boolean, optional, Defaults to false) Auto-accept fuzzy matches above 0.9 confidence.

Github.ListProjectItems


List items for a Projects V2 project with optional filtering.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + Organization → Projects (Read), Members (Read)

Parameters

  • project_search_mode (enum (ProjectLookupMode), required) Select project lookup by number or name.
  • project_identifier (string, required) Project number or title.
  • scope_target (enum (ProjectScopeTarget), required) Where the project lives.
  • scope_identifier (string, required) Owner reference.
  • filter_assignee (string, optional) Filter by assignee (“@me” or username).
  • filter_status (string, optional) Filter by status field value.
  • filter_labels (array of strings, optional) Filter by labels.
  • filter_is_open (boolean, optional) Filter by open/closed state.
  • advanced_query (string, optional) Advanced query (overrides filters).
  • per_page (integer, optional, Defaults to 30) Items per page (max 100).
  • cursor (string, optional) Cursor for next page.
  • auto_accept_matches (boolean, optional, Defaults to false) Auto-accept fuzzy matches above 0.9 confidence.

Github.SearchProjectItem


Search for a specific item in a Projects V2 project.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + Organization → Projects (Read), Members (Read)

Parameters

  • project_search_mode (enum (ProjectLookupMode), required) Select project lookup by number or name.
  • project_identifier (string, required) Project number or title.
  • item_search_mode (enum (ProjectItemLookupMode), required) Select item lookup by ID or title.
  • item_identifier (string, required) Item ID or title.
  • scope_target (enum (ProjectScopeTarget), required) Where the project lives.
  • scope_identifier (string, required) Owner reference.
  • auto_accept_matches (boolean, optional, Defaults to false) Auto-accept fuzzy matches above 0.9 confidence.

Github.UpdateProjectItem


Update field values for an item in a Projects V2 project.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + Organization → Projects (Read & Write), Members (Read)

Parameters

  • project_search_mode (enum (ProjectLookupMode), required) Select project lookup by number or name.
  • project_identifier (string, required) Project number or title.
  • item_search_mode (enum (ProjectItemLookupMode), required) Select item lookup by ID or title.
  • item_identifier (string, required) Item ID or title.
  • scope_target (enum (ProjectScopeTarget), required) Where the project lives.
  • scope_identifier (string, required) Owner reference.
  • field_updates (object, required) Field updates (e.g., {"Status": "Done", "Priority": "High"}).
  • auto_accept_matches (boolean, optional, Defaults to false) Auto-accept fuzzy matches above 0.9 confidence.

Github.ListProjectFields


List all custom fields configured for a Projects V2 project.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + Organization → Projects (Read), Members (Read)

Parameters

  • project_search_mode (enum (ProjectLookupMode), required) Select project lookup by number or name.
  • project_identifier (string, required) Project number or title.
  • scope_target (enum (ProjectScopeTarget), required) Where the project lives.
  • scope_identifier (string, required) Owner reference.
  • auto_accept_matches (boolean, optional, Defaults to false) Auto-accept fuzzy matches above 0.9 confidence.

Github.ListRepositoryCollaborators


List users and teams who have access to a repository and can be requested as reviewers.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + Organization → Members (Read)

Detail levels: basic (fast), include_org_members (default), full_profiles (slow, enriches with emails/names)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • affiliation (enum (CollaboratorAffiliation), optional) Filter by affiliation type.
  • permission (enum (CollaboratorPermission), optional) Filter by permission level.
  • detail_level (enum (CollaboratorDetailLevel), optional, Defaults to include_org_members) Detail level to include.
  • include_teams (boolean, optional, Defaults to true) Include teams that have access to the repository.
  • per_page (integer, optional, Defaults to 30) Number of collaborators per page (max 100).
  • page (integer, optional, Defaults to 1) Page number of results to fetch.

Github.SearchMyRepos


Search repositories accessible to the authenticated user with fuzzy matching.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + Organization → Members (Read)

Parameters

  • repo_name (string, required) Repository name or partial name to search for.
  • scope (enum (RepoSearchScope), optional, Defaults to all) Where to search (all, personal, organization).
  • organization (string, optional) Organization name when scope is “organization”.
  • auto_accept_matches (boolean, optional, Defaults to false) Auto-accept fuzzy matches above 0.9 confidence.
  • include_recent_branches (integer, optional, Defaults to 10) Include up to this many recent branches per repository (0-30).

Github.CreateBranch


Create a new branch in a repository.

GitHub App Permissions: Repository → Contents (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • branch (string, required) The name of the new branch.
  • from_branch (string, optional) The name of the branch to branch off of. Default: repository default branch.

Github.GetFileContents


Get the contents of a file in a repository.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • path (string, required) The content path.
  • ref (string, optional) The name of the commit/branch/tag. Default: the repository’s default branch.

Github.CreateOrUpdateFile


Create or update a file in a repository.

GitHub App Permissions: Repository → Contents (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • path (string, required) The content path.
  • content (string, required) The new content of the file.
  • message (string, required) The commit message.
  • branch (string, required) The branch name.
  • sha (string, optional) The blob SHA of the file being replaced. Required if updating.

Github.UpdateFileLines


Replace a block of lines within a file (1-indexed, inclusive).

GitHub App Permissions: Repository → Contents (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • path (string, required) The content path.
  • branch (string, required) The branch to update.
  • start_line (integer, required) The first (1-indexed) line number to replace. Must be <= end_line.
  • end_line (integer, required) The last (1-indexed) line number to replace. Must exist in the file.
  • new_content (string, required) The replacement lines (no need to include trailing newline).
  • message (string, required) The commit message describing the change.

Github.ListRepositoryLabels


List all labels defined in a repository.

GitHub App Permissions: Repository → Issues (Read), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • per_page (integer, optional, Defaults to 100) The number of results per page (max 100).
  • page (integer, optional, Defaults to 1) The page number of the results to fetch.

Github.ManageLabels


Add or remove labels from an issue or pull request. Supports fuzzy matching for typo tolerance.

GitHub App Permissions: Repository → Issues (Write) or Pull requests (Write), Metadata (Read)

Parameters

  • owner (string, required) The account owner of the repository.
  • repo (string, required) The name of the repository.
  • number (integer, required) The number that identifies the issue or pull request.
  • entity_type (enum (LabelEntityType), required) The type of entity (issue or pull_request).
  • add_labels (array of strings, optional) List of label names to add. Supports fuzzy matching.
  • remove_labels (array of strings, optional) List of label names to remove. Supports fuzzy matching.
  • auto_accept_matches (boolean, optional, Defaults to false) Auto-accept fuzzy matches above 0.9 confidence.

Github.WhoAmI


Get information about the authenticated GitHub user, including profile, organizations, and teams.

GitHub App Permissions: Organization → Members (Read) + User Permissions → Read user profile

Parameters

No parameters required for this tool.


Github.GetUserRecentActivity


Get user’s recently created pull requests and issues across all repositories.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + User Permissions → Read user profile

Parameters

  • days (integer, optional, Defaults to 30) Number of days to look back.
  • per_page (integer, optional, Defaults to 10) Number of items per category (PRs and issues). Max 50.

Github.GetUserOpenItems


Get user’s currently open pull requests and issues across all repositories.

GitHub App Permissions: Repository → Contents (Read), Metadata (Read) + User Permissions → Read user profile

Parameters

  • per_page (integer, optional, Defaults to 30) Number of items per category (PRs and issues). Max 100.

Github.GetReviewWorkload


Get pull requests awaiting review by the authenticated user.

GitHub App Permissions: Repository → Contents (Read), Pull requests (Read), Metadata (Read) + User Permissions → Read user profile

Parameters

No parameters required for this tool.


Github.GetNotificationSummary


Get a summary of GitHub notifications grouped by reason, repository, and type.

Special Requirements: GitHub Apps cannot access the notifications API.

Required: Classic Personal Access Token with notifications scope.

👉 How to create a Classic PAT  - Create with notifications scope only

Parameters

No parameters required for this tool.


Github.ListNotifications


List GitHub notifications with pagination.

Special Requirements: GitHub Apps cannot access the notifications API.

Required: Classic Personal Access Token with notifications scope.

👉 How to create a Classic PAT  - Create with notifications scope only

Parameters

  • page (integer, optional, Defaults to 1) Page number to fetch.
  • per_page (integer, optional, Defaults to 30) Number of notifications per page (max 100).
  • all_notifications (boolean, optional, Defaults to false) Include read notifications.
  • participating (boolean, optional, Defaults to false) Only show notifications user is participating in.

Configuration & Setup

Authentication

Critical: This MCP Server uses GitHub Apps authentication, not OAuth Apps.

You must create a GitHub App to use this server. OAuth Apps are not supported.

The Arcade GitHub MCP Server uses the GitHub auth provider to connect to users’ GitHub accounts.

For Arcade Cloud:

  • No configuration needed
  • Your users will see Arcade as the requesting application
  • All tools work out of the box

For Self-Hosted:

New to GitHub Apps? Read Why Arcade Uses GitHub Apps to understand the security and compliance benefits.

Secrets Setup

All tools require secrets to be configured in Arcade Dashboard.

Steps:

  1. Go to Arcade Dashboard 
  2. Navigate to Secrets in the left sidebar
  3. Click Add Secret
  4. Add the following secrets:
Secret NameValueRequired For
GITHUB_SERVER_URLhttps://api.github.com (default for GitHub.com)All tools
GITHUB_CLASSIC_PERSONAL_ACCESS_TOKENClassic PAT with notifications scopeNotifications tools only

Default: If GITHUB_SERVER_URL is not configured, it defaults to https://api.github.com (GitHub.com)

GitHub Enterprise Users: Set GITHUB_SERVER_URL to your Enterprise server’s API endpoint (e.g., https://github.yourcompany.com/api/v3). Note that Enterprise uses /api/v3 path. See GitHub Enterprise Support for details.

For Notifications Tools: Create a classic Personal Access Token at github.com/settings/tokens  with only the notifications scope checked. GitHub Apps cannot access the notifications API.


Enumerations Reference

Below is a reference of enumerations used by tools in this server. Each enum is linked from the tool documentation above.

PRSortProperty

Sort properties for pull requests (list_pull_requests):

  • CREATED: created - Sort by creation date
  • UPDATED: updated - Sort by last update date
  • POPULARITY: popularity - Sort by number of comments/reactions
  • LONG_RUNNING: long-running - Sort by duration PR has been open

PRState

Pull request state filter:

  • OPEN: open - Open pull requests only
  • CLOSED: closed - Closed pull requests only
  • ALL: all - All pull requests

IssueState

Issue state filter:

  • OPEN: open - Open issues only
  • CLOSED: closed - Closed issues only
  • ALL: all - All issues

IssueSortProperty

Sort properties for issues (list_issues):

  • CREATED: created - Sort by creation date
  • UPDATED: updated - Sort by last update date
  • COMMENTS: comments - Sort by number of comments

ReviewCommentSortProperty

Sort properties for review comments:

  • CREATED: created - Sort by creation date
  • UPDATED: updated - Sort by last update date

ReviewCommentSubjectType

Review comment subject type (create_review_comment):

  • FILE: file - Comment on entire file (use if unsure about line numbers)
  • LINE: line - Comment on specific lines in diff

DiffSide

Side of the diff for review comments:

  • LEFT: LEFT - For deletions (red)
  • RIGHT: RIGHT - For additions (green) or unchanged lines (context)

SortDirection

Sort direction (used across multiple tools):

  • ASC: asc - Ascending order (oldest first)
  • DESC: desc - Descending order (newest first)

MergeMethod

PR merge methods (merge_pull_request):

  • MERGE: merge - Create merge commit (preserves all commits)
  • SQUASH: squash - Squash commits into one
  • REBASE: rebase - Rebase and merge (linear history)

ReviewEvent

Review actions (submit_pull_request_review):

  • APPROVE: APPROVE - Approve the pull request
  • REQUEST_CHANGES: REQUEST_CHANGES - Request changes before merging
  • COMMENT: COMMENT - Comment without approval/rejection

UserSearchMode

User search modes (assign_pull_request_user):

  • username: username - Search by GitHub username
  • email: email - Search by email address
  • name: name - Search by display name
  • id: id - Search by numeric user ID

RepoType

Repository types (list_org_repositories):

  • ALL: all - All repositories
  • PUBLIC: public - Public repositories only
  • PRIVATE: private - Private repositories only
  • FORKS: forks - Forked repositories only
  • SOURCES: sources - Source repositories (not forks)
  • MEMBER: member - Repositories with explicit permission

RepoSortProperty

Repository sort properties:

  • CREATED: created - Sort by creation date
  • UPDATED: updated - Sort by last update date
  • PUSHED: pushed - Sort by last push date
  • FULL_NAME: full_name - Sort alphabetically by full name

RepoSearchScope

Repository search scope (search_my_repos):

  • ALL: all - All accessible repositories
  • PERSONAL: personal - Personal repositories only
  • ORGANIZATION: organization - Organization repositories only

RepoTimePeriod

Time periods for activity filtering:

  • DAY: day - Last day
  • WEEK: week - Last week
  • MONTH: month - Last month
  • QUARTER: quarter - Last quarter
  • YEAR: year - Last year

ActivityType

Repository activity types:

  • PUSH: push - Regular push events
  • FORCE_PUSH: force_push - Force push events
  • BRANCH_CREATION: branch_creation - Branch creation
  • BRANCH_DELETION: branch_deletion - Branch deletion
  • PR_MERGE: pr_merge - PR merge events
  • MERGE_QUEUE_MERGE: merge_queue_merge - Merge queue events

CollaboratorAffiliation

Collaborator affiliation types:

  • OUTSIDE: outside - Outside collaborators
  • DIRECT: direct - Direct collaborators
  • ALL: all - All collaborators

CollaboratorPermission

Permission levels:

  • PULL: pull - Read-only access
  • TRIAGE: triage - Read and triage access
  • PUSH: push - Read and write access
  • MAINTAIN: maintain - Read, write, and maintain access
  • ADMIN: admin - Full administrative access

CollaboratorDetailLevel

Detail level for collaborator listing:

  • BASIC: basic - Only explicit collaborators (fast)
  • INCLUDE_ORG_MEMBERS: include_org_members - Add org members (default)
  • FULL_PROFILES: full_profiles - Add org members + enrich with emails/names (slow)

ProjectScopeTarget

Project scope:

  • ORGANIZATION: organization - Organization-owned projects
  • USER: user - User-owned projects
  • ALL: all - All accessible projects

ProjectLookupMode

Project lookup method:

  • NUMBER: number - Find by project number
  • NAME: name - Find by project name/title

ProjectItemLookupMode

Project item lookup method:

  • ID: id - Find by item ID
  • TITLE: title - Find by item title

ProjectState

Project state filter:

  • OPEN: open - Open projects only
  • CLOSED: closed - Closed projects only
  • ALL: all - All projects

LabelEntityType

Entity type for label management:

  • ISSUE: issue - Issue
  • PULL_REQUEST: pull_request - Pull Request
Last updated on

GitHub | Arcade Docs