Connect Your AI Agent with GitHub for Slack

Integrate GitHub MCP server into your Slack workspace for instant access to your AI agent.

No credit card neededOr, book a demo
Documentation
Back to MCP Servers
GitHub
GitHub
Where the world builds software. Millions of developers and companies build, ship, and maintain their software on GitHub—the largest and most advanced development platform in the world.

Categories

Developer Tools

Available Tools

Tools that your AI agent can use through this MCP server to interact with GitHub

Update Pull Request

Update an existing pull request's title, body, state (open/closed), or base branch. Only the fields you provide are changed. Provide the repository as an owner/repo string and the PR number. If you only know the PR by title, call Get Pull Request or Search Issues and Pull Requests with is:pr first to resolve its number. To merge a PR, use Merge Pull Request; to comment on it, use Create Issue Comment. See the documentation

Update Project (V2) Item Status

Update the status of an item in the selected Project (V2). See the documentation

Update Issue

Update an existing issue: change its title, body, state (open/closed), labels, assignees, or milestone. Provide the repository as an owner/repo string and the issue number. Setting labels replaces the full label set (it does not append), so include any existing labels you want to keep. Closing an issue is done here by setting state to closed. Use Get Issue first if you need the current values. See the documentation

Update Gist

Allows you to update a gist's description and to update, delete, or rename gist files. See the documentation

Sync Fork Branch with Upstream

Sync a forked branch with the upstream branch. See the documentation

Star Repo

Star a repository. See the docs for more info.

Search Issues and Pull Requests

Search issues and pull requests across GitHub using the issues-search query DSL. This is the escape hatch for finding items by keyword, state, label, author, or assignee when you don't already know the issue/PR number. Build the query from space-separated qualifiers: repo:owner/name to scope to one repo (a bare repo:name with no owner is auto-resolved to your own account), is:issue/is:pr, is:open/is:closed, label:bug, author:octocat, assignee:octocat, in:title/in:body, and free-text keywords. Example: repo:PipedreamHQ/pipedream is:issue is:open label:bug raptor. Returns matching items (each with number, title, state, labels, html_url); feed a result's number into Get Issue, Get Pull Request, or Create Issue Comment. See the query syntax

Run Workflow

Trigger a GitHub Actions workflow run, or re-run the failed jobs of a previous run. To start a new run, provide workflow (the workflow file name, e.g. ci.yml, its display name, or its numeric ID) and optionally ref (the branch or tag to run on — defaults to the repository's default branch) and inputs (for workflow_dispatch workflows). To re-run only the failed jobs of an existing run instead, provide rerunFailedRunId. The workflow must already have a workflow_dispatch trigger to be dispatchable. Use List Workflows to find the workflow file name and List Workflow Runs to find a run ID. Provide the repository as an owner/repo string. See the documentation

Merge Pull Request

Merge an open pull request into its base branch. Choose the mergeMethod: merge (a merge commit, the default), squash (combine all commits into one), or rebase. The merge fails if the PR is not mergeable (conflicts, failing required checks, or required reviews missing) — check mergeable state and CI with Get Pull Request first. Provide the repository as an owner/repo string and the PR number. To create the PR first, use Create Pull Request. See the documentation

List Workflows

List the GitHub Actions workflows defined in a repository. Returns each workflow's id, name, path (e.g. .github/workflows/ci.yml), and state. Use this to discover the workflow file name or ID needed by Run Workflow. Provide the repository as an owner/repo string. See the documentation

List Workflow Runs

List GitHub Actions workflow runs for a repository, most recent first. Optionally filter by branch or status (e.g. completed, in_progress, failure, success). Returns each run's id, workflow name, status, conclusion, branch, and timestamps. Use this to triage CI — find a failing run, then pass its id to Get Workflow Run for job details or to Run Workflow to re-run its failed jobs. Provide the repository as an owner/repo string. See the documentation

List Team Id Options

Retrieves available options for the Team Id field.

List Repositories

List repositories the authenticated user can access, or — when org is provided — the repositories of a specific organization. Use this to discover a repo's owner/repo name before calling Get Repository, Get Repository Content, or List Commits. To find repos by name, set the name substring filter. See the documentation

List Releases

List releases for a repository See the documentation

List Organizations

List all organizations in the authenticated user's account. See the documentation

List Organization Repositories

List repositories for an organization. See the documentation

List Organization Options

Retrieves available options for the Organization field.

List Gists for a User

Lists public gists for the specified user. See the documentation

List Gist Id Options

Retrieves available options for the Gist Id field.

List Commits

List commits in a repository, most recent first. Optionally scope to a branch or starting SHA, a file path, an author, or a date range. Provide the repository as an owner/repo string. Use Get Repository to find the default branch name if needed. See the documentation

List Branches

List the branches in a repository. Provide the repository as an owner/repo string. Optionally filter to only protected (or only unprotected) branches. If you need to discover repository names first, use List Repositories. See the documentation

Get Workflow Run

Get the details of a single GitHub Actions workflow run, including its per-job conclusions and a link to the run's logs. Returns the run's status/conclusion and timestamps plus a jobs array (each job's name, status, conclusion, and logsUrl) so you can see exactly which job failed. Provide the repository as an owner/repo string and the run ID. Use List Workflow Runs to find a run ID, then Run Workflow to re-run the failed jobs. See the documentation

Get Reviewers

Get reviewers for a PR (see documentation) or Commit SHA (see documentation).

Get Repository Info

Get metadata for a single repository: description, default branch, visibility, topics, star/fork/open-issue counts, your permission level, and timestamps. Use this to discover a repo's default branch before reading files with Get Repository Content or listing history with List Commits. Provide the repository as an owner/repo string (e.g. PipedreamHQ/pipedream). See the documentation

Get Repository Content

Read a file's contents or list a directory in a repository. For a file, the base64 payload is decoded for you and returned as plain text in the content field. For a directory, returns the list of entries (name, path, type). Provide the repository as an owner/repo string and the path to the file or directory (omit path for the repo root). Use Get Repository first if you need to know the default branch. See the documentation

Get Pull Request

Get the full details of a single pull request along with its reviews and a CI/merge readiness summary. Returns PR metadata (title, body, state, head/base branches, draft flag, timestamps), the mergeable/mergeable_state flags, a checksSummary rollup of CI status for the head commit (combined commit status + check runs, summarized to an overall state and pass/fail counts), the list of reviews, and a deduplicated list of reviewers with their review states (e.g. APPROVED, CHANGES_REQUESTED). Use this to answer "can I merge this?" and "is CI green?" before calling Merge Pull Request. Provide the repository as an owner/repo string and the PR number. If you only know the PR by title, call Search Issues and Pull Requests with is:pr first to resolve its number. See the documentation

Get Pull Request Files

List the files changed in a pull request (the PR diff at the file level). Returns each file's filename, status (added/modified/removed/renamed), additions/deletions/changes counts, and the unified patch when available — use this to review what a PR changes before approving or merging it. Provide the repository as an owner/repo string and the PR number. If you only know the PR by title, call Get Pull Request or Search Issues and Pull Requests with is:pr first to resolve its number. See the documentation

Get Issue

Get the full details of a single issue: title, body, state, labels, assignees, milestone, comment count, and timestamps. Provide the repository as an owner/repo string and the issue number. If you only know the issue by title or topic, call Search Issues and Pull Requests first to resolve its number. See the documentation

Get Issue Assignees

Get assignees for an issue in a GitHub repo. See the documentation

Get Current User

Gather a full snapshot of the authenticated GitHub actor, combining /user, /user/orgs, and /user/teams. Returns profile metadata (login, name, email, company, plan, creation timestamps) and trimmed lists of organizations and teams for quick role awareness. Helpful when you need to validate which user is calling the API, adapt behavior based on their org/team memberships, or provide LLMs with grounding before repository operations. See the documentation.

Get Commit

Get the details of a single commit, including the list of files it changed (with per-file additions/deletions and patches) and aggregate stats. Provide the repository as an owner/repo string and a ref — a commit SHA, branch name, or tag. Use List Commits to find a commit SHA, or pass a branch name like main to get its latest commit. See the documentation

Enable Workflow

Enables a workflow and sets the state of the workflow to active. See the documentation

Disable Workflow

Disables a workflow and sets the state of the workflow to disabled_manually. See the documentation

Create Workflow Dispatch

Creates a new workflow dispatch event. See the documentation

Create Repository

Creates a new repository for the authenticated user. See the documentation

Create Pull Request

Open a pull request proposing to merge one branch into another within a repository. Provide the repository as an owner/repo string, the head branch (the source containing your changes) and the base branch (the target, e.g. main), plus a title. The head and base branches must already exist and differ. For a cross-fork PR, set head to username:branch. Use Create or Update File Contents to push changes to a branch before opening the PR. See the documentation

Create Pull Request Review

Submit a review on a pull request: approve it, request changes, or leave a general comment. Set event to APPROVE, REQUEST_CHANGES, or COMMENT — a body is required for REQUEST_CHANGES and COMMENT. Optionally attach inline comments tied to specific lines of the diff. GitHub forbids approving your own pull request, so use COMMENT to leave feedback on PRs you authored. Provide the repository as an owner/repo string and the PR number. Use Get Pull Request Files to find the file paths and lines to comment on, and Search Issues and Pull Requests with is:pr to resolve the PR number from a title. See the documentation

Create or Update File Contents

Create a new file or overwrite an existing one in a repository with a single commit. Provide the repository as an owner/repo string, the file path, the raw text content (passed as-is — do not base64-encode it yourself), and a commit message. If the file already exists on the target branch it is overwritten; the required blob SHA is resolved for you automatically. Defaults to the repository's default branch unless branch is set. See the documentation

Create Issue

Create a new issue in a repository, optionally with labels, assignees, and a milestone. Provide the repository as an owner/repo string. Labels and assignees are passed by name/login (e.g. bug, octocat) — setting them requires push access to the repo. To comment on an existing issue instead, use Create Issue Comment; to change an existing issue, use Update Issue. See the documentation

Create Issue Comment

Add a comment to an existing issue or pull request (GitHub treats PRs as issues for comments, so the same number works for both). Provide the repository as an owner/repo string, the issue/PR number, and the comment body. If you only know the issue/PR by title, call Search Issues and Pull Requests first to resolve its number. See the documentation

Create Gist

Allows you to add a new gist with one or more files. See the documentation

Create Branch

Create a new branch in a repository, pointing at the tip of a source branch. Provide the repository as an owner/repo string, the new branchName, and optionally the sourceBranch to branch from (defaults to the repository's default branch). Use Create or Update File Contents to add commits to the new branch, then Create Pull Request to open a PR. See the documentation