Back to MCP Servers

GitHub Slack integration for your AI agent

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

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

  • 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

  • Create Workflow Dispatch

    Creates a new workflow dispatch event. 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

  • 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 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 Repository Labels

    List the labels defined in a repository (name, color, and description). Use this to discover valid label names before filtering issues or applying labels. Provide the repository as an owner/repo string; if you pass only a repo name, the authenticated user is assumed as the owner. Discover repository names with List Repositories. See the documentation

  • List Repository Collaborators

    List the collaborators on a repository (their login, permissions, and profile links). Use this to see who has access to a repo, or to find a valid collaborator login before assigning issues or requesting reviews. Provide the repository as an owner/repo string; if you pass only a repo name, the authenticated user is assumed as the owner. Discover repository names with List Repositories. See the documentation

  • List Projects

    List the Projects (V2) owned by an organization, or scoped to a specific repository (returns each project's number and title). This is the entry point for the Projects (V2) discovery chain: use the returned project number with List Project Statuses, List Project Items, or Update Project (V2) Item Status. Discover organization logins with List Organizations. Note: user-owned Projects are not supported. Returns { projects, nextCursor }; when nextCursor is non-null there are more results — pass it back as Cursor to fetch the next page. Do NOT call this with a guessed or assumed Owner: if the user hasn't named the organization/owner, ask them first rather than trying multiple organizations. See the documentation

  • List Project Statuses

    List the options of a Project (V2) Status field (e.g. Todo, In Progress, Done), returning each option's name and id. Use this to discover the valid status values for a project before calling Update Project (V2) Item Status. Get the project number from List Projects. Discover organization logins with List Organizations. See the documentation

  • List Project Items

    List the items in a Project (V2). Each item has an id, a type, and its title under fieldValueByName.text (not a flat title field). Use the returned item id with Update Project (V2) Item Status to change an item's status. Get the project number from List Projects and its valid statuses from List Project Statuses. Discover organization logins with List Organizations. Returns at most 100 items with no pagination — a project with more than 100 items exposes only the last 100 (the tail of the item connection, in the connection's own order), so earlier items can't be retrieved. See the documentation

  • List Milestones

    List the milestones in a repository (title, state, due date, and open/closed issue counts). Use this to discover a milestone's title or number before filtering or updating issues. Provide the repository as an owner/repo string; if you pass only a repo name, the authenticated user is assumed as the owner. Discover repository names with List Repositories. See the documentation

  • 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 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

  • 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

  • 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 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 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 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

  • 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 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 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

  • Update Project (V2) Item Status

    Update the status of an item in the selected Project (V2). 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.

  • List Team Id Options

    Retrieves available options for the Team Id field.

  • 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.

  • Get Reviewers

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

  • Get Issue Assignees

    Get assignees for an issue in a GitHub repo. 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 Repository

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

  • Create Gist

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