github-mcp-connector について
github-mcp-connectorは、GitHubのリポジトリ、Issue、プルリクエストを扱うAgent向けのGo製MCPサーバーです。GitHub APIを通じて、一般的な読み取り・書き込み操作を18種類のツールで提供します。
主な機能
- 01リポジトリの一覧と詳細表示
- 02ブランチ、コミット、ファイルの参照
- 03リポジトリファイルの読み取りと更新
- 04Issueの作成と管理
- 05プルリクエストの作成、確認、マージ
- 06リポジトリ検索
活用シーン
- 01リポジトリのファイルとコミット履歴を確認
- 02Issueの整理とコメント追加
- 03プルリクエストの作成やマージ
MCP 対応
MCPクライアントに、リポジトリ、ファイル、Issue、プルリクエスト、検索を扱う18種類のGitHubツールを提供します。認証には`GITHUB_TOKEN`を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Model Context Protocolに対応した、静的な Go バイナリです。 GitHub のリポジトリ、ブランチ、コミット、ファイル内容、issue、プルリクエスト、検索を操作するための 18 個のツールを提供します。
Python も、uv も、インストールが必要なランタイム依存関係もありません。必要なのはバイナリと
.mcp.jsonだけです。
✨ 開発の背景
GitHub リポジトリについて話すことしかできないエージェントは、あまり役に立ちません。 このコネクターを使えば、リポジトリ内のファイルの読み書き、issue の作成とトリアージ、ブランチのプッシュと PR の作成、さらにマージまで、実際の GitHub API に対して実行できます。また、兄弟コネクターと同じガードレール(サイズ上限、わかりやすいエラー、破壊的操作の注釈)も備えています。
🧰 ツール
| ツール | 内容 | 書き込み? |
|---|---|---|
github_whoami | GITHUB_TOKENで認証されたユーザーを取得 | |
github_list_repos | ユーザー/組織、または認証済みユーザーのリポジトリを一覧表示 | |
github_get_repo | 1 つのリポジトリの詳細を取得 | |
github_create_repo | 新しいリポジトリを作成 | ✍️ |
github_list_branches | リポジトリ内のブランチを一覧表示 | |
github_list_commits | コミットを一覧表示。ブランチ/パスでの絞り込みも可能 | |
github_get_file_contents | ファイルの内容を読み取る、またはディレクトリを一覧表示 | |
github_create_or_update_file | コミットを通じてファイルを作成/更新(≤ 5 MB) | ✍️ |
github_list_issues | リポジトリ内の issue を一覧表示 | |
github_get_issue | 1 つの issue の詳細を取得 | |
github_create_issue | 新しい issue を作成 | ✍️ |
github_update_issue | issue のタイトル/本文/状態/ラベルを更新 | ✍️ |
github_add_issue_comment | issue または PR にコメント | ✍️ |
github_list_pull_requests | プルリクエストを一覧表示 | |
github_get_pull_request | 1 つの PR の詳細を取得(差分の統計情報を含む) | |
github_create_pull_request | プルリクエストを作成 | ✍️ |
github_merge_pull_request | プルリクエストをマージ | 🗑️ 破壊的操作 |
github_search_repositories | GitHub の検索修飾子を使ってリポジトリを検索 |
すべてのツールで、オプションのresponse_formatを指定できます。markdown(デフォルト。チャット UI 向けの整形済みテーブル)またはjson(プログラムからの利用向け)を選択できます。
🚀 クイックスタート
最速の方法: 最新リリースからビルド済みバンドルを入手します —
github-mcp-connector-plugin-<version>-<os>-<arch>.zipをダウンロードして解凍し、
中にあるplugin/フォルダーをCowork/Claudeに指定します(SETUP.mdの
手順4を参照してください)。Goツールチェーンは不要です。
ソースからビルドする場合:
# 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
またはmake buildを実行してください。すべてのショートカット
(test、vet、fmt、lint、tidy)についてはMakefileを参照してください。
Claude/Coworkプラグインとして接続する方法を含む、詳しい手順については **SETUP.md**を参照してください。
🔐 設定
すべて環境変数で設定し、プラグインの
.mcp.jsonを通じて渡します。
| 変数 | 目的 | デフォルト |
|---|---|---|
GITHUB_TOKEN | 個人アクセストークン(classic または fine-grained)。用途に応じてrepo/public_repoとread:orgのスコープが必要です。 | —(必須) |
GITHUB_API_URL | GitHub Enterprise Server APIのベースURL。例:https://github.example.com/api/v3。 | (未設定 — github.com) |
🧪 品質基準
これはおもちゃのようなスクリプトではありません — 本番環境のGoサービスに求められるものと同じチェックを備えています。
- ✅ すべての入力検証パスに対するユニットテスト(
go test ./...) - ✅
go vet+ **gofmt**のチェックに合格 - ✅ golangci-lint(govet、staticcheck、errcheck、gosecなど)
- ✅ govulncheck — 依存関係グラフに既知の脆弱性がないことを確認
- ✅ **CodeQL**による、プッシュごとの静的セキュリティ分析
- ✅ エンドツーエンドで検証済み — すべてのツール(リポジトリ、ブランチ、コミット、ファイルの 読み取り/書き込み、イシュー、コメント、PR、マージ、検索)を、モックではなく 専用の実際のGitHubサンドボックスリポジトリに対して実行しました
- ✅ **Dependabot**がGoモジュールとActionsを最新の状態に維持
これらはすべて、プッシュとPRのたびにCIで実行されます。
🏷️ リリースとバージョニング
バージョンはsemverに従い、main上の
Conventional Commitsから
release-pleaseによって自動的に作成されます。
fix: ...→ パッチ(v0.1.0→v0.1.1)feat: ...→ マイナー(v0.1.1→v0.2.0)feat!: .../BREAKING CHANGE:フッター → メジャー(v0.2.0→v1.0.0)
マージされたPRごとに、自動生成されたCHANGELOG.mdを含む **「chore(main): release vX.Y.Z」**のPRが更新されます。このPRをマージすると:
- リリースにタグを付け、GitHubで公開します
- linux/darwin/windows × amd64/arm64向けに、インストール可能なプラグインバンドルをビルドしてZIP形式で添付します
- それらの正確なアセットから
server.jsonを再生成し(最新バージョンと SHA-256ハッシュを含む)、GitHub OIDCによる認証を使って 公式MCPレジストリにmcp-publisher経由で公開します — 保存されたシークレットは不要です
.github/workflows/release-please.ymlと
.github/workflows/publish-mcp-registry.yml
を参照してください(既存のタグに対してworkflow_dispatchから手動で実行することもできます)。
📁 ディレクトリ構成
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
🤝 貢献
PRやイシューを歓迎します — 詳細なガイド(セットアップ、コーディング規約、新しいツールの追加方法)は **CONTRIBUTING.md**を、行動規範は **Code of Conduct**を参照してください。
mainは保護されています。メンテナーによる変更も含め、すべての変更はCIに合格したプルリクエストを通じて反映されます。PRのタイトルは
Conventional Commitsに従う必要があります — これが上記の自動バージョニングに使われます。
セキュリティ上の問題を見つけた場合は、公開イシューを作成せず、 **SECURITY.md**に従って報告してください。
📄 ライセンス
MIT © FerhatDundar
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。