GitHub

Connect your AI agents to GitHub.

Available Tools

get_issue

Get a single issue by number from a specific repository. Returns detailed issue information including comments, labels, and assignees

get_issues

Get a list of issues from a repository with filtering options by state, labels, assignee, creator, and more. Supports pagination and sorting

search_issues

Search for issues across all accessible repositories using GitHub’s search syntax. Supports advanced filtering and sorting options

create_issue

Create a new issue in a repository with title, body, labels, assignees, and milestone. Returns the created issue

update_issue

Update an existing issue’s title, body, state, labels, assignees, milestone, and other properties

close_issue

Close an issue by setting its state to closed. Optionally specify a reason for closing

reopen_issue

Reopen a closed issue by setting its state to open

get_issue_comments

Get comments for a specific issue. Supports filtering by date and pagination for issues with many comments

create_issue_comment

Create a new comment on an issue. Comments support GitHub markdown formatting

update_issue_comment

Update an existing issue comment’s content. Only the comment author or repository owners can update comments

delete_issue_comment

Delete an issue comment. Only the comment author or repository owners can delete comments

add_labels_to_issue

Add labels to an issue. Labels must already exist in the repository

remove_label_from_issue

Remove a specific label from an issue

set_issue_labels

Set labels on an issue, replacing all existing labels with the new set

remove_all_labels_from_issue

Remove all labels from an issue

lock_issue

Lock an issue to prevent new comments. Only collaborators will be able to add new comments

unlock_issue

Unlock an issue to allow new comments from all users

get_pull_request

Get a single pull request by number from a specific repository. Returns detailed PR information including merge status, reviews, and file changes

get_pull_requests

Get a list of pull requests from a repository with filtering options by state, head/base branches, and sorting. Supports pagination

create_pull_request

Create a new pull request to merge changes from one branch into another. Supports creating draft PRs and setting reviewers

update_pull_request

Update an existing pull request’s title, body, state, base branch, and other properties

merge_pull_request

Merge a pull request using specified merge method (merge, squash, or rebase). Verifies PR can be merged before attempting

close_pull_request

Close a pull request without merging it. The PR can be reopened later if needed

reopen_pull_request

Reopen a closed pull request. The PR must not be merged to be reopened

convert_to_draft

Convert a pull request to draft status, preventing it from being merged until marked ready for review

mark_ready_for_review

Mark a draft pull request as ready for review, allowing it to be merged once approved

get_pull_request_reviews

Get reviews for a pull request including approval status, comments, and reviewer information

create_pull_request_review

Create a review for a pull request with approval, change requests, or general comments

create_pull_request_comment

Create a review comment on a pull request for code review. Comments specific lines of code in pull request diffs

request_reviewers

Request specific users or teams to review a pull request. Reviewers will be notified of the request

remove_review_request

Remove review requests from specific users or teams for a pull request

get_pull_request_files

Get the files changed in a pull request with diff information, additions, deletions, and patch data

check_if_merged

Check if a pull request has been merged and get merge details if applicable

get_pull_request_commits

Get commits in a pull request showing the individual changes that make up the PR

update_pull_request_branch

Update the head branch of a pull request to include the latest changes from the base branch

get_commit_status

Get the combined status for a specific commit or ref (legacy statuses API)

get_check_runs

Get check runs for a specific commit or ref (Checks API)

get_pull_request_checks

Get an overall CI status summary for a PR’s head commit, including checks and legacy status

get_repository

Get a single repository by owner and name. Returns detailed repository information including stats, settings, and metadata

get_repositories

Get a list of repositories. Can filter by type, visibility, and sort options. Supports pagination for large result sets

create_repository

Create a new repository. Can create private or public repositories with various settings like issues, wiki, etc

create_organization_repository

Create a new repository in an organization. Can create private or public repositories with various settings like issues, wiki, etc

update_repository

Update an existing repository’s settings, description, visibility, and other properties

delete_repository

Delete a repository permanently. This action cannot be undone. Use with extreme caution

get_branches

Get repository branches with optional filtering by protection status. Includes commit information for each branch

create_branch

Create a new branch from an existing commit. Requires the SHA of the commit to branch from

get_commits

Get repository commits with filtering options by author, date range, file path, and branch/SHA

get_commit

Get a single commit by SHA with detailed information including file changes, statistics, and parent commits

get_releases

Get repository releases including tags, assets, and release notes. Returns both published and draft releases

get_latest_release

Get the latest release for a repository. Returns the most recent non-prerelease, non-draft release

check_starred

Check if the authenticated user has starred a repository

star_repository

Star a repository for the authenticated user

unstar_repository

Unstar a repository for the authenticated user

get_authenticated_user

Get the authenticated user’s profile information including public and private details

get_user

Get detailed information about any GitHub user by their username

get_organization

Get detailed information about a GitHub organization by its name

get_followers

Get a list of users who follow a specific user. Supports pagination for users with many followers

get_following

Get a list of users that a specific user follows. Supports pagination for users who follow many people

check_following

Check if the authenticated user follows a specific user

follow_user

Follow a user as the authenticated user. The user will be notified of the follow

unfollow_user

Unfollow a user as the authenticated user

get_organization_members

Get members of an organization with filtering options by role and 2FA status

get_user_organizations

Get organizations that a user is publicly a member of

get_organization_teams

Get teams in an organization. Requires organization membership or public visibility

get_team_members

Get members of a specific team with filtering by role (member or maintainer)

check_team_membership

Check if a user is a member of a specific team

add_team_membership

Add a user to a team with specified role (member or maintainer). Requires admin permissions

remove_team_membership

Remove a user from a team. Requires admin permissions

create_team

Create a team in an organization. Requires org admin permissions

get_user_memberships

Get the authenticated user’s organization memberships including private memberships

get_user_events

Get public events for a user showing their recent GitHub activity

get_user_starred_repos

Get repositories starred by a user. Shows what projects they have bookmarked