Read a file, change it, push it, open the pull request — the full loop is available as tool calls, and multi-file pushes land as a single commit. Because branches are created on demand and nothing force pushes, an agent working here leaves a history you can still read afterwards.
An MCP server for the GitHub API covering file operations, repository management and search, with branches created automatically when a write targets one that does not exist yet.
- File contents read from any path on a chosen branch, and single files created or updated with a commit message
- Several files pushed in one commit, so a change set lands as one revision rather than a run of them
- Repositories created, and existing ones forked
- Branches created explicitly, or implicitly by writing to a branch that does not exist yet
- Issues opened and listed; pull requests opened, with the option for maintainers to push to your branch
- Repository search, plus search across code, issues, pull requests and users
- Git history preserved — operations do not force push
Credentials for the GitHub account the server acts as; every write happens under that identity, so scope it the way you would any automation token.
One command plus a key — docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN mcp/github, then supply credentials
