GitHub MCP Server について
GitHub MCP Serverは、ローカルGit操作とGitHub APIを使ってリポジトリを管理するGo製サーバーです。リポジトリ操作と管理機能に加え、ツール群の選択、リスクに応じた確認、バックアップ、監査ログを備えています。
主な機能
- 01ローカルGitとGitHub APIの操作
- 02リポジトリとファイルの管理
- 03管理機能と設定
- 04リスク段階と確認トークン
- 05バックアップと監査ログ
- 06選択可能なツール群
活用シーン
- 01リポジトリのファイル作成と更新
- 02ブランチ、コミット、プルリクエストの管理
- 03リポジトリ設定やWebhookの変更
- 04作業に応じたツール公開範囲の制限
MCP 対応
GitとGitHubの操作をMCPツールとして公開し、リポジトリ、ファイル、ダッシュボード、管理機能を扱います。--toolsetsでツール群を選択できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GitHub MCP Server v4.0
GitHub を Claude Desktop に接続し、Claude のインターフェースからリポジトリを直接操作できる Go ベースの MCP サーバーです。
ツール: 統合された 26 個のツール(85 個の操作) | アーキテクチャ: ハイブリッド(ローカル Git + GitHub API + 管理コントロール)
v4.0 の新機能
- 統合ツール設計:わずか 26 個のツールで 85 個の操作に対応し、ツール数の上限による AI の混乱を防ぎます
- 操作パラメーターのパターン:各ツールで
operationパラメーターを使い、実行するアクションを選択します --toolsetsフラグ:選択したツールグループ(git、github、admin、files)のみを公開してサーバーを起動します- 自動バックアップの実装:
enable_auto_backup: trueの場合、HIGH/CRITICAL 操作の前に JSON バックアップを書き込みます - 4 段階の安全システム:確認トークンを使用したリスク分類(LOW/MEDIUM/HIGH/CRITICAL)
- 22 個の管理操作:リポジトリ設定、ブランチ保護、Webhook、コラボレーター、チーム
- 監査ログ:自動ローテーションに対応した JSON ベースの操作記録
必要なトークン権限
最低限必要な権限
repo - Full control of private repositories (essential)
オプション(すべての機能を利用する場合)
security_events - For dismissing security alerts
workflow - For re-running GitHub Actions workflows
admin:repo_hook - Enhanced webhook management
admin:org - For team management in organizations
トークンの生成
- 次のページに移動します:GitHub Settings > Personal Access Tokens
- 「Generate new token (classic)」をクリックします
- 必要なスコープを選択します
- 生成されたトークンをコピーします
インストール
# Install dependencies
go mod tidy
# Compile (using included script)
.\compile.bat # Windows
./build-mac.bat # macOS cross-compile
# Or compile manually
go build -o github-mcp-server-v4.exe ./cmd/github-mcp-server/
テスト
# Run all tests
go test ./...
# Run tests with verbose output
go test ./... -v
# Run tests for a specific package
go test ./pkg/git/ -v
go test ./pkg/safety/ -v
Claude Desktop の設定
マルチプロファイル(推奨)
{
"mcpServers": {
"github-personal": {
"command": "C:\\path\\to\\github-mcp-server-v4.exe",
"args": ["--profile", "personal"],
"env": {
"GITHUB_TOKEN": "ghp_your_personal_token"
}
},
"github-work": {
"command": "C:\\path\\to\\github-mcp-server-v4.exe",
"args": ["--profile", "work"],
"env": {
"GITHUB_TOKEN": "ghp_your_work_token"
}
}
}
}
基本設定(単一トークン)
{
"mcpServers": {
"github-mcp": {
"command": "C:\\path\\to\\github-mcp-server-v4.exe",
"args": [],
"env": {
"GITHUB_TOKEN": "your_token_here"
}
}
}
}
ツールセットのフィルタリング(任意)
攻撃対象領域を減らすため、特定のツールグループのみを公開します:
{
"args": ["--toolsets", "git,github"]
}
利用可能なグループ:git(14 個のツール)、github(4 個のツール)、admin(4 個のツール)、files(4 個のツール)。デフォルトは all です。
利用可能なツール(26 個)
ツールでは operation パラメーターを使い、1 つの名前で複数の操作を公開します。これにより、ツール数を 85 個から 26 個に減らし、AI モデルの混乱を防ぎます。
Git 情報(2 個のツール)
| ツール | 操作 |
|---|---|
git_info | status、file_sha、last_commit、file_content、changed_files、validate_repo、list_files、context、validate_clean |
git_set_workspace | すべての Git 操作で使用する作業ディレクトリを設定します |
Git 基本操作(3 個のツール)
| ツール | 説明 |
|---|---|
git_init | 新しい Git リポジトリを初期化します |
git_add | コミット対象のファイルをステージングします |
git_commit | ステージングされた変更をコミットします |
Git 高度な操作(9 個のツール)
| ツール | 操作 |
|---|---|
git_history | log、diff |
git_branch | checkout、checkout_remote、list、merge、rebase、backup |
git_sync | push、pull、force_push、push_upstream、sync、pull_strategy |
git_conflict | status、resolve、detect、safe_merge |
git_stash | list、push、pop、apply、drop、clear |
git_remote | list、add、remove、show、fetch |
git_tag | list、create、delete、push、show |
git_clean | untracked、untracked_dirs、ignored、all |
git_reset | コミットを取り消します(soft/mixed/hard) |
ハイブリッド(3 個のツール)
| ツール | 説明 |
|---|---|
gh_create_file | ファイルを作成します — Git を優先し、フォールバックとして GitHub API を使用します |
gh_update_file | ファイルを更新します — Git を優先し、フォールバックとして GitHub API を使用します |
gh_push_files | 複数のファイルへの書き込みと git add/commit/push を 1 回の呼び出しで実行します |
GitHub API(1 個のツール)
| ツール | 操作 |
|---|---|
github_repo | list_repos、create_repo、list_prs、create_pr |
ダッシュボード(1 個のツール)
| ツール | 操作 |
|---|---|
github_dashboard | full、notifications、issues、prs_review、security、workflows、mark_read |
応答(1 個のツール)
| ツール | 操作 |
|---|---|
github_respond | comment_issue、comment_pr、review_pr |
修復(1 個のツール)
| ツール | 操作 |
|---|---|
github_repair | close_issue、merge_pr、rerun_workflow、dismiss_alert |
管理(4 ツール)
| ツール | 操作 | リスク |
|---|---|---|
github_admin_repo | get_settings、update_settings、archive、delete | LOW → CRITICAL |
github_branch_protection | get、update、delete | LOW → CRITICAL |
github_webhooks | list、create、update、delete、test | LOW → HIGH |
github_collaborators | list、check、add、update_permission、remove、list_invitations、accept_invitation、cancel_invitation、list_teams、add_team | LOW → HIGH |
ファイル操作(1 ツール)
| ツール | 操作 |
|---|---|
github_files | list、download、download_repo、pull_repo |
安全システム
4 段階のリスク分類
| レベル | 説明 | 動作(moderate モード) |
|---|---|---|
| LOW | 読み取り専用 | 直接実行 |
| MEDIUM | 元に戻せる変更 | ドライランは任意 |
| HIGH | コラボレーションに影響 | 確認トークンが必要 |
| CRITICAL | 元に戻せない操作 | トークンが必要。バックアップを推奨 |
安全性のリスク分類には、複合キー tool:operation(例:github_webhooks:delete)を使用します。
安全モード
| モード | 確認が必要なレベル | 推奨用途 |
|---|---|---|
strict | MEDIUM 以上 | 重要な本番環境 |
moderate | HIGH 以上 | 一般的な用途(デフォルト) |
permissive | CRITICAL | ローカル開発 |
disabled | なし | 推奨されません |
安全性の設定
実行ファイルと同じ場所に safety.json を作成します(任意)。
{
"mode": "moderate",
"enable_audit_log": true,
"require_confirmation_above": 3,
"audit_log_path": "./mcp-admin-audit.log",
"audit_log_max_size_mb": 10,
"audit_log_max_backups": 5
}
safety.json が存在しない場合は、監査ログを有効にした moderate モード がデフォルトで使用されます。
Git 不使用モード
Git がインストールされていないシステムでは、サーバーは次の処理を行います。
- Git がないことを自動検出します
- 一覧から
git_*ツールを除外します - API、管理、ダッシュボード、ファイル操作のすべてのツールを引き続き使用できるようにします
- Git ツールを実行しようとした場合は、わかりやすいエラーを返します
github_files ツール(list、download、download_repo、pull_repo)を使うと、Git を使わずに GitHub API のみでリポジトリのクローンと更新ができます。
セキュリティ
- すべての Git 操作でコマンドインジェクションを防止
- パストラバーサル対策
- Webhook URL での SSRF 防止
- 破壊的操作に暗号学的な確認トークンを使用
- すべての管理操作を監査ログに記録
脆弱性の報告については、セキュリティポリシーをご覧ください。
システム要件
- Go:1.26.6 以降
- Git:任意(自動検出。ファイル/API ツールは Git なしでも動作します)
github.com/google/go-githubv88.0.0golang.org/x/oauth2v0.36.0- GitHub トークン:最低限
repo権限が必要
プロジェクトの状況
- 85 の操作を公開する、統合済みの 26 ツール
- ローカル Git と GitHub API のハイブリッドシステム
- 確認トークンと自動バックアップを備えた 4 段階の安全システム
- 複数プロファイルのサポート
- 完全なテストスイート
- 本番環境での使用に対応(v4.0)
変更履歴:すべての変更履歴については、CHANGELOG.mdをご覧ください。
貢献
貢献を歓迎します。ガイドラインについては、CONTRIBUTING.mdをご覧ください。
ライセンス
MIT ライセンス — 詳細についてはLICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。