GitHub MCP
GitHub API'sini MCP üzerinden AI'a açan sunucu — repo, issue, PR, branch, commit, search, release, workflow. Kod okuma + PR yönetimi + issue triage tek yerden.
İçerik
GitHub MCP
GitHub API'sinin MCP wrapper'ı. Personal Access Token (PAT) ile yetkilendirilmiş hesabın erişebildiği her şeyi AI'a açar: repo listeleme, dosya okuma, issue oluşturma, PR inceleme, branch yaratma, workflow tetikleme.
Ne işe yarar?
- Kod incelemesi: Açık PR'ları AI'a gezdirip review yazdır
- Issue triage: Yeni issue'ları okuyup label'la, kapsama al veya reddet
- PR otomasyonu: "Bu açıklamaya uygun PR aç, şu branch'ten şu branch'e"
- Çoklu repo: Birden fazla repo üzerinde cross-check (örn. "API değişikliği iki projede birden tutarlı mı?")
- Release note yazma: Son N commit'i okuyup changelog üret
- Koda referans alma: AI'a "şu kütüphanenin şu dosyasındaki şu fonksiyona bak" demek
- Search: Kod içinde, issue'larda, PR'larda arama
Yetenekler (MCP Tools — özet)
Repo:
create_repository,fork_repository,search_repositoriesget_file_contents,create_or_update_file,push_files
Issue & PR:
create_issue,list_issues,update_issue,add_issue_commentcreate_pull_request,list_pull_requests,get_pull_request,update_pull_requestcreate_pull_request_review,get_pull_request_files,get_pull_request_diff,merge_pull_request
Branch & Commit:
create_branch,list_commits,get_commit
Search:
search_code,search_issues,search_users
Workflows:
list_workflow_runs,get_workflow_run,rerun_workflow_run
Kurulum
1. Personal Access Token oluştur
GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens (tercih).
Minimum scope'lar (ne yapmak istediğine göre seç):
contents:read— dosya okumacontents:write— dosya yazmaissues:read/write— issue yönetimipull_requests:read/write— PR yönetimiactions:read/write— workflow
Classic token kullanacaksan: repo, workflow, read:org yeter (over-scoped).
2. Kurulum
Claude Code:
claude mcp add github \
--env GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxxxxxxxxx \
-- npx -y @modelcontextprotocol/server-github
Claude Desktop / Cursor:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
Token'ı config dosyasında düz yazma, bir password manager ya da keychain reference'ı ile geçmek mümkün (client'a bağlı).
Güvenlik
- PAT = erişebildiği her repo için "sen" olan AI. Bir PR'a zararlı diff push edebilir.
- Fine-grained token + spesifik repo seçimi yap.
All repositoriesverme. - Expiration'ı kısa tut (30-90 gün). Rotate düzenli.
- 2FA açık hesap üzerinden oluştur. Token 2FA'yı atlatır.
- Org repos: SSO enforcement varsa token'ı authorize et, yoksa 404 alırsın.
- Public repos için anonim: Token'sız sadece public okumalar mümkün, rate limit 60/saat — pratik değil.
- Token sızdırılırsa: GitHub → Settings → Developer settings'ten anında revoke.
Örnek kullanımlar
PR inceleme
"
myorg/myreporepo'sunda açık olan 12 no'lu PR'ı incele. Diff'i oku, kritik sorunları sırala, gerekirse yorum ekle."
AI: get_pull_request_diff → analiz → create_pull_request_review yorumları ile.
Issue triage
"
myorg/myreporepo'sunda son 7 gün açılan, etiketi olmayan issue'ları listele. Her biri için kategorize et: bug/feature/question. Bug'larabugetiketi ekle."
Release notes
"Son tag'den bu yana olan commit'leri oku. Kullanıcıya sunulabilir changelog üret (markdown), breaking change'leri üstte işaretle."
Cross-repo sync
"
myorg/apivemyorg/webrepo'larındav2/userendpoint tanımı tutarlı mı kontrol et. Farklıysa fark raporla."
Sınırlar
- Büyük diff'ler (>100 dosya) için
get_pull_request_filessayfalar halinde döner — AI'a "sayfa sayfa incele" demek gerek - Rate limit: PAT ile saatte 5000 istek. Fork'lar / search için ayrı limitler
- Webhook yönetimi tool'u yok — sadece okuma/yazma, event listening değil
- Actions secret yönetimi API gerek, bu server'da wrap'lı değil
- GitHub Enterprise Server (self-hosted):
GITHUB_API_URLenv var ile custom endpoint ver
Sorun giderme
| Belirti | Sebep | Çözüm |
|---|---|---|
| 401 Unauthorized | Token yanlış veya expired | Yeniden oluştur, config'i güncelle |
| 403 Forbidden | Scope yetersiz veya SSO unauthorized | Token scope'u genişlet ya da org için authorize et |
| 404 Not found (private repo) | Fine-grained token o repo'yu görmüyor | Token settings'den o repo'yu ekle |
| Rate limit | Saatlik limit dolu | Başka token kullan ya da bekle (X-RateLimit-Reset header) |
Doğrulama
/mcp
github yeşilse tamam. Test için AI'a sor:
"GitHub'daki username'im ne?" →
search_usersile cevap dönmeli.
Resmi repo: github.com/modelcontextprotocol/servers · Anthropic + topluluk