trackmcp
Back to directory
MissionSquad

mcp-github

View on GitHub

Github MCP Server

10 stars TypeScriptOthers Updated Aug 4, 2026

Documentation

GitHub MCP Server

MCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.

Mission Squad modifications

  • github pat is now dynamic per request and does not have to be included via environment variables, but still falls back to environment variables.
  • name: mcp-github

Features

  • Automatic Branch Creation: When creating/updating files or pushing changes, branches are automatically created if they don't exist
  • Comprehensive Error Handling: Clear error messages for common issues
  • Git History Preservation: Operations maintain proper Git history without force pushing
  • Batch Operations: Support for both single-file and multi-file operations
  • Advanced Search: Support for searching code, issues/PRs, and users

Tools

1. `create_or_update_file`

    2. `push_files`

      3. `search_repositories`

        4. `create_repository`

          5. `get_file_contents`

            6. `create_issue`

              7. `create_pull_request`

                8. `fork_repository`

                  9. `create_branch`

                    10. `list_issues`

                      11. `update_issue`

                        12. `add_issue_comment`

                          13. `search_code`

                            14. `search_issues`

                              15. `search_users`

                                16. `list_commits`

                                  17. `get_issue`

                                    18. `get_pull_request`

                                      19. `list_pull_requests`

                                        20. `create_pull_request_review`

                                          21. `merge_pull_request`

                                            22. `get_pull_request_files`

                                              23. `get_pull_request_status`

                                                24. `update_pull_request_branch`

                                                  25. `get_pull_request_comments`

                                                    26. `get_pull_request_reviews`

                                                      Webhook Tools

                                                      This server now supports the full repository and organization webhook REST surface that is available with the existing `github_pat` auth model.

                                                      Repository webhook tools

                                                      • `list_repository_webhooks`
                                                      • `get_repository_webhook`
                                                      • `create_repository_webhook`
                                                      • `update_repository_webhook`
                                                      • `delete_repository_webhook`
                                                      • `get_repository_webhook_config`
                                                      • `update_repository_webhook_config`
                                                      • `ping_repository_webhook`
                                                      • `list_repository_webhook_deliveries`
                                                      • `get_repository_webhook_delivery`
                                                      • `redeliver_repository_webhook_delivery`

                                                      Organization webhook tools

                                                      • `list_organization_webhooks`
                                                      • `get_organization_webhook`
                                                      • `create_organization_webhook`
                                                      • `update_organization_webhook`
                                                      • `delete_organization_webhook`
                                                      • `get_organization_webhook_config`
                                                      • `update_organization_webhook_config`
                                                      • `ping_organization_webhook`
                                                      • `list_organization_webhook_deliveries`
                                                      • `get_organization_webhook_delivery`
                                                      • `redeliver_organization_webhook_delivery`

                                                      Permissions

                                                      Repository webhooks:

                                                      • Classic PATs typically need `admin:repo_hook` (or broader `repo`) to create, edit, delete, ping, or redeliver.
                                                      • Fine-grained PATs need repository `Webhooks` permission with `read` for list/get and `write` for create/update/delete/ping/redelivery.

                                                      Organization webhooks:

                                                      • Classic PATs need `admin:org_hook`.
                                                      • Fine-grained PATs need organization `Webhooks` permission with `read` for list/get and `write` for create/update/delete/ping/redelivery.

                                                      Usage notes

                                                      • Create and update webhook tools hardcode `name: "web"` internally, which is what GitHub requires.
                                                      • Repository webhook config supports `url`, `content_type`, `secret`, and `insecure_ssl`.
                                                      • Organization webhook config supports those fields plus optional `username` and `password` for basic auth.
                                                      • GitHub strongly recommends setting a webhook `secret` and validating delivery signatures on the receiving service.
                                                      • `insecure_ssl: "1"` disables certificate verification and is discouraged.

                                                      Debugging flow

                                                      • Use `ping_*_webhook` to trigger a test delivery after create or update.
                                                      • Use `list_*_webhook_deliveries` to inspect recent attempts.
                                                      • Use `get_*_webhook_delivery` to inspect the request payload, headers, and GitHub's captured response.
                                                      • Use `redeliver_*_webhook_delivery` to replay a failed or stale delivery.

                                                      Out of scope

                                                      • This server does not implement an inbound HTTP receiver for webhook deliveries.
                                                      • This server does not perform delivery signature validation for your webhook endpoint.
                                                      • GitHub App webhook endpoints are not included in this phase because those APIs require JWT-based app authentication rather than a PAT.

                                                      Search Query Syntax

                                                      • `language:javascript`: Search by programming language
                                                      • `repo:owner/name`: Search in specific repository
                                                      • `path:app/src`: Search in specific path
                                                      • `extension:js`: Search by file extension
                                                      • Example: `q: "import express" language:typescript path:src/`
                                                      • `is:issue` or `is:pr`: Filter by type
                                                      • `is:open` or `is:closed`: Filter by state
                                                      • `label:bug`: Search by label
                                                      • `author:username`: Search by author
                                                      • Example: `q: "memory leak" is:issue is:open label:bug`
                                                      • `type:user` or `type:org`: Filter by account type
                                                      • `followers:>1000`: Filter by followers
                                                      • `location:London`: Search by location
                                                      • Example: `q: "fullstack developer" location:London followers:>100`

                                                      For detailed search syntax, see GitHub's searching documentation.

                                                      Setup

                                                      Personal Access Token

                                                      Create a GitHub Personal Access Token with appropriate permissions:

                                                        Usage with Claude Desktop

                                                        To use this with Claude Desktop, add the following to your `claude_desktop_config.json`:

                                                        Docker

                                                        json
                                                        {
                                                          "mcpServers": {
                                                            "github": {
                                                              "command": "docker",
                                                              "args": [
                                                                "run",
                                                                "-i",
                                                                "--rm",
                                                                "-e",
                                                                "GITHUB_PERSONAL_ACCESS_TOKEN",
                                                                "mcp/github"
                                                              ],
                                                              "env": {
                                                                "GITHUB_PERSONAL_ACCESS_TOKEN": ""
                                                              }
                                                            }
                                                          }
                                                        }

                                                        NPX

                                                        json
                                                        {
                                                          "mcpServers": {
                                                            "github": {
                                                              "command": "npx",
                                                              "args": [
                                                                "-y",
                                                                "@modelcontextprotocol/server-github"
                                                              ],
                                                              "env": {
                                                                "GITHUB_PERSONAL_ACCESS_TOKEN": ""
                                                              }
                                                            }
                                                          }
                                                        }

                                                        Build

                                                        Docker build:

                                                        bash
                                                        docker build -t mcp/github -f src/github/Dockerfile .

                                                        License

                                                        This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

                                                        Frequently asked questions

                                                        What is mcp-github?

                                                        mcp-github is Github MCP Server

                                                        How do I install mcp-github?

                                                        Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

                                                        Is mcp-github open source?

                                                        Yes — it is hosted on GitHub at https://github.com/MissionSquad/mcp-github and has 10 stars.

                                                        Related MCP tools

                                                        Run your own MCP server? See who uses it and what to fix.

                                                        Measure it with TrackMCP