Skip to main content
Glama
FerhatDundar

github-mcp-connector

by FerhatDundar

πŸ”Œ github-mcp-connector

Talk to GitHub from an MCP-speaking agent.

CI CodeQL Latest release MCP Registry Go Reference License: MIT MCP Conventional Commits PRs Welcome


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.

✨ Why this exists

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.

Related MCP server: GitHub MCP Agent Server

🧰 Tools

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).

πŸš€ Quickstart

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:

# 1. Build
cd go-server
go mod tidy
go build -o github-connector-server .
cp github-connector-server ../plugin/servers/go/

# 2. Set up auth β€” a personal access token, see SETUP.md
export GITHUB_TOKEN=ghp_...

# 3. Run
./go-server/github-connector-server   # serves MCP over stdio

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.

πŸ” Configuration

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)

πŸ§ͺ Quality bar

This isn't a toy script β€” it's got the same checks you'd expect from a production Go service:

  • βœ… Unit tests for every input-validation path (go test ./...)

  • βœ… go vet + gofmt clean

  • βœ… golangci-lint (govet, staticcheck, errcheck, gosec, and more)

  • βœ… govulncheck β€” no known vulnerabilities in the dependency graph

  • βœ… CodeQL static security analysis on every push

  • βœ… End-to-end verified β€” every tool (repos, branches, commits, file read/write, issues, comments, PRs, merge, search) was exercised against a real, dedicated GitHub sandbox repo, not mocks

  • βœ… Dependabot keeps Go modules and Actions current

All of it runs in CI on every push and PR.

🏷️ Releases & versioning

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:

  1. tags the release and publishes it on GitHub

  2. builds and attaches zipped, ready-to-install plugin bundles for linux/darwin/windows Γ— amd64/arm64

  3. regenerates 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 secrets

See .github/workflows/release-please.yml and .github/workflows/publish-mcp-registry.yml (also runnable by hand for an existing tag via workflow_dispatch).

πŸ“ Layout

github-mcp-connector/
β”œβ”€β”€ README.md                  ← you are here
β”œβ”€β”€ SETUP.md                   ← step-by-step setup guide
β”œβ”€β”€ CONTRIBUTING.md             ← how to contribute
β”œβ”€β”€ CODE_OF_CONDUCT.md
β”œβ”€β”€ SECURITY.md                 ← vulnerability reporting
β”œβ”€β”€ CODEOWNERS
β”œβ”€β”€ LICENSE                     ← MIT
β”œβ”€β”€ Makefile                    ← build / test / lint shortcuts
β”œβ”€β”€ .golangci.yml                ← lint rules
β”œβ”€β”€ release-please-config.json  ← semver/changelog automation config
β”œβ”€β”€ .release-please-manifest.json
β”œβ”€β”€ server.json                  ← MCP Registry manifest (regenerated fresh per release by CI)
β”œβ”€β”€ scripts/
β”‚   └── render-server-json.sh    ← rebuilds server.json from a release's zip assets
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ workflows/
β”‚   β”‚   β”œβ”€β”€ ci.yml                     ← build, vet, test, lint, govulncheck
β”‚   β”‚   β”œβ”€β”€ codeql.yml                 ← security scanning
β”‚   β”‚   β”œβ”€β”€ pr-title.yml               ← Conventional Commits PR title check
β”‚   β”‚   β”œβ”€β”€ release-please.yml         ← version PRs, tagging, GitHub releases
β”‚   β”‚   β”œβ”€β”€ publish-mcp-registry.yml   ← publishes server.json to the MCP Registry
β”‚   β”‚   └── rebuild-release-assets.yml ← manual re-attach fallback
β”‚   β”œβ”€β”€ ISSUE_TEMPLATE/
β”‚   β”œβ”€β”€ PULL_REQUEST_TEMPLATE.md
β”‚   └── dependabot.yml
β”œβ”€β”€ go-server/                  ← the MCP server source
β”‚   β”œβ”€β”€ main.go
β”‚   β”œβ”€β”€ main_test.go
β”‚   β”œβ”€β”€ go.mod / go.sum
β”‚   └── README.md
└── plugin/                     ← installable Cowork/Claude plugin
    β”œβ”€β”€ .claude-plugin/plugin.json
    β”œβ”€β”€ .mcp.json                ← holds credentials locally β€” never commit real ones
    └── servers/go/              ← compiled binary goes here

🀝 Contributing

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.

πŸ“„ License

MIT Β© FerhatDundar

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

–Maintainers
–Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A context-efficient GitHub MCP server designed for AI agents to manage repositories, issues, pull requests, and actions directly via cloud workflows. It focuses on a compact tool surface to minimize context waste while providing comprehensive read and write coverage without requiring a local Git CLI.
  • F
    license
    Not graded
    quality
    B
    maintenance
    A GitHub MCP server that wraps the gh CLI to expose GitHub operations like issues, pull requests, branches, labels, repositories, CI actions, and Projects V2 as tools for MCP clients.
  • A
    license
    Not graded
    quality
    A
    maintenance
    ghcli-mcp-connector is an MCP server that lets agents run any GitHub CLI (gh) commandβ€”repos, issues, PRs, releases, workflows, gists, and moreβ€”as a single static Go binary with a read-only-by-default safety gate on state-changing operations.
    MIT

View all related MCP servers

Related MCP Connectors

  • Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.

  • Generate AGENTS.md, AP2 compliance docs, checkout rules, debug playbook & MCP configs from any repo.

  • An MCP server that gives your AI access to the source code and docs of all public github repos

View all MCP Connectors

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/FerhatDundar/github-mcp-connector'

If you have feedback or need assistance with the MCP directory API, please join our Discord server