The pull request surface is the deep part: changed files, combined status checks, review comments and reviews are four separate reads, so a failing check is distinguishable from an unanswered review comment. push_files puts a whole change into one commit rather than one commit per file, which is what keeps history legible when an edit spans a directory. Updating a branch from base takes an expected head SHA, so the update refuses instead of racing somebody else's push.
A GitHub client covering repository contents, branches, issues, pull requests with reviews and merges, and search across code, issues and users.
- Repositories created and forked, branches created from a base, file contents read, a single file created or updated against its SHA, and several files pushed in one commit.
- Commits listed for a branch with paging.
- Issues created with assignees, labels and a milestone, listed with filters and sorting, fetched, updated including their state, and commented on.
- Pull requests created with a base, a head and a draft flag, listed and filtered, fetched, and read for their changed files, combined status checks, review comments and reviews.
- A review submitted with a body, inline comments and an event; the branch updated from base against an expected head SHA; and a merge with the method, title and message you choose.
- Search across repositories, code, issues and pull requests, and users.
A GitHub personal access token in GITHUB_PERSONAL_ACCESS_TOKEN, scoped for what you intend to do — creating repositories, pushing files, reviewing and merging included.
One command plus a key — npx -y @modelcontextprotocol/server-github, then supply credentials
