GitHub MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITHUB_TOKEN | Yes | GitHub Personal Access Token for authentication. Scopes required depend on the tools being used (e.g., repo, read:org, gist, notifications, user, workflow, read:discussion, project). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_workflowsB | List GitHub Actions workflows in a repository. |
| list_workflow_runsB | List workflow runs for a repository or specific workflow. |
| trigger_workflowB | Trigger a workflow dispatch event to run a workflow. |
| cancel_workflow_runC | Cancel a workflow run. |
| get_branch_protectionB | Get branch protection rules for a branch. |
| update_branch_protectionC | Update branch protection rules for a branch. |
| delete_branch_protectionC | Delete branch protection rules for a branch. |
| list_branchesB | List branches in a repository. |
| create_branchB | Create a new branch in a repository. |
| delete_branchC | Delete a branch from a repository. |
| list_collaboratorsB | List collaborators of a repository. |
| add_collaboratorB | Add a collaborator to a repository. |
| remove_collaboratorB | Remove a collaborator from a repository. |
| list_commit_statusesB | List commit statuses for a reference (branch, tag, or SHA). |
| create_commit_statusB | Create a commit status for a specific SHA. |
| list_check_runsB | List check runs for a reference (branch, tag, or SHA). |
| get_check_runB | Get a single check run by ID. |
| list_discussionsC | List discussions in a repository. |
| get_discussionB | Get details of a specific discussion. |
| get_discussion_commentsC | Get comments on a discussion. |
| list_discussion_categoriesB | List discussion categories for a repository. |
| create_or_update_fileA | Create or update a file in a repository. To update, you must provide the current file's SHA. |
| delete_fileC | Delete a file from a repository. |
| list_gistsB | List gists for a user or the authenticated user. |
| get_gistB | Get a specific gist with its file contents. |
| create_gistB | Create a new gist. |
| update_gistB | Update an existing gist. Provide files to add/update, or set a filename's content to empty string to delete it. |
| get_repository_treeA | Get a repository tree (directory listing) by SHA or branch name. Set recursive=True to get the full nested file tree. |
| push_filesA | Push multiple files to a branch in a single commit using the Git Data API. This creates blobs, a tree, a commit, and updates the branch ref atomically. |
| list_issuesC | List issues in a repository. |
| get_issueB | Get detailed information about a specific issue. |
| create_issueB | Create a new issue in a repository. |
| update_issueC | Update an existing issue. |
| list_issue_commentsB | List comments on an issue. |
| create_issue_commentB | Add a comment to an issue. |
| list_labelsC | List labels in a repository. |
| create_labelC | Create a label in a repository. |
| delete_labelB | Delete a label from a repository. |
| list_notificationsB | List notifications for the authenticated user. |
| mark_notifications_readB | Mark all notifications as read. |
| mark_thread_readB | Mark a specific notification thread as read. |
| list_user_orgsB | List organizations for the authenticated user. |
| get_organizationC | Get detailed information about an organization. |
| list_org_membersB | List members of an organization. |
| list_repo_projectsB | List projects in a repository (classic projects). |
| list_org_projectsB | List projects in an organization (classic projects). |
| list_projects_v2C | List Projects V2 for an organization or user. |
| get_project_v2C | Get details of a specific Project V2. |
| list_project_v2_itemsB | List items in a Project V2 (issues, PRs, and draft items). |
| list_pull_requestsB | List pull requests in a repository. |
| get_pull_requestC | Get detailed information about a pull request. |
| create_pull_requestC | Create a new pull request. |
| update_pull_requestC | Update a pull request. |
| merge_pull_requestC | Merge a pull request. |
| list_pr_filesB | List files changed in a pull request. |
| list_pr_commitsB | List commits in a pull request. |
| update_pull_request_branchA | Update a pull request branch with the latest changes from the base branch. This is equivalent to pressing the 'Update branch' button on GitHub. |
| list_releasesB | List releases in a repository. |
| get_latest_releaseB | Get the latest published release of a repository. |
| create_releaseC | Create a new release. |
| get_release_by_tagB | Get a release by its tag name. |
| list_repositoriesB | List repositories for a user or organization. |
| get_repositoryB | Get detailed information about a repository. |
| create_repositoryB | Create a new repository for the authenticated user. |
| fork_repositoryC | Fork a repository. |
| list_commitsB | List commits in a repository. |
| get_file_contentsB | Get the contents of a file or directory listing in a repository. Returns JSON with a 'type' field ('file' or 'directory') for consistent parsing. |
| get_commitB | Get details of a specific commit including stats and changed files. |
| list_review_commentsB | List review comments on a pull request. |
| create_review_commentB | Create a review comment on a specific line of a pull request diff. |
| reply_to_review_commentB | Reply to an existing review comment on a pull request. |
| create_pr_reviewB | Create a review on a pull request. |
| list_pr_reviewsB | List reviews on a pull request. |
| search_repositoriesC | Search GitHub repositories. |
| search_codeB | Search code across GitHub repositories. |
| search_issuesB | Search issues and pull requests across GitHub. |
| search_usersB | Search GitHub users. |
| list_starred_reposB | List repositories starred by a user or the authenticated user. |
| star_repositoryB | Star a repository. |
| unstar_repositoryC | Unstar a repository. |
| list_tagsB | List tags in a repository. |
| get_tagA | Get an annotated tag object by its SHA. Only works for annotated tags, not lightweight tags. |
| get_authenticated_userB | Get information about the currently authenticated user. |
| get_userB | Get public information about a GitHub user. |
| list_webhooksB | List webhooks for a repository. |
| create_webhookB | Create a webhook for a repository. |
| delete_webhookB | Delete a webhook from a repository. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/software-engineer-mj/github-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server