MCP server for GitHub: repos, files, issues, PRs, search. Single Go binary.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
A single static Go binary that speaks the Model Context Protocol and exposes 18 tools for working with GitHub: repositories, branches, commits, file contents, issues, pull requests, and search.
No Python, no uv, no runtime dependency to install β just a binary and
an .mcp.json.
An agent that can only talk about your GitHub repos isn't that useful. This gives it hands: it can read and write files in a repo, open and triage issues, push a branch and open a PR, and merge it β all against the real GitHub API, with the same guardrails (size caps, friendly errors, destructive-action annotations) as the sibling connectors.
| Tool | What it does | Write? |
|---|---|---|
github_whoami | Get the user authenticated by GITHUB_TOKEN | |
github_list_repos | List repos for a user/org, or the authenticated user | |
github_get_repo | Get one repository's details | |
github_create_repo | Create a new repository | βοΈ |
github_list_branches | List branches in a repository | |
github_list_commits | List commits, optionally filtered by branch/path | |
github_get_file_contents | Read a file's content, or list a directory | |
github_create_or_update_file | Create/update a file via a commit (β€ 5 MB) | βοΈ |
github_list_issues | List issues in a repository | |
github_get_issue | Get one issue's full details | |
github_create_issue | Create a new issue | βοΈ |
github_update_issue | Update an issue's title/body/state/labels | βοΈ |
github_add_issue_comment | Comment on an issue or PR | βοΈ |
github_list_pull_requests | List pull requests | |
github_get_pull_request | Get one PR's full details, incl. diff stats | |
github_create_pull_request | Open a pull request | βοΈ |
github_merge_pull_request | Merge a pull request | ποΈ destructive |
github_search_repositories | Search repositories with GitHub search qualifiers |
Every tool accepts an optional response_format: markdown (default,
pretty tables for a chat UI) or json (for programmatic use).
Fastest path: grab a prebuilt bundle from the latest release β
download github-mcp-connector-plugin-<version>-<os>-<arch>.zip, unzip it,
and point Cowork/Claude at the plugin/ folder inside (see step 4 of
SETUP.md). No Go toolchain required.
From source:
Or make build β see the Makefile for every shortcut
(test, vet, fmt, lint, tidy).
Full walkthrough β including wiring this up as a Claude/Cowork plugin β is in SETUP.md.
Everything is environment variables, passed through by the plugin's
.mcp.json:
| Variable | Purpose | Default |
|---|---|---|
GITHUB_TOKEN | Personal access token (classic or fine-grained). Needs repo/public_repo and read:org scopes depending on what you use it for. | β (required) |
GITHUB_API_URL | GitHub Enterprise Server API base URL, e.g. https://github.example.com/api/v3. | (unset β github.com) |
This isn't a toy script β it's got the same checks you'd expect from a production Go service:
go test ./...)go vet + gofmt cleanAll of it runs in CI on every push and PR.
Versions follow semver and are cut automatically by
release-please from
Conventional Commits on main:
fix: ... β patch (v0.1.0 β v0.1.1)feat: ... β minor (v0.1.1 β v0.2.0)feat!: ... / BREAKING CHANGE: footer β major (v0.2.0 β v1.0.0)Every merged PR updates a standing "chore(main): release vX.Y.Z" PR with an auto-generated CHANGELOG.md. Merging that PR:
server.json from those exact assets (fresh version +
SHA-256 hashes) and publishes it to the
official MCP Registry via
mcp-publisher, authenticated with GitHub OIDC β no stored secretsSee .github/workflows/release-please.yml
and .github/workflows/publish-mcp-registry.yml
(also runnable by hand for an existing tag via workflow_dispatch).
PRs and issues are very welcome β see CONTRIBUTING.md for the full guide (setup, coding conventions, how to add a new tool) and the Code of Conduct.
main is protected: every change, including the maintainer's, lands via
pull request with CI green. PR titles must follow
Conventional Commits β that's what
drives the automatic versioning above.
Found a security issue? Please follow SECURITY.md instead of opening a public issue.
MIT Β© FerhatDundar
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/github-mcp-connector)<a href="https://allmcps.com/mcp/github-mcp-connector"><img src="https://allmcps.com/api/badge/github-mcp-connector?style=directory" alt="Github Mcp Connector on AllMCPs" /></a>